aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/xmrvizzy/skyblocker
diff options
context:
space:
mode:
authorJakub Kolodziej <jakvb.kolodziej@gmail.com>2023-06-12 14:02:00 +0200
committerJakub Kolodziej <jakvb.kolodziej@gmail.com>2023-06-12 14:02:00 +0200
commitff720f790b87b7caf26f722534a2dc42d12377e4 (patch)
treed924fd54b61e18f7d6ff37e23d0b6131e545f2cf /src/main/java/me/xmrvizzy/skyblocker
parent24136a4e82c18e17d2cf88e389c665dffab3588d (diff)
downloadSkyblocker-ff720f790b87b7caf26f722534a2dc42d12377e4.tar.gz
Skyblocker-ff720f790b87b7caf26f722534a2dc42d12377e4.tar.bz2
Skyblocker-ff720f790b87b7caf26f722534a2dc42d12377e4.zip
Alternative Solution
Diffstat (limited to 'src/main/java/me/xmrvizzy/skyblocker')
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/chat/ChatMessageListener.java4
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/reparty/AcceptReparty.java40
-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);
}