use of org.bukkit.conversations.Prompt in project Citizens2 by CitizensDev.
the class AnimationTriggerPrompt method acceptInput.
@Override
public Prompt acceptInput(ConversationContext context, String input) {
if (input.equalsIgnoreCase("back")) {
return (Prompt) context.getSessionData("previous");
}
if (input.equalsIgnoreCase("finish")) {
context.setSessionData(WaypointTriggerPrompt.CREATED_TRIGGER_KEY, new AnimationTrigger(animations));
return (Prompt) context.getSessionData(WaypointTriggerPrompt.RETURN_PROMPT_KEY);
}
PlayerAnimation animation = Util.matchEnum(PlayerAnimation.values(), input);
if (animation == null) {
Messaging.sendErrorTr((CommandSender) context.getForWhom(), Messages.INVALID_ANIMATION, input, getValidAnimations());
}
animations.add(animation);
Messaging.sendTr((CommandSender) context.getForWhom(), Messages.ANIMATION_ADDED, input);
return this;
}
use of org.bukkit.conversations.Prompt in project Citizens2 by CitizensDev.
the class TriggerAddPrompt method acceptInput.
@Override
public Prompt acceptInput(ConversationContext context, String input) {
input = input.toLowerCase().trim();
if (input.equalsIgnoreCase("back")) {
context.setSessionData("said", false);
return (Prompt) context.getSessionData("previous");
}
Prompt prompt = WaypointTriggerRegistry.getTriggerPromptFrom(input);
if (prompt == null) {
Messaging.sendErrorTr((CommandSender) context.getForWhom(), Messages.WAYPOINT_TRIGGER_EDITOR_INVALID_TRIGGER, input);
context.setSessionData("said", false);
return this;
}
return prompt;
}
use of org.bukkit.conversations.Prompt in project Citizens2 by CitizensDev.
the class TeleportTriggerPrompt method acceptValidatedInput.
@Override
protected Prompt acceptValidatedInput(ConversationContext context, String input) {
input = input.trim();
if (input.equalsIgnoreCase("back"))
return (Prompt) context.getSessionData("previous");
if (input.equalsIgnoreCase("here")) {
Player player = (Player) context.getForWhom();
context.setSessionData(WaypointTriggerPrompt.CREATED_TRIGGER_KEY, new TeleportTrigger(player.getLocation()));
return (Prompt) context.getSessionData(WaypointTriggerPrompt.RETURN_PROMPT_KEY);
}
String[] parts = Iterables.toArray(Splitter.on(':').omitEmptyStrings().split(input), String.class);
String worldName = parts[0];
World world = Bukkit.getWorld(worldName);
if (world == null) {
Messaging.sendErrorTr((CommandSender) context.getForWhom(), Messages.WORLD_NOT_FOUND);
return this;
}
int x = Integer.parseInt(parts[1]);
int y = Integer.parseInt(parts[2]);
int z = Integer.parseInt(parts[3]);
context.setSessionData(WaypointTriggerPrompt.CREATED_TRIGGER_KEY, new Location(world, x, y, z));
return (Prompt) context.getSessionData(WaypointTriggerPrompt.RETURN_PROMPT_KEY);
}
use of org.bukkit.conversations.Prompt in project CitizensAPI by CitizensDev.
the class ModalMenuInput method captureInput.
public static void captureInput(Player player, InventoryMenu menu, Consumer<String> input) {
menu.close(player);
// TODO: this unregisters events incorrectly currently
player.beginConversation(new ConversationFactory(CitizensAPI.getPlugin()).addConversationAbandonedListener((evt) -> {
menu.present(player);
}).withLocalEcho(false).withEscapeSequence("exit").withModality(false).withTimeout(60).withFirstPrompt(new StringPrompt() {
@Override
public Prompt acceptInput(ConversationContext ctx, String text) {
input.accept(text);
menu.present(player);
return null;
}
@Override
public String getPromptText(ConversationContext ctx) {
return "";
}
}).buildConversation(player));
}
Aggregations