summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKHobbits <rob@khobbits.co.uk>2013-01-05 07:05:25 +0000
committerKHobbits <rob@khobbits.co.uk>2013-01-05 07:05:25 +0000
commit6497db837d83437ce7757754dfa1a0b2d8120071 (patch)
tree56909b276d9c4c92ca5d55cbef70c95394c962dd
parent87cb6190eb20ba1482821dcb505d85a1e32846f3 (diff)
downloadEssentials-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.java28
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)
{