From 896dd49fd26f1b432f64249188ddbd33f039bb5b Mon Sep 17 00:00:00 2001 From: pietru Date: Tue, 5 Nov 2024 20:31:34 +0100 Subject: [PATCH] more ways to cancel setup --- .../pietru/cookie_utils/api/TextCommands.java | 2 +- .../mixins/MessagePacketMixin.java | 18 +++++++++++------- .../net/pietru/cookie_utils/setups/Setup.java | 7 +++---- 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/src/main/java/net/pietru/cookie_utils/api/TextCommands.java b/src/main/java/net/pietru/cookie_utils/api/TextCommands.java index 19feccc..abdd5a4 100644 --- a/src/main/java/net/pietru/cookie_utils/api/TextCommands.java +++ b/src/main/java/net/pietru/cookie_utils/api/TextCommands.java @@ -100,7 +100,7 @@ public class TextCommands { if (args.length==2) { boolean a = has_perm(account.getUniqueId(), Setup.get_perm(args[1])); boolean b = has_perm(account.getUniqueId(), "setup.*"); - if (args[1].equals("cancel")) + if (args[1].equalsIgnoreCase("cancel") || args[1].equalsIgnoreCase("c")) Setup.cancel(account.getUniqueId()); else if (a || b) started = Setup.start(account.getUniqueId(), args[1]); diff --git a/src/main/java/net/pietru/cookie_utils/mixins/MessagePacketMixin.java b/src/main/java/net/pietru/cookie_utils/mixins/MessagePacketMixin.java index eac71e8..d0f8744 100644 --- a/src/main/java/net/pietru/cookie_utils/mixins/MessagePacketMixin.java +++ b/src/main/java/net/pietru/cookie_utils/mixins/MessagePacketMixin.java @@ -57,15 +57,19 @@ public class MessagePacketMixin { TextCommands.run(data,identity,ctx); ci.cancel(); } else if (Setup.setups.containsKey(account.getUniqueId())){ - Setup setup = Setup.setups.get(account.getUniqueId()); - if (setup.set_setup_text(message.replace(" ","_"))) { - ci.cancel(); + if (message.equals("!")) { + Setup.cancel(account.getUniqueId()); + } else { + Setup setup = Setup.setups.get(account.getUniqueId()); + if (setup.set_setup_text(message.replace(" ", "_"))) { + ci.cancel(); - setup.run_step(); + setup.run_step(); - MessagePacket packet = new MessagePacket("[Server] " + setup.get_step_hint()); - packet.playerUniqueId = account.getUniqueId(); - packet.setupAndSend(ctx); + MessagePacket packet = new MessagePacket("[Server] " + setup.get_step_hint()); + packet.playerUniqueId = account.getUniqueId(); + packet.setupAndSend(ctx); + } } } } diff --git a/src/main/java/net/pietru/cookie_utils/setups/Setup.java b/src/main/java/net/pietru/cookie_utils/setups/Setup.java index 8765294..67d47e5 100644 --- a/src/main/java/net/pietru/cookie_utils/setups/Setup.java +++ b/src/main/java/net/pietru/cookie_utils/setups/Setup.java @@ -27,10 +27,9 @@ public abstract class Setup { public static boolean cancel(String playerId){ if (!setups.containsKey(playerId)) return false; - Setup setup = setups.get(playerId); - if (setup==null) - return false; - setup.run_setup_canceled(); + Setup setup = setups.getOrDefault(playerId, null); + if (setup!=null) + setup.run_setup_canceled(); setups.remove(playerId); return true; }