diff --git a/pom.xml b/pom.xml index 28859ea1f..17854fa8d 100644 --- a/pom.xml +++ b/pom.xml @@ -11,8 +11,8 @@ UTF-8 - 1.2.2-R0.1-SNAPSHOT - 1.2.2-R0.1-SNAPSHOT + 1.2.3-R0.1-SNAPSHOT + 1.2.3-R0.1-SNAPSHOT 2.0-SNAPSHOT Unknown diff --git a/src/main/java/net/citizensnpcs/trait/text/Text.java b/src/main/java/net/citizensnpcs/trait/text/Text.java index 59eae8d64..cbd486bb7 100644 --- a/src/main/java/net/citizensnpcs/trait/text/Text.java +++ b/src/main/java/net/citizensnpcs/trait/text/Text.java @@ -82,8 +82,8 @@ public class Text extends Trait implements Runnable, Toggleable { public void begin() { Messaging.send(player, "Entered the text editor!"); - new ConversationFactory(plugin).withFirstPrompt(startPrompt).withEscapeSequence("/npc text") - .buildConversation(player).begin(); + new ConversationFactory(plugin).withModality(false).withFirstPrompt(startPrompt).withEscapeSequence( + "/npc text").buildConversation(player).begin(); } @Override @@ -105,11 +105,15 @@ public class Text extends Trait implements Runnable, Toggleable { text.set(index, newText); } + public boolean hasIndex(int index) { + return text.size() > index; + } + public boolean sendPage(Player player, int page) { Paginator paginator = new Paginator(); paginator.setHeaderText(npc.getName() + "'s Text Entries"); - for (String line : text) - paginator.addLine(line); + for (int i = 0; i < text.size(); i++) + paginator.addLine("" + i + " <7>- " + text.get(i)); return paginator.sendPage(player, page); } diff --git a/src/main/java/net/citizensnpcs/trait/text/prompt/TextAddPrompt.java b/src/main/java/net/citizensnpcs/trait/text/prompt/TextAddPrompt.java index e219b0da9..bed867294 100644 --- a/src/main/java/net/citizensnpcs/trait/text/prompt/TextAddPrompt.java +++ b/src/main/java/net/citizensnpcs/trait/text/prompt/TextAddPrompt.java @@ -3,6 +3,7 @@ package net.citizensnpcs.trait.text.prompt; import net.citizensnpcs.trait.text.Text; import net.citizensnpcs.util.StringHelper; +import org.bukkit.ChatColor; import org.bukkit.conversations.ConversationContext; import org.bukkit.conversations.Prompt; import org.bukkit.conversations.StringPrompt; @@ -15,14 +16,14 @@ public class TextAddPrompt extends StringPrompt { } @Override - public Prompt acceptInput(ConversationContext context, String string) { - text.add(string); - context.getForWhom().sendRawMessage(StringHelper.parseColors("Added the entry " + string + ".")); + public Prompt acceptInput(ConversationContext context, String input) { + text.add(input); + context.getForWhom().sendRawMessage(StringHelper.parseColors("Added the entry " + input + ".")); return new StartPrompt(text); } @Override public String getPromptText(ConversationContext context) { - return "Enter text to add to the NPC."; + return ChatColor.GREEN + "Enter text to add to the NPC."; } } \ No newline at end of file diff --git a/src/main/java/net/citizensnpcs/trait/text/prompt/TextEditPrompt.java b/src/main/java/net/citizensnpcs/trait/text/prompt/TextEditPrompt.java index 57a08514d..e754e7289 100644 --- a/src/main/java/net/citizensnpcs/trait/text/prompt/TextEditPrompt.java +++ b/src/main/java/net/citizensnpcs/trait/text/prompt/TextEditPrompt.java @@ -17,10 +17,10 @@ public class TextEditPrompt extends StringPrompt { } @Override - public Prompt acceptInput(ConversationContext context, String string) { - text.edit((Integer) context.getSessionData("index"), string); + public Prompt acceptInput(ConversationContext context, String input) { + text.edit((Integer) context.getSessionData("index"), input); Messaging.send((Player) context.getForWhom(), "Changed entry at index " + context.getSessionData("index") - + " to " + string + "."); + + " to " + input + "."); return new StartPrompt(text); } diff --git a/src/main/java/net/citizensnpcs/trait/text/prompt/TextEditSelectIndexPrompt.java b/src/main/java/net/citizensnpcs/trait/text/prompt/TextEditSelectIndexPrompt.java index ee705ebcd..566c779fd 100644 --- a/src/main/java/net/citizensnpcs/trait/text/prompt/TextEditSelectIndexPrompt.java +++ b/src/main/java/net/citizensnpcs/trait/text/prompt/TextEditSelectIndexPrompt.java @@ -18,16 +18,16 @@ public class TextEditSelectIndexPrompt extends NumericPrompt { } @Override - public Prompt acceptValidatedInput(ConversationContext context, Number number) { - context.setSessionData("index", number.intValue()); - Messaging.send((Player) context.getForWhom(), "Now editing the entry at index " + number.intValue() - + ". Enter text to replace the entry with."); + public Prompt acceptValidatedInput(ConversationContext context, Number input) { + context.setSessionData("index", input.intValue()); + Messaging.send((Player) context.getForWhom(), "Now editing the entry at index " + input.intValue() + + "."); return new TextEditPrompt(text); } @Override - public String getFailedValidationText(ConversationContext context, String invalidInput) { - return ChatColor.RED + invalidInput + " is not a valid index!"; + public String getFailedValidationText(ConversationContext context, String input) { + return ChatColor.RED + "'" + input + "' is not a valid index!"; } @Override @@ -36,4 +36,9 @@ public class TextEditSelectIndexPrompt extends NumericPrompt { text.sendPage(player, 1); return StringHelper.parseColors("Enter the index of the entry you wish to edit."); } + + @Override + public boolean isNumberValid(ConversationContext context, Number input) { + return text.hasIndex(input.intValue()); + } } \ No newline at end of file diff --git a/src/main/java/net/citizensnpcs/trait/text/prompt/TextRemovePrompt.java b/src/main/java/net/citizensnpcs/trait/text/prompt/TextRemovePrompt.java index ecd015cb7..99d2bfaae 100644 --- a/src/main/java/net/citizensnpcs/trait/text/prompt/TextRemovePrompt.java +++ b/src/main/java/net/citizensnpcs/trait/text/prompt/TextRemovePrompt.java @@ -2,7 +2,6 @@ package net.citizensnpcs.trait.text.prompt; import net.citizensnpcs.trait.text.Text; import net.citizensnpcs.util.Messaging; -import net.citizensnpcs.util.StringHelper; import org.bukkit.ChatColor; import org.bukkit.conversations.ConversationContext; @@ -18,22 +17,27 @@ public class TextRemovePrompt extends NumericPrompt { } @Override - public Prompt acceptValidatedInput(ConversationContext context, Number number) { - int index = number.intValue(); + public Prompt acceptValidatedInput(ConversationContext context, Number input) { + int index = input.intValue(); text.remove(index); Messaging.send((Player) context.getForWhom(), "Removed entry at index " + index + "."); return new StartPrompt(text); } @Override - public String getFailedValidationText(ConversationContext context, String invalidInput) { - return ChatColor.RED + invalidInput + " is not a valid index!"; + public String getFailedValidationText(ConversationContext context, String input) { + return ChatColor.RED + "'" + input + "' is not a valid index!"; } @Override public String getPromptText(ConversationContext context) { Player player = (Player) context.getForWhom(); text.sendPage(player, 1); - return StringHelper.parseColors("Enter the index of the entry you wish to remove."); + return ChatColor.GREEN + "Enter the index of the entry you wish to remove."; + } + + @Override + public boolean isNumberValid(ConversationContext context, Number input) { + return text.hasIndex(input.intValue()); } } \ No newline at end of file