// All enchantments extend CustomEnchantmentpublicclassLifestealEnchantmentextendsCustomEnchantment{// List of items to enchant onto through an enchanting tablestaticfinalString[]LIFESTEAL_ITEMS=newMaterial[]{Material.WOOD_HOE,Material.STONE_HOE,Material.IRON_HOE,Material.GOLD_HOE,Material.DIAMOND_HOE};// Fields for a cooldown effect so players don't heal constantlystaticfinalintCOOLDOWN=5000;longtimer;publicLifestealEnchantment(){// Pass in the enchantment name and the designated itemssuper("Lifesteal",LIFESTEAL_ITEMS);// Gives your enchantment a description for the detailed list and detail bookdescription="Steals health on hit";// Maximum level of your enchantmentsetMaxLevel(5);// Modifies how early you can get your enchantmentsetBase(10);// Modifies how easily higher levels are obtained relative to the base valuesetInterval(8);}// Applies the enchantment effect on hit@OverridepublicvoidapplyEffect(LivingEntityuser,LivingEntitytarget,intenchantLevel,EntityDamageByEntityEventevent){if(System.currentTimeMillis()-timer<COOLDOWN)return;inthealth=user.getHealth()+enchantLevel;if(health>user.getMaxHealth())health=user.getMaxHealth();user.setHealth(health);timer=System.currentTimeMillis();}}
Lightning
publicclassLightningEnchantmentextendsCustomEnchantment{staticfinalString[]LIGHTNING_ITEMS=newMaterial[]{Material.WOOD_AXE,Material.STONE_AXE,Material.IRON_AXE,Material.GOLD_AXE,Material.DIAMOND_AXE};publicLightningEnchantment(){// The '2' is an enchantment weight (2 is fairly rare, larger numbers are more common)super("Lightning",LIGHTNING_ITEMS,2);description="Has a change to strike lightning on hit";setMaxLevel(5);setInterval(8);}@OverridepublicvoidapplyEffect(LivingEntityuser,LivingEntitytarget,intlevel,EntityDamageByEntityEventevent){// Give a chance to prock the effect instead of all the timeif(Math.random()<0.04*level)target.getWorld().strikeLightning(target.getLocation());}}
Damage Reflection
publicclassReflectionEnchantmentextendsCustomEnchantment{staticfinalString[]REFLECT_ITEMS=newMaterial[]{Material.IRON_CHESTPLATE,Material.DIAMOND_CHESTPLATE}publicReflectionEnchantment(){super("Reflection",REFLECT_ITEMS);description="Reflects damage back at attackers";setMaxLevel(10);setBase(8);setInterval(5);}// Apply the enchantment effect when taking damage@OverridepublicvoidapplyDefenseEffect(LivingEntityuser,LivingEntitytarget,intenchantLevel,EntityDamageEventevent){if(target!=null)target.damage((int)(event.getDamage()*0.1*enchantLevel),user);}}
Comments
To post a comment, please login or register a new account.
Comments