diff options
Diffstat (limited to 'src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/Reparty.java')
-rw-r--r-- | src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/Reparty.java | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/Reparty.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/Reparty.java index 65b9648f..f5fd1151 100644 --- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/Reparty.java +++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/Reparty.java @@ -1,16 +1,18 @@ package me.xmrvizzy.skyblocker.skyblock.dungeon; import me.xmrvizzy.skyblocker.SkyblockerMod; -import me.xmrvizzy.skyblocker.chat.ChatListener; +import me.xmrvizzy.skyblocker.chat.ChatFilterResult; +import me.xmrvizzy.skyblocker.chat.ChatPatternListener; import me.xmrvizzy.skyblocker.utils.Utils; import net.fabricmc.fabric.api.client.command.v1.ClientCommandManager; import net.minecraft.client.MinecraftClient; import net.minecraft.client.network.ClientPlayerEntity; +import net.minecraft.text.Text; import java.util.regex.Matcher; import java.util.regex.Pattern; -public class Reparty extends ChatListener { +public class Reparty extends ChatPatternListener { private static final MinecraftClient client = MinecraftClient.getInstance(); private static final SkyblockerMod skyblocker = SkyblockerMod.getInstance(); public static final Pattern PLAYER = Pattern.compile(" ([a-zA-Z0-9_]{2,16}) ●"); @@ -36,17 +38,17 @@ public class Reparty extends ChatListener { } @Override - public boolean isEnabled() { - return repartying; + public ChatFilterResult state() { + return repartying ? ChatFilterResult.FILTER : ChatFilterResult.PASS; } @Override - public boolean onMessage(String[] groups) { - if (groups[1] != null) { + public boolean onMatch(Text message, Matcher matcher) { + if (matcher.group(1) != null) { playersSoFar = 0; - players = new String[Integer.parseInt(groups[1]) - 1]; - } else if (groups[2] != null) { - Matcher m = PLAYER.matcher(groups[2]); + players = new String[Integer.parseInt(matcher.group(1)) - 1]; + } else if (matcher.group(2) != null) { + Matcher m = PLAYER.matcher(matcher.group(2)); while (m.find()) { players[playersSoFar++] = m.group(1); } @@ -65,10 +67,10 @@ public class Reparty extends ChatListener { sendCommand(playerEntity, "/p disband", 1); StringBuilder sb = new StringBuilder(); int invites = (players.length - 1) / 5 + 1; - for(int i = 0; i < invites; i++) { + for (int i = 0; i < invites; i++) { sb.setLength(0); sb.append("/p invite"); - for(int j = 0; j < 5 && i * 5 + j < players.length; j++) { + for (int j = 0; j < 5 && i * 5 + j < players.length; j++) { sb.append(' '); sb.append(players[i * 5 + j]); } |