diff options
author | KHobbits <rob@khobbits.co.uk> | 2013-01-05 07:05:25 +0000 |
---|---|---|
committer | KHobbits <rob@khobbits.co.uk> | 2013-01-05 07:05:25 +0000 |
commit | 6497db837d83437ce7757754dfa1a0b2d8120071 (patch) | |
tree | 56909b276d9c4c92ca5d55cbef70c95394c962dd | |
parent | 87cb6190eb20ba1482821dcb505d85a1e32846f3 (diff) | |
download | Essentials-6497db837d83437ce7757754dfa1a0b2d8120071.tar Essentials-6497db837d83437ce7757754dfa1a0b2d8120071.tar.gz Essentials-6497db837d83437ce7757754dfa1a0b2d8120071.tar.lz Essentials-6497db837d83437ce7757754dfa1a0b2d8120071.tar.xz Essentials-6497db837d83437ce7757754dfa1a0b2d8120071.zip |
Allow unsafe enchants to be placed by [enchant] signs if enabled in the config file.
-rw-r--r-- | Essentials/src/com/earth2me/essentials/signs/SignEnchant.java | 28 |
1 files changed, 25 insertions, 3 deletions
diff --git a/Essentials/src/com/earth2me/essentials/signs/SignEnchant.java b/Essentials/src/com/earth2me/essentials/signs/SignEnchant.java index 37203555c..39f52436b 100644 --- a/Essentials/src/com/earth2me/essentials/signs/SignEnchant.java +++ b/Essentials/src/com/earth2me/essentials/signs/SignEnchant.java @@ -40,7 +40,8 @@ public class SignEnchant extends EssentialsSign sign.setLine(2, "§c<enchant>"); throw new SignException(ex.getMessage(), ex); } - if (level < 1 || level > enchantment.getMaxLevel()) + final boolean allowUnsafe = ess.getSettings().allowUnsafeEnchantments() && player.isAuthorized("essentials.enchant.allowunsafe"); + if (level < 0 || (!allowUnsafe && level > enchantment.getMaxLevel())) { level = enchantment.getMaxLevel(); sign.setLine(2, enchantLevel[0] + ":" + level); @@ -49,7 +50,14 @@ public class SignEnchant extends EssentialsSign { if (stack != null) { - stack.addEnchantment(enchantment, level); + if (allowUnsafe) + { + stack.addUnsafeEnchantment(enchantment, level); + } + else + { + stack.addEnchantment(enchantment, level); + } } } catch (Throwable ex) @@ -103,7 +111,21 @@ public class SignEnchant extends EssentialsSign final ItemStack toEnchant = playerHand; try { - toEnchant.addEnchantment(enchantment, level); + if (level == 0) + { + toEnchant.removeEnchantment(enchantment); + } + else + { + if (ess.getSettings().allowUnsafeEnchantments()) + { + toEnchant.addUnsafeEnchantment(enchantment, level); + } + else + { + toEnchant.addEnchantment(enchantment, level); + } + } } catch (Exception ex) { |