New Sign: Info

Syntax: [info] / [chapter] / [page number] / [cost]
This commit is contained in:
KHobbits 2012-08-06 00:58:35 +01:00
parent ee608d944a
commit 2f562f79aa
4 changed files with 62 additions and 6 deletions

View file

@ -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;
}
}

View file

@ -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()),

View file

@ -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)));
}

View file

@ -218,6 +218,7 @@ enabledSigns:
#- enchant
#- gamemode
#- heal
#- info
#- spawnmob
#- repair
#- time