Advertisement
Guest User

Untitled

a guest
Nov 24th, 2014
159
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.63 KB | None | 0 0
  1. import java.util.Map;
  2. import java.util.HashMap;
  3.  
  4. import org.bukkit.event.EventHandler;
  5.  
  6. import org.bukkit.event.Listener;
  7. import org.bukkit.enchantments.Enchantment;
  8. import org.bukkit.event.enchantment.EnchantItemEvent;
  9.  
  10. public class PlayerEnchantLock implements Listener
  11. {
  12.     // Map to set the limit on the enchants.
  13.     Map<Enchantment, Integer> enchantLockList = new HashMap<Enchantment, Integer>();
  14.  
  15.     // Set enchant locks here in the constructor
  16.     public PlayerEnchantLock()
  17.     {
  18.         enchantLockList.put(Enchantment.PROTECTION_ENVIRONMENTAL, 2);       // Protection
  19.         enchantLockList.put(Enchantment.PROTECTION_FIRE, 4);                // Fire Protection
  20.         enchantLockList.put(Enchantment.PROTECTION_FALL, 4);                // Feather Failing
  21.         enchantLockList.put(Enchantment.PROTECTION_EXPLOSIONS, 4);          // Blast Protection
  22.         enchantLockList.put(Enchantment.PROTECTION_PROJECTILE, 4);          // Projectile Protection
  23.         enchantLockList.put(Enchantment.OXYGEN, 3);                         // Respiration
  24.         enchantLockList.put(Enchantment.WATER_WORKER, 1);                   // Aqua Affinity
  25.         enchantLockList.put(Enchantment.THORNS, 3);                         // Thorns
  26.         enchantLockList.put(Enchantment.DAMAGE_ALL, 3);                     // Sharpness
  27.         enchantLockList.put(Enchantment.DAMAGE_UNDEAD, 5);                  // Smite
  28.         enchantLockList.put(Enchantment.DAMAGE_ARTHROPODS, 5);              // Bane of Arthropods
  29.         enchantLockList.put(Enchantment.KNOCKBACK, 0);                      // Knockback
  30.         enchantLockList.put(Enchantment.FIRE_ASPECT, 0);                    // Fire Aspect
  31.         enchantLockList.put(Enchantment.LOOT_BONUS_MOBS, 3);                // Looting
  32.         enchantLockList.put(Enchantment.DIG_SPEED, 5);                      // Efficiency
  33.         enchantLockList.put(Enchantment.SILK_TOUCH, 1);                     // Silk Touch
  34.         enchantLockList.put(Enchantment.DURABILITY, 3);                     // Unbreaking
  35.         enchantLockList.put(Enchantment.LOOT_BONUS_BLOCKS, 3);              // Fortune
  36.         enchantLockList.put(Enchantment.ARROW_DAMAGE, 3);                   // Power
  37.         enchantLockList.put(Enchantment.ARROW_KNOCKBACK, 0);                // Punch
  38.         enchantLockList.put(Enchantment.ARROW_FIRE, 1);                     // Flame
  39.         enchantLockList.put(Enchantment.ARROW_INFINITE, 1);                 // Infinite
  40.         enchantLockList.put(Enchantment.LUCK, 3);                           // Luck
  41.         enchantLockList.put(Enchantment.LURE, 3);                           // Lure
  42.     }
  43.  
  44.     // Event that will lock the enchant levels from an enchant table.
  45.     @EventHandler
  46.     public void onEnchantLock(EnchantItemEvent event)
  47.     {
  48.         Map<Enchantment, Integer> validEnchant = new HashMap<Enchantment, Integer>();
  49.  
  50.         for (Enchantment key : event.getEnchantsToAdd().keySet())
  51.         {
  52.             int LevelToSet = 0;
  53.  
  54.             if (enchantLockList.containsKey(key))
  55.             {
  56.                 if (enchantLockList.get(key) != 0)
  57.                 {
  58.                     if (event.getEnchantsToAdd().get(key) > enchantLockList.get(key))
  59.                         LevelToSet = enchantLockList.get(key);
  60.                     else
  61.                         LevelToSet = event.getEnchantsToAdd().get(key);
  62.  
  63.                     validEnchant.put(key, LevelToSet);
  64.                 }
  65.             }
  66.         }
  67.  
  68.         event.getEnchantsToAdd().clear();
  69.  
  70.         for (Enchantment key : validEnchant.keySet())
  71.             event.getEnchantsToAdd().put(key, validEnchant.get(key));
  72.     }
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement