下面列出了org.bukkit.Material#DIAMOND_LEGGINGS 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
public static void spawnTierItem(int tierLevel, Player player) {
ItemStack helmet = new ItemStack(Material.DIAMOND_HELMET);
ItemStack chestplate = new ItemStack(Material.DIAMOND_CHESTPLATE);
ItemStack leggings = new ItemStack(Material.DIAMOND_LEGGINGS);
ItemStack boots = new ItemStack(Material.DIAMOND_BOOTS);
ItemStack sword = new ItemStack(Material.DIAMOND_SWORD);
ItemStack axe = new ItemStack(Material.DIAMOND_AXE);
ItemStack bow = new ItemStack(Material.BOW);
if (tierLevel > 1) {
applyEnchantment(helmet, Enchantment.PROTECTION_ENVIRONMENTAL, tierLevel);
applyEnchantment(chestplate, Enchantment.PROTECTION_ENVIRONMENTAL, tierLevel);
applyEnchantment(leggings, Enchantment.PROTECTION_ENVIRONMENTAL, tierLevel);
applyEnchantment(boots, Enchantment.PROTECTION_ENVIRONMENTAL, tierLevel);
applyEnchantment(sword, Enchantment.DAMAGE_ALL, tierLevel);
applyEnchantment(axe, Enchantment.DAMAGE_ALL, tierLevel);
applyEnchantment(bow, Enchantment.ARROW_DAMAGE, tierLevel);
}
player.getInventory().addItem(helmet);
player.getInventory().addItem(chestplate);
player.getInventory().addItem(leggings);
player.getInventory().addItem(boots);
player.getInventory().addItem(sword);
player.getInventory().addItem(axe);
player.getInventory().addItem(bow);
return;
}
public static int adjustForArmor(int damage, Player player) {
org.bukkit.inventory.PlayerInventory inv = player.getInventory();
ItemStack boots = inv.getBoots();
ItemStack helmet = inv.getHelmet();
ItemStack chest = inv.getChestplate();
ItemStack pants = inv.getLeggings();
double red = 0.0;
if (helmet != null) {
if (helmet.getType() == Material.LEATHER_HELMET) red = red + 0.04;
else if (helmet.getType() == Material.GOLDEN_HELMET) red = red + 0.08;
else if (helmet.getType() == Material.CHAINMAIL_HELMET) red = red + 0.08;
else if (helmet.getType() == Material.IRON_HELMET) red = red + 0.08;
else if (helmet.getType() == Material.DIAMOND_HELMET) red = red + 0.12;
}
if (boots != null) {
if (boots.getType() == Material.LEATHER_BOOTS) red = red + 0.04;
else if (boots.getType() == Material.GOLDEN_BOOTS) red = red + 0.04;
else if (boots.getType() == Material.CHAINMAIL_BOOTS) red = red + 0.04;
else if (boots.getType() == Material.IRON_BOOTS) red = red + 0.08;
else if (boots.getType() == Material.DIAMOND_BOOTS) red = red + 0.12;
}
if (pants != null) {
if (pants.getType() == Material.LEATHER_LEGGINGS) red = red + 0.08;
else if (pants.getType() == Material.GOLDEN_LEGGINGS) red = red + 0.12;
else if (pants.getType() == Material.CHAINMAIL_LEGGINGS) red = red + 0.16;
else if (pants.getType() == Material.IRON_LEGGINGS) red = red + 0.20;
else if (pants.getType() == Material.DIAMOND_LEGGINGS) red = red + 0.24;
}
if (chest != null) {
if (chest.getType() == Material.LEATHER_CHESTPLATE) red = red + 0.12;
else if (chest.getType() == Material.GOLDEN_CHESTPLATE) red = red + 0.20;
else if (chest.getType() == Material.CHAINMAIL_CHESTPLATE) red = red + 0.20;
else if (chest.getType() == Material.IRON_CHESTPLATE) red = red + 0.24;
else if (chest.getType() == Material.DIAMOND_CHESTPLATE) red = red + 0.32;
}
if (red == 0) {
return damage;
} else {
return (int) Math.round(damage / (1 - red));
}
}
@Override
protected Boolean execute(String playerID) throws QuestRuntimeException {
PlayerInventory inv = PlayerConverter.getPlayer(playerID).getInventory();
int rating = 0;
ItemStack boots = inv.getBoots();
ItemStack helmet = inv.getHelmet();
ItemStack chest = inv.getChestplate();
ItemStack leggings = inv.getLeggings();
if (helmet != null) {
if (helmet.getType() == Material.LEATHER_HELMET)
rating += 1;
else if (helmet.getType() == Material.GOLDEN_HELMET)
rating += 2;
else if (helmet.getType() == Material.CHAINMAIL_HELMET)
rating += 2;
else if (helmet.getType() == Material.IRON_HELMET)
rating += 2;
else if (helmet.getType() == Material.DIAMOND_HELMET)
rating += 3;
}
if (boots != null) {
if (boots.getType() == Material.LEATHER_BOOTS)
rating += 1;
else if (boots.getType() == Material.GOLDEN_BOOTS)
rating += 1;
else if (boots.getType() == Material.CHAINMAIL_BOOTS)
rating += 1;
else if (boots.getType() == Material.IRON_BOOTS)
rating += 2;
else if (boots.getType() == Material.DIAMOND_BOOTS)
rating += 3;
}
if (leggings != null) {
if (leggings.getType() == Material.LEATHER_LEGGINGS)
rating += 2;
else if (leggings.getType() == Material.GOLDEN_LEGGINGS)
rating += 3;
else if (leggings.getType() == Material.CHAINMAIL_LEGGINGS)
rating += 4;
else if (leggings.getType() == Material.IRON_LEGGINGS)
rating += 5;
else if (leggings.getType() == Material.DIAMOND_LEGGINGS)
rating += 6;
}
if (chest != null) {
if (chest.getType() == Material.LEATHER_CHESTPLATE)
rating += 3;
else if (chest.getType() == Material.GOLDEN_CHESTPLATE)
rating += 5;
else if (chest.getType() == Material.CHAINMAIL_CHESTPLATE)
rating += 5;
else if (chest.getType() == Material.IRON_CHESTPLATE)
rating += 6;
else if (chest.getType() == Material.DIAMOND_CHESTPLATE)
rating += 8;
}
return rating >= required.getInt(playerID);
}
@Override
@Nullable
public Number convert(Player evt) {
Number armorValue = 0;
// Check boots
if (evt.getInventory().getBoots() != null) {
if (evt.getInventory().getBoots().getType() == Material.LEATHER_BOOTS) {
armorValue = armorValue.doubleValue() + 0.5;
} else if (evt.getInventory().getBoots().getType() == Material.CHAINMAIL_BOOTS) {
armorValue = armorValue.doubleValue() + 0.5;
} else if (evt.getInventory().getBoots().getType() == Material.IRON_BOOTS) {
armorValue = armorValue.doubleValue() + 1;
} else if (evt.getInventory().getBoots().getType() == Material.GOLD_BOOTS) {
armorValue = armorValue.doubleValue() + 0.5;
} else if (evt.getInventory().getBoots().getType() == Material.DIAMOND_BOOTS) {
armorValue = armorValue.doubleValue() + 1.5;
}
}
// Check legs
if (evt.getInventory().getLeggings() != null) {
if (evt.getInventory().getLeggings().getType() == Material.LEATHER_LEGGINGS) {
armorValue = armorValue.doubleValue() + 1;
} else if (evt.getInventory().getLeggings().getType() == Material.CHAINMAIL_LEGGINGS) {
armorValue = armorValue.doubleValue() + 2;
} else if (evt.getInventory().getLeggings().getType() == Material.IRON_LEGGINGS) {
armorValue = armorValue.doubleValue() + 2.5;
} else if (evt.getInventory().getLeggings().getType() == Material.GOLD_LEGGINGS) {
armorValue = armorValue.doubleValue() + 1.5;
} else if (evt.getInventory().getLeggings().getType() == Material.DIAMOND_LEGGINGS) {
armorValue = armorValue.doubleValue() + 3;
}
}
// Check chest plate
if (evt.getInventory().getChestplate() != null) {
if (evt.getInventory().getChestplate().getType() == Material.LEATHER_CHESTPLATE) {
armorValue = armorValue.doubleValue() + 1.5;
} else if (evt.getInventory().getChestplate().getType() == Material.CHAINMAIL_CHESTPLATE) {
armorValue = armorValue.doubleValue() + 2.5;
} else if (evt.getInventory().getChestplate().getType() == Material.IRON_CHESTPLATE) {
armorValue = armorValue.doubleValue() + 3;
} else if (evt.getInventory().getChestplate().getType() == Material.GOLD_CHESTPLATE) {
armorValue = armorValue.doubleValue() + 2.5;
} else if (evt.getInventory().getChestplate().getType() == Material.DIAMOND_CHESTPLATE) {
armorValue = armorValue.doubleValue() + 4;
}
}
// Check helm
if (evt.getInventory().getHelmet() != null) {
if (evt.getInventory().getHelmet().getType() == Material.LEATHER_HELMET) {
armorValue = armorValue.doubleValue() + 0.5;
} else if (evt.getInventory().getHelmet().getType() == Material.CHAINMAIL_HELMET) {
armorValue = armorValue.doubleValue() + 1;
} else if (evt.getInventory().getHelmet().getType() == Material.IRON_HELMET) {
armorValue = armorValue.doubleValue() + 1;
} else if (evt.getInventory().getHelmet().getType() == Material.GOLD_HELMET) {
armorValue = armorValue.doubleValue() + 1;
} else if (evt.getInventory().getHelmet().getType() == Material.DIAMOND_HELMET) {
armorValue = armorValue.doubleValue() + 1.5;
}
}
return armorValue;
}
/**
* @param player
* @return A double between 0.0 and 0.80 that reflects how much armor the
* player has on. The higher the value, the more protection they
* have.
*/
static public double getDamageReduced(Player player) {
org.bukkit.inventory.PlayerInventory inv = player.getInventory();
ItemStack boots = inv.getBoots();
ItemStack helmet = inv.getHelmet();
ItemStack chest = inv.getChestplate();
ItemStack pants = inv.getLeggings();
double red = 0.0;
if (helmet != null) {
if (helmet.getType() == Material.LEATHER_HELMET)
red = red + 0.04;
else if (helmet.getType() == Material.GOLD_HELMET)
red = red + 0.08;
else if (helmet.getType() == Material.CHAINMAIL_HELMET)
red = red + 0.08;
else if (helmet.getType() == Material.IRON_HELMET)
red = red + 0.08;
else if (helmet.getType() == Material.DIAMOND_HELMET)
red = red + 0.12;
}
if (boots != null) {
if (boots.getType() == Material.LEATHER_BOOTS)
red = red + 0.04;
else if (boots.getType() == Material.GOLD_BOOTS)
red = red + 0.04;
else if (boots.getType() == Material.CHAINMAIL_BOOTS)
red = red + 0.04;
else if (boots.getType() == Material.IRON_BOOTS)
red = red + 0.08;
else if (boots.getType() == Material.DIAMOND_BOOTS)
red = red + 0.12;
}
// Pants
if (pants != null) {
if (pants.getType() == Material.LEATHER_LEGGINGS)
red = red + 0.08;
else if (pants.getType() == Material.GOLD_LEGGINGS)
red = red + 0.12;
else if (pants.getType() == Material.CHAINMAIL_LEGGINGS)
red = red + 0.16;
else if (pants.getType() == Material.IRON_LEGGINGS)
red = red + 0.20;
else if (pants.getType() == Material.DIAMOND_LEGGINGS)
red = red + 0.24;
}
// Chest plate
if (chest != null) {
if (chest.getType() == Material.LEATHER_CHESTPLATE)
red = red + 0.12;
else if (chest.getType() == Material.GOLD_CHESTPLATE)
red = red + 0.20;
else if (chest.getType() == Material.CHAINMAIL_CHESTPLATE)
red = red + 0.20;
else if (chest.getType() == Material.IRON_CHESTPLATE)
red = red + 0.24;
else if (chest.getType() == Material.DIAMOND_CHESTPLATE)
red = red + 0.32;
}
return red;
}