summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKHobbits <rob@khobbits.co.uk>2012-08-06 00:58:35 +0100
committerKHobbits <rob@khobbits.co.uk>2012-08-06 00:58:35 +0100
commit2f562f79aa39b0a4aa4ca16d6cbe8d3725a22a18 (patch)
treee5c55ef9d06ae061ed067636856c8b0a084f8df3
parentee608d944a8592c2d92b06a984d78c08c2a507e8 (diff)
downloadEssentials-2f562f79aa39b0a4aa4ca16d6cbe8d3725a22a18.tar
Essentials-2f562f79aa39b0a4aa4ca16d6cbe8d3725a22a18.tar.gz
Essentials-2f562f79aa39b0a4aa4ca16d6cbe8d3725a22a18.tar.lz
Essentials-2f562f79aa39b0a4aa4ca16d6cbe8d3725a22a18.tar.xz
Essentials-2f562f79aa39b0a4aa4ca16d6cbe8d3725a22a18.zip
New Sign: Info
Syntax: [info] / [chapter] / [page number] / [cost]
-rw-r--r--Essentials/src/com/earth2me/essentials/signs/SignInfo.java54
-rw-r--r--Essentials/src/com/earth2me/essentials/signs/Signs.java1
-rw-r--r--Essentials/src/com/earth2me/essentials/textreader/TextPager.java12
-rw-r--r--Essentials/src/config.yml1
4 files changed, 62 insertions, 6 deletions
diff --git a/Essentials/src/com/earth2me/essentials/signs/SignInfo.java b/Essentials/src/com/earth2me/essentials/signs/SignInfo.java
new file mode 100644
index 000000000..1d60ec127
--- /dev/null
+++ b/Essentials/src/com/earth2me/essentials/signs/SignInfo.java
@@ -0,0 +1,54 @@
+package com.earth2me.essentials.signs;
+
+import com.earth2me.essentials.ChargeException;
+import com.earth2me.essentials.IEssentials;
+import com.earth2me.essentials.Trade;
+import com.earth2me.essentials.User;
+import com.earth2me.essentials.textreader.IText;
+import com.earth2me.essentials.textreader.KeywordReplacer;
+import com.earth2me.essentials.textreader.TextInput;
+import com.earth2me.essentials.textreader.TextPager;
+import java.io.IOException;
+
+
+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/Essentials/src/com/earth2me/essentials/signs/Signs.java b/Essentials/src/com/earth2me/essentials/signs/Signs.java
index e30daa9a3..41de479d3 100644
--- a/Essentials/src/com/earth2me/essentials/signs/Signs.java
+++ b/Essentials/src/com/earth2me/essentials/signs/Signs.java
@@ -10,6 +10,7 @@ public enum Signs
FREE(new SignFree()),
GAMEMODE(new SignGameMode()),
HEAL(new SignHeal()),
+ INFO(new SignInfo()),
KIT(new SignKit()),
MAIL(new SignMail()),
PROTECTION(new SignProtection()),
diff --git a/Essentials/src/com/earth2me/essentials/textreader/TextPager.java b/Essentials/src/com/earth2me/essentials/textreader/TextPager.java
index cb70839dd..7b73f49ab 100644
--- a/Essentials/src/com/earth2me/essentials/textreader/TextPager.java
+++ b/Essentials/src/com/earth2me/essentials/textreader/TextPager.java
@@ -48,7 +48,7 @@ public class TextPager
final int start = onePage ? 0 : (page - 1) * 9;
final int pages = lines.size() / 9 + (lines.size() % 9 > 0 ? 1 : 0);
- if (!onePage)
+ if (!onePage && commandName != null)
{
StringBuilder content = new StringBuilder();
final String[] title = commandName.split(" ", 2);
@@ -72,7 +72,7 @@ public class TextPager
{
sender.sendMessage(lines.get(i));
}
- if (!onePage && page < pages)
+ if (!onePage && page < pages && commandName != null)
{
sender.sendMessage(_("readNextPage", commandName, page + 1));
}
@@ -130,7 +130,7 @@ public class TextPager
}
int pages = end / 9 + (end % 9 > 0 ? 1 : 0);
- if (!onePage)
+ if (!onePage && commandName != null)
{
sender.sendMessage(_("infoPages", page, pages, I18n.capitalCase(commandName)));
@@ -139,7 +139,7 @@ public class TextPager
{
sender.sendMessage(lines.get(i));
}
- if (!onePage && page < pages)
+ if (!onePage && page < pages && commandName != null)
{
sender.sendMessage(_("readNextPage", commandName, page + 1));
}
@@ -183,7 +183,7 @@ public class TextPager
final int page = chapterpage + 1;
final int pages = (chapterend - chapterstart) / 9 + ((chapterend - chapterstart) % 9 > 0 ? 1 : 0);
- if (!onePage)
+ if (!onePage && commandName != null)
{
sender.sendMessage(_("infoChapterPages", pageStr, page, pages));
}
@@ -191,7 +191,7 @@ public class TextPager
{
sender.sendMessage(lines.get(i));
}
- if (!onePage && page < pages)
+ if (!onePage && page < pages && commandName != null)
{
sender.sendMessage(_("readNextPage", commandName, pageStr + " " + (page + 1)));
}
diff --git a/Essentials/src/config.yml b/Essentials/src/config.yml
index 5ca2ce2d1..34d13bf5a 100644
--- a/Essentials/src/config.yml
+++ b/Essentials/src/config.yml
@@ -218,6 +218,7 @@ enabledSigns:
#- enchant
#- gamemode
#- heal
+ #- info
#- spawnmob
#- repair
#- time