Stop previous AStarTargeter nav strategy, usability tweaks for animation/chat triggers

This commit is contained in:
fullwall 2024-06-29 14:30:10 +08:00
parent 6e27ec8920
commit 147df027bb
3 changed files with 14 additions and 2 deletions

View File

@ -186,6 +186,9 @@ public class MCTargetStrategy implements PathStrategy, EntityTarget {
}
location = block.getLocation();
}
if (strategy != null) {
strategy.stop();
}
strategy = npc.isFlyable() ? new FlyingAStarNavigationStrategy(npc, location, parameters)
: new AStarNavigationStrategy(npc, location, parameters);
}

View File

@ -47,6 +47,7 @@ public class AnimationTriggerPrompt extends StringPrompt implements WaypointTrig
if (animation == null) {
Messaging.sendErrorTr((CommandSender) context.getForWhom(), Messages.INVALID_ANIMATION, input,
getValidAnimations());
return this;
}
animations.add(animation);
Messaging.sendTr((CommandSender) context.getForWhom(), Messages.ANIMATION_ADDED, input);
@ -64,7 +65,14 @@ public class AnimationTriggerPrompt extends StringPrompt implements WaypointTrig
@Override
public String getPromptText(ConversationContext context) {
Messaging.sendTr((CommandSender) context.getForWhom(), Messages.ANIMATION_TRIGGER_PROMPT, getValidAnimations());
if (context.getSessionData("said") == Boolean.TRUE) {
Messaging.send((CommandSender) context.getForWhom(),
"Current animations:<br>- " + Joiner.on("<br>- ").join(animations));
} else {
Messaging.sendTr((CommandSender) context.getForWhom(), Messages.ANIMATION_TRIGGER_PROMPT,
getValidAnimations());
context.setSessionData("said", true);
}
return "";
}

View File

@ -44,7 +44,7 @@ public class ChatTriggerPrompt extends StringPrompt implements WaypointTriggerPr
@Override
public WaypointTrigger createFromShortInput(ConversationContext context, String input) {
return null;
return new ChatTrigger(radius, Lists.newArrayList(input));
}
@Override
@ -54,6 +54,7 @@ public class ChatTriggerPrompt extends StringPrompt implements WaypointTriggerPr
"Current lines:<br>- " + Joiner.on("<br>- ").join(lines));
} else {
Messaging.sendTr((CommandSender) context.getForWhom(), Messages.CHAT_TRIGGER_PROMPT);
context.setSessionData("said", true);
}
return "";
}