From dc3b373391db5e2fd43752430b13d59956d5be4e Mon Sep 17 00:00:00 2001 From: Jakub Kolodziej Date: Sat, 10 Jun 2023 14:23:35 +0200 Subject: Add Auto Rejoin Reparty --- .../skyblocker/chat/ChatMessageListener.java | 2 + .../skyblocker/config/SkyblockerConfig.java | 1 + .../skyblocker/skyblock/dungeon/RepartyRejoin.java | 51 ++++++++++++++++++++++ 3 files changed, 54 insertions(+) create mode 100644 src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/RepartyRejoin.java (limited to 'src/main/java') diff --git a/src/main/java/me/xmrvizzy/skyblocker/chat/ChatMessageListener.java b/src/main/java/me/xmrvizzy/skyblocker/chat/ChatMessageListener.java index f502a356..6d0f38b8 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/chat/ChatMessageListener.java +++ b/src/main/java/me/xmrvizzy/skyblocker/chat/ChatMessageListener.java @@ -5,6 +5,7 @@ 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.RepartyRejoin; 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 RepartyRejoin(), new ThreeWeirdos(), new Trivia(), new TreasureHunter(), diff --git a/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java b/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java index b1bc2001..3acbbdec 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java +++ b/src/main/java/me/xmrvizzy/skyblocker/config/SkyblockerConfig.java @@ -281,6 +281,7 @@ public class SkyblockerConfig implements ConfigData { public int mapX = 2; public int mapY = 2; public boolean solveThreeWeirdos = true; + public boolean repartyRejoin = true; public boolean blazesolver = true; public boolean solveTrivia = true; @ConfigEntry.Gui.CollapsibleObject diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/RepartyRejoin.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/RepartyRejoin.java new file mode 100644 index 00000000..ad91adc9 --- /dev/null +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/RepartyRejoin.java @@ -0,0 +1,51 @@ +package me.xmrvizzy.skyblocker.skyblock.dungeon; + +import me.xmrvizzy.skyblocker.SkyblockerMod; +import me.xmrvizzy.skyblocker.chat.ChatFilterResult; +import me.xmrvizzy.skyblocker.chat.ChatPatternListener; +import me.xmrvizzy.skyblocker.config.SkyblockerConfig; + +import net.minecraft.text.Text; + +import java.util.regex.Matcher; + +public class RepartyRejoin extends ChatPatternListener { + + private static final SkyblockerMod skyblocker = SkyblockerMod.getInstance(); + + private boolean repartying; + + + public RepartyRejoin(){ + super("^(?:That party has been disbanded\\.|([\\[A-z+\\]]* )?(?[A-z0-9_]*) has disbanded the party!)"); + this.repartying = false; + } + + @Override + protected ChatFilterResult state() { + return SkyblockerConfig.get().locations.dungeons.repartyRejoin ? ChatFilterResult.FILTER : ChatFilterResult.PASS; + } + + @Override + protected boolean onMatch(Text message, Matcher matcher) { + if (matcher.group("name")!=null) { + this.repartying = true; + join(matcher.group("name")); + return false; + } else if ( repartying ) { + repartying = false; + return true; + } + return false; + } + + private void join(String player){ + String command = "/party accept " + player; + sendCommand(command); + + } + + private void sendCommand(String command) { + skyblocker.messageScheduler.queueMessage(command, 15 ); + } +} -- cgit