diff --git a/TwosideKeeper.jar b/TwosideKeeper.jar index cc8653d..e89d453 100644 Binary files a/TwosideKeeper.jar and b/TwosideKeeper.jar differ diff --git a/src/plugin.yml b/src/plugin.yml index d8600b7..3ecf281 100644 --- a/src/plugin.yml +++ b/src/plugin.yml @@ -1,6 +1,6 @@ name: TwosideKeeper main: sig.plugin.TwosideKeeper.TwosideKeeper -version: 3.5.1 +version: 3.5.1a commands: money: description: Tells the player the amount of money they are holding. diff --git a/src/sig/plugin/TwosideKeeper/HelperStructures/Common/GenericFunctions.java b/src/sig/plugin/TwosideKeeper/HelperStructures/Common/GenericFunctions.java index 9fd977f..1dbd75d 100644 --- a/src/sig/plugin/TwosideKeeper/HelperStructures/Common/GenericFunctions.java +++ b/src/sig/plugin/TwosideKeeper/HelperStructures/Common/GenericFunctions.java @@ -1656,7 +1656,8 @@ public class GenericFunctions { if (item.getType().toString().contains("BOW") || item.getType().toString().contains("AXE") || item.getType().toString().contains("SWORD") || - item.getType().toString().contains("FISHING_ROD")) { + item.getType().toString().contains("FISHING_ROD") || + item.getType().toString().contains("HOE")) { return true; } else { return false; @@ -2008,4 +2009,31 @@ public class GenericFunctions { } } } + + public static ItemStack RemovePermEnchantmentChance(ItemStack item, Player p) { + if (item!=null && + item.getType()!=Material.AIR) { + int mendinglv = item.getEnchantmentLevel(Enchantment.MENDING); + int infinitylv = item.getEnchantmentLevel(Enchantment.ARROW_INFINITE); + if (mendinglv>0 && Math.random()<=0.00048828125) { + mendinglv--; + if (mendinglv>0) { + item.addUnsafeEnchantment(Enchantment.MENDING, mendinglv); + } else { + item.removeEnchantment(Enchantment.MENDING); + } + p.sendMessage(ChatColor.DARK_AQUA+"A level of "+ChatColor.YELLOW+"Mending"+ChatColor.DARK_AQUA+" has been knocked off of your "+((item.hasItemMeta() && item.getItemMeta().hasDisplayName())?item.getItemMeta().getDisplayName():UserFriendlyMaterialName(item))); + } + if (infinitylv>0 && Math.random()<=0.00048828125) { + infinitylv--; + if (infinitylv>0) { + item.addUnsafeEnchantment(Enchantment.ARROW_INFINITE, infinitylv); + } else { + item.removeEnchantment(Enchantment.ARROW_INFINITE); + } + p.sendMessage(ChatColor.DARK_AQUA+"A level of "+ChatColor.YELLOW+"Infinity"+ChatColor.DARK_AQUA+" has been knocked off of your "+((item.hasItemMeta() && item.getItemMeta().hasDisplayName())?item.getItemMeta().getDisplayName():UserFriendlyMaterialName(item))); + } + } + return item; + } } diff --git a/src/sig/plugin/TwosideKeeper/TwosideKeeper.java b/src/sig/plugin/TwosideKeeper/TwosideKeeper.java index edcca48..8866634 100644 --- a/src/sig/plugin/TwosideKeeper/TwosideKeeper.java +++ b/src/sig/plugin/TwosideKeeper/TwosideKeeper.java @@ -98,6 +98,8 @@ import org.bukkit.event.player.PlayerChatEvent; import org.bukkit.event.player.PlayerChatTabCompleteEvent; import org.bukkit.event.player.PlayerDropItemEvent; import org.bukkit.event.player.PlayerExpChangeEvent; +import org.bukkit.event.player.PlayerFishEvent; +import org.bukkit.event.player.PlayerFishEvent.State; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerItemBreakEvent; import org.bukkit.event.player.PlayerItemConsumeEvent; @@ -3326,6 +3328,10 @@ public class TwosideKeeper extends JavaPlugin implements Listener { GenericFunctions.isArtifactArmor(p.getEquipment().getArmorContents()[i])) { AwakenedArtifact.addPotentialEXP(p.getEquipment().getArmorContents()[i], (int)rawdmg, p); } + + if (GenericFunctions.isArmor(p.getEquipment().getArmorContents()[i])) { + GenericFunctions.RemovePermEnchantmentChance(p.getEquipment().getArmorContents()[i], p); + } } log("Final dmg is "+ev.getFinalDamage(),4); @@ -3441,6 +3447,9 @@ public class TwosideKeeper extends JavaPlugin implements Listener { }} ,100); } + if (GenericFunctions.isWeapon(p.getEquipment().getItemInMainHand())) { + GenericFunctions.RemovePermEnchantmentChance(p.getEquipment().getItemInMainHand(), p); + } //Artifact armor will receive a tiny bit of EXP. for (int i=0;i