|
|
|
@@ -118,29 +118,16 @@ public final class SuperBow extends JavaPlugin implements Listener
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
boolean hasMending = left.containsEnchantment(Enchantment.MENDING) || right.containsEnchantment(Enchantment.MENDING);
|
|
|
|
|
boolean hasInfinity = left.containsEnchantment(Enchantment.INFINITY) || right.containsEnchantment(Enchantment.INFINITY);
|
|
|
|
|
boolean hasMending = getEnchants(left).containsKey(Enchantment.MENDING) || getEnchants(right).containsKey(Enchantment.MENDING);
|
|
|
|
|
boolean hasInfinity = getEnchants(left).containsKey(Enchantment.INFINITY) || getEnchants(right).containsKey(Enchantment.INFINITY);
|
|
|
|
|
|
|
|
|
|
boolean hasBookWithBoth = false;
|
|
|
|
|
if (right.getType() == Material.ENCHANTED_BOOK)
|
|
|
|
|
{
|
|
|
|
|
EnchantmentStorageMeta meta = (EnchantmentStorageMeta)right.getItemMeta();
|
|
|
|
|
if (meta != null)
|
|
|
|
|
{
|
|
|
|
|
if (meta.hasStoredEnchant(Enchantment.MENDING) && meta.hasStoredEnchant(Enchantment.INFINITY))
|
|
|
|
|
{
|
|
|
|
|
hasBookWithBoth = true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if ((hasMending && hasInfinity) || hasBookWithBoth)
|
|
|
|
|
if ((hasMending && hasInfinity))
|
|
|
|
|
{
|
|
|
|
|
ItemStack result = left.clone();
|
|
|
|
|
boolean repair = false;
|
|
|
|
|
result.addUnsafeEnchantments(getEnchants(right));
|
|
|
|
|
if (right.getType() == Material.BOW)
|
|
|
|
|
{
|
|
|
|
|
result.addUnsafeEnchantments(right.getEnchantments());
|
|
|
|
|
int maxDamage = result.getType().getMaxDurability();
|
|
|
|
|
Damageable leftMeta = (Damageable)left.getItemMeta();
|
|
|
|
|
Damageable rightMeta = (Damageable)right.getItemMeta();
|
|
|
|
@@ -151,22 +138,12 @@ public final class SuperBow extends JavaPlugin implements Listener
|
|
|
|
|
}
|
|
|
|
|
int leftDurability = maxDamage - leftMeta.getDamage();
|
|
|
|
|
int rightDurability = maxDamage - rightMeta.getDamage();
|
|
|
|
|
|
|
|
|
|
int durability = Math.min(leftDurability + rightDurability, maxDamage);
|
|
|
|
|
int damage = maxDamage - durability;
|
|
|
|
|
repair = resultMeta.getDamage() != damage;
|
|
|
|
|
resultMeta.setDamage(damage);
|
|
|
|
|
result.setItemMeta(resultMeta);
|
|
|
|
|
}
|
|
|
|
|
else if (hasBookWithBoth)
|
|
|
|
|
{
|
|
|
|
|
EnchantmentStorageMeta book = (EnchantmentStorageMeta)right.getItemMeta();
|
|
|
|
|
if (book == null)
|
|
|
|
|
{
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
result.addUnsafeEnchantments(book.getStoredEnchants());
|
|
|
|
|
}
|
|
|
|
|
ItemMeta meta = result.getItemMeta();
|
|
|
|
|
if (meta == null)
|
|
|
|
|
{
|
|
|
|
|