From 0f1eb9b4f910b4f61f4c89fbad14b6485c372756 Mon Sep 17 00:00:00 2001 From: snowleo Date: Wed, 14 Dec 2011 16:04:15 +0100 Subject: Moved signs code to a new module --- .../com/earth2me/essentials/signs/SignEnchant.java | 121 +++++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 EssentialsSigns/src/com/earth2me/essentials/signs/SignEnchant.java (limited to 'EssentialsSigns/src/com/earth2me/essentials/signs/SignEnchant.java') diff --git a/EssentialsSigns/src/com/earth2me/essentials/signs/SignEnchant.java b/EssentialsSigns/src/com/earth2me/essentials/signs/SignEnchant.java new file mode 100644 index 000000000..9d640c735 --- /dev/null +++ b/EssentialsSigns/src/com/earth2me/essentials/signs/SignEnchant.java @@ -0,0 +1,121 @@ +package com.earth2me.essentials.signs; + +import com.earth2me.essentials.ChargeException; +import com.earth2me.essentials.Enchantments; +import com.earth2me.essentials.api.IEssentials; +import com.earth2me.essentials.api.IUser; +import static com.earth2me.essentials.I18n._; +import com.earth2me.essentials.Trade; +import com.earth2me.essentials.craftbukkit.InventoryWorkaround; +import java.util.Locale; +import org.bukkit.Material; +import org.bukkit.enchantments.Enchantment; +import org.bukkit.inventory.ItemStack; + + +public class SignEnchant extends EssentialsSign +{ + public SignEnchant() + { + super("Enchant"); + } + + @Override + protected boolean onSignCreate(final ISign sign, final IUser player, final String username, final IEssentials ess) throws SignException, ChargeException + { + final ItemStack stack = sign.getLine(1).equals("*") || sign.getLine(1).equalsIgnoreCase("any") ? null : getItemStack(sign.getLine(1), 1, ess); + final String[] enchantLevel = sign.getLine(2).split(":"); + if (enchantLevel.length != 2) + { + throw new SignException(_("invalidSignLine", 3)); + } + final Enchantment enchantment = Enchantments.getByName(enchantLevel[0]); + if (enchantment == null) + { + throw new SignException(_("enchantmentNotFound")); + } + int level; + try + { + level = Integer.parseInt(enchantLevel[1]); + } + catch (NumberFormatException ex) + { + throw new SignException(ex.getMessage()); + } + if (level < 1 || level > enchantment.getMaxLevel()) + { + level = enchantment.getMaxLevel(); + sign.setLine(2, enchantLevel[0] + ":" + level); + } + try + { + if (stack != null) + { + stack.addEnchantment(enchantment, level); + } + } + catch (Throwable ex) + { + throw new SignException(ex.getMessage()); + } + getTrade(sign, 3, ess); + return true; + } + + @Override + protected boolean onSignInteract(ISign sign, IUser player, String username, IEssentials ess) throws SignException, ChargeException + { + final ItemStack search = sign.getLine(1).equals("*") || sign.getLine(1).equalsIgnoreCase("any") ? null : getItemStack(sign.getLine(1), 1, ess); + int slot = -1; + final Trade charge = getTrade(sign, 3, ess); + charge.isAffordableFor(player); + final String[] enchantLevel = sign.getLine(2).split(":"); + if (enchantLevel.length != 2) + { + throw new SignException(_("invalidSignLine", 3)); + } + final Enchantment enchantment = Enchantments.getByName(enchantLevel[0]); + if (enchantment == null) + { + throw new SignException(_("enchantmentNotFound")); + } + int level; + try + { + level = Integer.parseInt(enchantLevel[1]); + } + catch (NumberFormatException ex) + { + level = enchantment.getMaxLevel(); + } + + final ItemStack playerHand = player.getItemInHand(); + if (playerHand == null + || playerHand.getAmount() != 1 + || (playerHand.containsEnchantment(enchantment) + && playerHand.getEnchantmentLevel(enchantment) == level)) + { + throw new SignException(_("missingItems", 1, sign.getLine(1))); + } + if (search != null && playerHand.getType() != search.getType()) + { + throw new SignException(_("missingItems", 1, search.getType().toString().toLowerCase(Locale.ENGLISH).replace('_', ' '))); + } + + final ItemStack toEnchant = playerHand; + try + { + toEnchant.addEnchantment(enchantment, level); + } + catch (Exception ex) + { + throw new SignException(ex.getMessage(), ex); + } + + charge.charge(player); + Trade.log("Sign", "Enchant", "Interact", username, charge, username, charge, sign.getBlock().getLocation(), ess); + player.updateInventory(); + return true; + } +} -- cgit v1.2.3 From 3513d72a7b883701ba8d90c523da5af8bf4d0d07 Mon Sep 17 00:00:00 2001 From: KHobbits Date: Wed, 4 Jan 2012 21:41:05 +0000 Subject: Fixing Warp, Spawnmob signs Fix Imports --- EssentialsSigns/src/com/earth2me/essentials/signs/SignEnchant.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'EssentialsSigns/src/com/earth2me/essentials/signs/SignEnchant.java') diff --git a/EssentialsSigns/src/com/earth2me/essentials/signs/SignEnchant.java b/EssentialsSigns/src/com/earth2me/essentials/signs/SignEnchant.java index 9d640c735..3800c50de 100644 --- a/EssentialsSigns/src/com/earth2me/essentials/signs/SignEnchant.java +++ b/EssentialsSigns/src/com/earth2me/essentials/signs/SignEnchant.java @@ -2,13 +2,11 @@ package com.earth2me.essentials.signs; import com.earth2me.essentials.ChargeException; import com.earth2me.essentials.Enchantments; -import com.earth2me.essentials.api.IEssentials; -import com.earth2me.essentials.api.IUser; import static com.earth2me.essentials.I18n._; import com.earth2me.essentials.Trade; -import com.earth2me.essentials.craftbukkit.InventoryWorkaround; +import com.earth2me.essentials.api.IEssentials; +import com.earth2me.essentials.api.IUser; import java.util.Locale; -import org.bukkit.Material; import org.bukkit.enchantments.Enchantment; import org.bukkit.inventory.ItemStack; -- cgit v1.2.3 From 224e5f129eb4a18a46c063fc290a26abce247d9c Mon Sep 17 00:00:00 2001 From: Paul Buonopane Date: Thu, 23 Feb 2012 12:14:33 -0500 Subject: ChargeException was in the correct folder, but had the wrong package header. Signed-off-by: Paul Buonopane --- EssentialsSigns/src/com/earth2me/essentials/signs/SignEnchant.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'EssentialsSigns/src/com/earth2me/essentials/signs/SignEnchant.java') diff --git a/EssentialsSigns/src/com/earth2me/essentials/signs/SignEnchant.java b/EssentialsSigns/src/com/earth2me/essentials/signs/SignEnchant.java index 3800c50de..e2ca49f1b 100644 --- a/EssentialsSigns/src/com/earth2me/essentials/signs/SignEnchant.java +++ b/EssentialsSigns/src/com/earth2me/essentials/signs/SignEnchant.java @@ -1,6 +1,6 @@ package com.earth2me.essentials.signs; -import com.earth2me.essentials.ChargeException; +import com.earth2me.essentials.api.ChargeException; import com.earth2me.essentials.Enchantments; import static com.earth2me.essentials.I18n._; import com.earth2me.essentials.Trade; -- cgit v1.2.3 From 90acb796f475356a9110af7ceb915efd80624de2 Mon Sep 17 00:00:00 2001 From: snowleo Date: Wed, 14 Mar 2012 03:58:53 +0100 Subject: Trade is part of Economy --- EssentialsSigns/src/com/earth2me/essentials/signs/SignEnchant.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'EssentialsSigns/src/com/earth2me/essentials/signs/SignEnchant.java') diff --git a/EssentialsSigns/src/com/earth2me/essentials/signs/SignEnchant.java b/EssentialsSigns/src/com/earth2me/essentials/signs/SignEnchant.java index e2ca49f1b..66f379d85 100644 --- a/EssentialsSigns/src/com/earth2me/essentials/signs/SignEnchant.java +++ b/EssentialsSigns/src/com/earth2me/essentials/signs/SignEnchant.java @@ -3,7 +3,7 @@ package com.earth2me.essentials.signs; import com.earth2me.essentials.api.ChargeException; import com.earth2me.essentials.Enchantments; import static com.earth2me.essentials.I18n._; -import com.earth2me.essentials.Trade; +import com.earth2me.essentials.economy.Trade; import com.earth2me.essentials.api.IEssentials; import com.earth2me.essentials.api.IUser; import java.util.Locale; -- cgit v1.2.3 From f9668be20ea977f271de288ec09b1dc45a6708b1 Mon Sep 17 00:00:00 2001 From: snowleo Date: Wed, 14 Mar 2012 04:32:40 +0100 Subject: Enchantments are part of bukkit --- EssentialsSigns/src/com/earth2me/essentials/signs/SignEnchant.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'EssentialsSigns/src/com/earth2me/essentials/signs/SignEnchant.java') diff --git a/EssentialsSigns/src/com/earth2me/essentials/signs/SignEnchant.java b/EssentialsSigns/src/com/earth2me/essentials/signs/SignEnchant.java index 66f379d85..4c5deb51f 100644 --- a/EssentialsSigns/src/com/earth2me/essentials/signs/SignEnchant.java +++ b/EssentialsSigns/src/com/earth2me/essentials/signs/SignEnchant.java @@ -1,7 +1,7 @@ package com.earth2me.essentials.signs; import com.earth2me.essentials.api.ChargeException; -import com.earth2me.essentials.Enchantments; +import com.earth2me.essentials.bukkit.Enchantments; import static com.earth2me.essentials.I18n._; import com.earth2me.essentials.economy.Trade; import com.earth2me.essentials.api.IEssentials; -- cgit v1.2.3