From 2bc87841d189cfc11dad3bf5dc0db1bafe7b623a Mon Sep 17 00:00:00 2001 From: KHobbits Date: Mon, 24 Sep 2012 00:19:39 +0100 Subject: [PATCH] Fix and give better sign errors. --- .../com/earth2me/essentials/signs/EssentialsSign.java | 5 +++++ .../src/com/earth2me/essentials/signs/SignEnchant.java | 3 +++ .../src/com/earth2me/essentials/signs/SignFree.java | 9 ++++++++- .../src/com/earth2me/essentials/signs/SignRepair.java | 1 + .../src/com/earth2me/essentials/signs/SignWarp.java | 4 +++- .../src/com/earth2me/essentials/signs/SignWeather.java | 1 + 6 files changed, 21 insertions(+), 2 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/signs/EssentialsSign.java b/Essentials/src/com/earth2me/essentials/signs/EssentialsSign.java index f3faa2de0..1e1b87ff7 100644 --- a/Essentials/src/com/earth2me/essentials/signs/EssentialsSign.java +++ b/Essentials/src/com/earth2me/essentials/signs/EssentialsSign.java @@ -438,11 +438,13 @@ public class EssentialsSign { private final transient SignChangeEvent event; private final transient Block block; + private final transient Sign sign; public EventSign(final SignChangeEvent event) { this.event = event; this.block = event.getBlock(); + this.sign = (Sign)block.getState(); } @Override @@ -455,6 +457,8 @@ public class EssentialsSign public final void setLine(final int index, final String text) { event.setLine(index, text); + sign.setLine(index, text); + updateSign(); } @Override @@ -466,6 +470,7 @@ public class EssentialsSign @Override public void updateSign() { + sign.update(); } } diff --git a/Essentials/src/com/earth2me/essentials/signs/SignEnchant.java b/Essentials/src/com/earth2me/essentials/signs/SignEnchant.java index e1eb7825e..37203555c 100644 --- a/Essentials/src/com/earth2me/essentials/signs/SignEnchant.java +++ b/Essentials/src/com/earth2me/essentials/signs/SignEnchant.java @@ -21,11 +21,13 @@ public class SignEnchant extends EssentialsSign final String[] enchantLevel = sign.getLine(2).split(":"); if (enchantLevel.length != 2) { + sign.setLine(2, "§c"); throw new SignException(_("invalidSignLine", 3)); } final Enchantment enchantment = Enchantments.getByName(enchantLevel[0]); if (enchantment == null) { + sign.setLine(2, "§c"); throw new SignException(_("enchantmentNotFound")); } int level; @@ -35,6 +37,7 @@ public class SignEnchant extends EssentialsSign } catch (NumberFormatException ex) { + sign.setLine(2, "§c"); throw new SignException(ex.getMessage(), ex); } if (level < 1 || level > enchantment.getMaxLevel()) diff --git a/Essentials/src/com/earth2me/essentials/signs/SignFree.java b/Essentials/src/com/earth2me/essentials/signs/SignFree.java index 781cbd33b..b5dd3fa73 100644 --- a/Essentials/src/com/earth2me/essentials/signs/SignFree.java +++ b/Essentials/src/com/earth2me/essentials/signs/SignFree.java @@ -19,7 +19,14 @@ public class SignFree extends EssentialsSign @Override protected boolean onSignCreate(final ISign sign, final User player, final String username, final IEssentials ess) throws SignException { - getItemStack(sign.getLine(1), 1, ess); + try { + getItemStack(sign.getLine(1), 1, ess); + } + catch (SignException ex) + { + sign.setLine(1, "§c"); + throw new SignException(ex.getMessage(), ex); + } return true; } diff --git a/Essentials/src/com/earth2me/essentials/signs/SignRepair.java b/Essentials/src/com/earth2me/essentials/signs/SignRepair.java index 361cd4c55..7e76309f1 100644 --- a/Essentials/src/com/earth2me/essentials/signs/SignRepair.java +++ b/Essentials/src/com/earth2me/essentials/signs/SignRepair.java @@ -25,6 +25,7 @@ public class SignRepair extends EssentialsSign } else if (!repairTarget.equalsIgnoreCase("all") && !repairTarget.equalsIgnoreCase("hand") ) { + sign.setLine(1, "§c"); throw new SignException(_("invalidSignLine", 2)); } validateTrade(sign, 2, ess); diff --git a/Essentials/src/com/earth2me/essentials/signs/SignWarp.java b/Essentials/src/com/earth2me/essentials/signs/SignWarp.java index 76e8e730b..ae49f743b 100644 --- a/Essentials/src/com/earth2me/essentials/signs/SignWarp.java +++ b/Essentials/src/com/earth2me/essentials/signs/SignWarp.java @@ -17,12 +17,14 @@ public class SignWarp extends EssentialsSign @Override protected boolean onSignCreate(final ISign sign, final User player, final String username, final IEssentials ess) throws SignException { + ess.getLogger().info("triggered warp sign create"); validateTrade(sign, 3, ess); final String warpName = sign.getLine(1); if (warpName.isEmpty()) { - sign.setLine(1, "§dWarp name!"); + ess.getLogger().info("trying to change sign to show error"); + sign.setLine(1, "§c"); return false; } else diff --git a/Essentials/src/com/earth2me/essentials/signs/SignWeather.java b/Essentials/src/com/earth2me/essentials/signs/SignWeather.java index 559fcc2e3..9be677143 100644 --- a/Essentials/src/com/earth2me/essentials/signs/SignWeather.java +++ b/Essentials/src/com/earth2me/essentials/signs/SignWeather.java @@ -29,6 +29,7 @@ public class SignWeather extends EssentialsSign sign.setLine(1, "§2Storm"); return true; } + sign.setLine(1, "§c"); throw new SignException(_("onlySunStorm")); }