From 9cee4f9826fddae13be15e63a5a809ca88530156 Mon Sep 17 00:00:00 2001 From: Iaccidentally Date: Mon, 6 Aug 2012 07:50:40 -0400 Subject: 2.9 -> 3.0 (new commands and signs) --- .../src/net/ess3/signs/SignGameMode.java | 20 ++++++-- EssentialsSigns/src/net/ess3/signs/SignInfo.java | 58 ++++++++++++++++++++++ EssentialsSigns/src/net/ess3/signs/SignRepair.java | 55 ++++++++++++++++++++ EssentialsSigns/src/net/ess3/signs/Signs.java | 2 + 4 files changed, 132 insertions(+), 3 deletions(-) create mode 100644 EssentialsSigns/src/net/ess3/signs/SignInfo.java create mode 100644 EssentialsSigns/src/net/ess3/signs/SignRepair.java (limited to 'EssentialsSigns/src/net') diff --git a/EssentialsSigns/src/net/ess3/signs/SignGameMode.java b/EssentialsSigns/src/net/ess3/signs/SignGameMode.java index a8ef5a881..b2e1b2db2 100644 --- a/EssentialsSigns/src/net/ess3/signs/SignGameMode.java +++ b/EssentialsSigns/src/net/ess3/signs/SignGameMode.java @@ -19,16 +19,30 @@ public class SignGameMode extends EssentialsSign @Override protected boolean onSignCreate(final ISign sign, final IUser player, final String username, final IEssentials ess) throws SignException { - validateTrade(sign, 1, ess); + final String gamemode = sign.getLine(1); + if (gamemode.isEmpty()) + { + sign.setLine(1, "Survival"); + } + + validateTrade(sign, 2, ess); + return true; } @Override protected boolean onSignInteract(final ISign sign, final IUser player, final String username, final IEssentials ess) throws SignException, ChargeException { - final Trade charge = getTrade(sign, 1, ess); + final Trade charge = getTrade(sign, 2, ess); + final String mode = sign.getLine(1).trim(); + + if (mode.isEmpty()) + { + throw new SignException(_("invalidSignLine", 2)); + } charge.isAffordableFor(player); - + + //this needs to be fixed player.setGameMode(player.getGameMode() == GameMode.SURVIVAL ? GameMode.CREATIVE : GameMode.SURVIVAL); player.sendMessage(_("gameMode", _(player.getGameMode().toString().toLowerCase(Locale.ENGLISH)), player.getDisplayName())); charge.charge(player); diff --git a/EssentialsSigns/src/net/ess3/signs/SignInfo.java b/EssentialsSigns/src/net/ess3/signs/SignInfo.java new file mode 100644 index 000000000..426e7c04c --- /dev/null +++ b/EssentialsSigns/src/net/ess3/signs/SignInfo.java @@ -0,0 +1,58 @@ +package net.ess3.signs; + + +import java.io.IOException; +import net.ess3.api.ChargeException; +import net.ess3.api.IEssentials; +import net.ess3.economy.Trade; +import net.ess3.user.User; +import net.ess3.utils.textreader.IText; +import net.ess3.utils.textreader.KeywordReplacer; +import net.ess3.utils.textreader.TextInput; +import net.ess3.utils.textreader.TextPager; + + +public class SignInfo extends EssentialsSign +{ + public SignInfo() + { + super("Info"); + } + + @Override + protected boolean onSignCreate(final ISign sign, final User player, final String username, final IEssentials ess) throws SignException + { + validateTrade(sign, 3, ess); + return true; + } + + @Override + protected boolean onSignInteract(final ISign sign, final User player, final String username, final IEssentials ess) throws SignException, ChargeException + { + final Trade charge = getTrade(sign, 3, ess); + charge.isAffordableFor(player); + + String chapter = sign.getLine(1); + String page = sign.getLine(2); + + final IText input; + try + { + input = new TextInput(player, "info", true, ess); + final IText output = new KeywordReplacer(input, player, ess); + final TextPager pager = new TextPager(output); + pager.showPage(chapter, page, null, player); + + } + catch (IOException ex) + { + throw new SignException(ex.getMessage(), ex); + } + + charge.charge(player); + return true; + } +} + + + diff --git a/EssentialsSigns/src/net/ess3/signs/SignRepair.java b/EssentialsSigns/src/net/ess3/signs/SignRepair.java new file mode 100644 index 000000000..aea1a69cb --- /dev/null +++ b/EssentialsSigns/src/net/ess3/signs/SignRepair.java @@ -0,0 +1,55 @@ +package net.ess3.signs; + +import net.ess3.api.IEssentials; +import net.ess3.commands.Commandrepair; +import net.ess3.economy.Trade; +import net.ess3.user.User; + + +public class SignRepair extends EssentialsSign +{ + public SignRepair() + { + super("Repair"); + } + + @Override + protected boolean onSignCreate(final ISign sign, final User player, final String username, final IEssentials ess) throws SignException + { + final String repairTarget = sign.getLine(1); + if (repairTarget.isEmpty()) + { + sign.setLine(1, "Hand"); + } + else if (!repairTarget.equalsIgnoreCase("all") && !repairTarget.equalsIgnoreCase("hand") ) + { + throw new SignException(_("invalidSignLine", 2)); + } + validateTrade(sign, 2, ess); + return true; + } + + @Override + protected boolean onSignInteract(final ISign sign, final User player, final String username, final IEssentials ess) throws SignException, ChargeException + { + final Trade charge = getTrade(sign, 2, ess); + charge.isAffordableFor(player); + + Commandrepair command = new Commandrepair(); + command.setEssentials(ess); + String[] args = new String[] + { + sign.getLine(1) + }; + try + { + command.run(ess.getServer(), player, "repair", args); + } + catch (Exception ex) + { + throw new SignException(ex.getMessage(), ex); + } + charge.charge(player); + return true; + } +} diff --git a/EssentialsSigns/src/net/ess3/signs/Signs.java b/EssentialsSigns/src/net/ess3/signs/Signs.java index af4111dac..5af46e0e2 100644 --- a/EssentialsSigns/src/net/ess3/signs/Signs.java +++ b/EssentialsSigns/src/net/ess3/signs/Signs.java @@ -10,9 +10,11 @@ public enum Signs FREE(new SignFree()), GAMEMODE(new SignGameMode()), HEAL(new SignHeal()), + INFO(new SignInfo()), KIT(new SignKit()), MAIL(new SignMail()), PROTECTION(new SignProtection()), + REPAIR(new SignRepair()), SELL(new SignSell()), SPAWNMOB(new SignSpawnmob()), TIME(new SignTime()), -- cgit v1.2.3