Search in sources :

Example 1 with Prompt

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;
}
Also used : PlayerAnimation(net.citizensnpcs.util.PlayerAnimation) StringPrompt(org.bukkit.conversations.StringPrompt) Prompt(org.bukkit.conversations.Prompt)

Example 2 with Prompt

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;
}
Also used : StringPrompt(org.bukkit.conversations.StringPrompt) Prompt(org.bukkit.conversations.Prompt)

Example 3 with 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);
}
Also used : Player(org.bukkit.entity.Player) Prompt(org.bukkit.conversations.Prompt) RegexPrompt(org.bukkit.conversations.RegexPrompt) World(org.bukkit.World) Location(org.bukkit.Location)

Example 4 with Prompt

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));
}
Also used : Consumer(java.util.function.Consumer) CitizensAPI(net.citizensnpcs.api.CitizensAPI) StringPrompt(org.bukkit.conversations.StringPrompt) ConversationFactory(org.bukkit.conversations.ConversationFactory) ConversationContext(org.bukkit.conversations.ConversationContext) Prompt(org.bukkit.conversations.Prompt) Player(org.bukkit.entity.Player) ConversationFactory(org.bukkit.conversations.ConversationFactory) StringPrompt(org.bukkit.conversations.StringPrompt) StringPrompt(org.bukkit.conversations.StringPrompt) Prompt(org.bukkit.conversations.Prompt) ConversationContext(org.bukkit.conversations.ConversationContext)

Aggregations

Prompt (org.bukkit.conversations.Prompt)4 StringPrompt (org.bukkit.conversations.StringPrompt)3 Player (org.bukkit.entity.Player)2 Consumer (java.util.function.Consumer)1 CitizensAPI (net.citizensnpcs.api.CitizensAPI)1 PlayerAnimation (net.citizensnpcs.util.PlayerAnimation)1 Location (org.bukkit.Location)1 World (org.bukkit.World)1 ConversationContext (org.bukkit.conversations.ConversationContext)1 ConversationFactory (org.bukkit.conversations.ConversationFactory)1 RegexPrompt (org.bukkit.conversations.RegexPrompt)1