diff options
author | Jakub Kolodziej <jakvb.kolodziej@gmail.com> | 2023-06-12 14:02:00 +0200 |
---|---|---|
committer | Jakub Kolodziej <jakvb.kolodziej@gmail.com> | 2023-06-12 14:02:00 +0200 |
commit | ff720f790b87b7caf26f722534a2dc42d12377e4 (patch) | |
tree | d924fd54b61e18f7d6ff37e23d0b6131e545f2cf /src/main/java/me | |
parent | 24136a4e82c18e17d2cf88e389c665dffab3588d (diff) | |
download | Skyblocker-ff720f790b87b7caf26f722534a2dc42d12377e4.tar.gz Skyblocker-ff720f790b87b7caf26f722534a2dc42d12377e4.tar.bz2 Skyblocker-ff720f790b87b7caf26f722534a2dc42d12377e4.zip |
Alternative Solution
Diffstat (limited to 'src/main/java/me')
-rw-r--r-- | src/main/java/me/xmrvizzy/skyblocker/chat/ChatMessageListener.java | 4 | ||||
-rw-r--r-- | src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/reparty/AcceptReparty.java | 40 | ||||
-rw-r--r-- | src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/reparty/Reparty.java (renamed from src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/Reparty.java) | 11 |
3 files changed, 47 insertions, 8 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/chat/ChatMessageListener.java b/src/main/java/me/xmrvizzy/skyblocker/chat/ChatMessageListener.java index f502a356..da0f7ef9 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/chat/ChatMessageListener.java +++ b/src/main/java/me/xmrvizzy/skyblocker/chat/ChatMessageListener.java @@ -4,7 +4,8 @@ import me.xmrvizzy.skyblocker.chat.filters.*; import me.xmrvizzy.skyblocker.skyblock.api.ApiKeyListener; import me.xmrvizzy.skyblocker.skyblock.barn.HungryHiker; import me.xmrvizzy.skyblocker.skyblock.barn.TreasureHunter; -import me.xmrvizzy.skyblocker.skyblock.dungeon.Reparty; +import me.xmrvizzy.skyblocker.skyblock.dungeon.reparty.AcceptReparty; +import me.xmrvizzy.skyblocker.skyblock.dungeon.reparty.Reparty; import me.xmrvizzy.skyblocker.skyblock.dungeon.ThreeWeirdos; import me.xmrvizzy.skyblocker.skyblock.dungeon.Trivia; import me.xmrvizzy.skyblocker.skyblock.dwarven.Fetchur; @@ -41,6 +42,7 @@ public interface ChatMessageListener { new Fetchur(), new Puzzler(), new Reparty(), + new AcceptReparty(), new ThreeWeirdos(), new Trivia(), new TreasureHunter(), diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/reparty/AcceptReparty.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/reparty/AcceptReparty.java new file mode 100644 index 00000000..3a243a57 --- /dev/null +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/reparty/AcceptReparty.java @@ -0,0 +1,40 @@ +package me.xmrvizzy.skyblocker.skyblock.dungeon.reparty; + +import me.xmrvizzy.skyblocker.SkyblockerMod; +import me.xmrvizzy.skyblocker.chat.ChatFilterResult; +import me.xmrvizzy.skyblocker.chat.ChatPatternListener; +import net.minecraft.text.Text; + +import java.util.regex.Matcher; + +import static me.xmrvizzy.skyblocker.skyblock.dungeon.reparty.Reparty.partyLeader; + +public class AcceptReparty extends ChatPatternListener { + + private static final SkyblockerMod skyblocker = SkyblockerMod.getInstance(); + + public AcceptReparty() { + super("-----------------------------------------------------" + + "\n([\\[A-z+\\]]* )?(?<name>[A-z0-9_]*) has invited you to join their party!" + + "\nYou have 60 seconds to accept. Click here to join!" + + "\n-----------------------------------------------------"); + } + + @Override + protected ChatFilterResult state() { + return (partyLeader != null) ? ChatFilterResult.FILTER : ChatFilterResult.PASS; + } + + @Override + protected boolean onMatch(Text message, Matcher matcher) { + try { + if (matcher.group("name").equals(partyLeader)) { + skyblocker.messageScheduler.sendMessageAfterCooldown("/party accept " + partyLeader); + } + } catch (NullPointerException e) { + //in case if block executes after setting "partyLeader" variable to null + } + partyLeader = null; + return false; + } +} diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/Reparty.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/reparty/Reparty.java index 3a121eb2..1bff342f 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/Reparty.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/reparty/Reparty.java @@ -1,4 +1,4 @@ -package me.xmrvizzy.skyblocker.skyblock.dungeon; +package me.xmrvizzy.skyblocker.skyblock.dungeon.reparty; import me.xmrvizzy.skyblocker.SkyblockerMod; import me.xmrvizzy.skyblocker.chat.ChatFilterResult; @@ -20,6 +20,7 @@ public class Reparty extends ChatPatternListener { public static final Pattern PLAYER = Pattern.compile(" ([a-zA-Z0-9_]{2,16}) ●"); private static final int BASE_DELAY = 10; + public static String partyLeader; private String[] players; private int playersSoFar; private boolean repartying; @@ -54,7 +55,8 @@ public class Reparty extends ChatPatternListener { this.players[playersSoFar++] = m.group(1); } } else if (matcher.group("name") != null && !matcher.group("name").equals(client.getSession().getUsername())) { - join(matcher.group("name")); + partyLeader = matcher.group("name"); + skyblocker.scheduler.schedule(() -> partyLeader = null, 20); return false; } else { this.repartying = false; @@ -80,11 +82,6 @@ public class Reparty extends ChatPatternListener { skyblocker.scheduler.schedule(() -> this.repartying = false, this.players.length + 2); } - private void join(String player) { - String command = "/party accept " + player; - skyblocker.messageScheduler.queueMessage(command, 15); - } - private void sendCommand(String command, int delay) { skyblocker.messageScheduler.queueMessage(command, delay * BASE_DELAY); } |