aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/chat/ChatListener.java4
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/chat/filters/AbilityFilter.java2
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/chat/filters/AdFilter.java2
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/chat/filters/AoteFilter.java2
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/chat/filters/ChatFilter.java12
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/chat/filters/HealFilter.java2
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/chat/filters/ImplosionFilter.java2
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/chat/filters/MoltenWaveFilter.java2
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/FancyStatusBars.java2
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/Reparty.java71
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/skyblock/item/PriceInfoTooltip.java4
11 files changed, 68 insertions, 37 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/chat/ChatListener.java b/src/main/java/me/xmrvizzy/skyblocker/chat/ChatListener.java
index e89d06c2..84034f41 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/chat/ChatListener.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/chat/ChatListener.java
@@ -14,7 +14,5 @@ public abstract class ChatListener {
public abstract boolean isEnabled();
//Returns whether message should get filtered
- public boolean onMessage(String[] groups) {
- return true;
- }
+ public abstract boolean onMessage(String[] groups);
}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/chat/filters/AbilityFilter.java b/src/main/java/me/xmrvizzy/skyblocker/chat/filters/AbilityFilter.java
index 0956e0e5..d0178dd6 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/chat/filters/AbilityFilter.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/chat/filters/AbilityFilter.java
@@ -3,7 +3,7 @@ package me.xmrvizzy.skyblocker.chat.filters;
import me.xmrvizzy.skyblocker.chat.ChatListener;
import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
-public class AbilityFilter extends ChatListener {
+public class AbilityFilter extends ChatFilter {
public AbilityFilter() {
super("^(?:This ability is on cooldown for " + NUMBER + "s\\.|No more charges, next one in " + NUMBER + "s!)$");
}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/chat/filters/AdFilter.java b/src/main/java/me/xmrvizzy/skyblocker/chat/filters/AdFilter.java
index e772f098..16cb5fc3 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/chat/filters/AdFilter.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/chat/filters/AdFilter.java
@@ -5,7 +5,7 @@ import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
import java.util.regex.Pattern;
-public class AdFilter extends ChatListener {
+public class AdFilter extends ChatFilter {
private static final String regex;
public AdFilter() {
diff --git a/src/main/java/me/xmrvizzy/skyblocker/chat/filters/AoteFilter.java b/src/main/java/me/xmrvizzy/skyblocker/chat/filters/AoteFilter.java
index 6fa85f14..4545399e 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/chat/filters/AoteFilter.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/chat/filters/AoteFilter.java
@@ -3,7 +3,7 @@ package me.xmrvizzy.skyblocker.chat.filters;
import me.xmrvizzy.skyblocker.chat.ChatListener;
import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
-public class AoteFilter extends ChatListener {
+public class AoteFilter extends ChatFilter {
public AoteFilter() {
super("^There are blocks in the way!$");
}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/chat/filters/ChatFilter.java b/src/main/java/me/xmrvizzy/skyblocker/chat/filters/ChatFilter.java
new file mode 100644
index 00000000..fac9a3a3
--- /dev/null
+++ b/src/main/java/me/xmrvizzy/skyblocker/chat/filters/ChatFilter.java
@@ -0,0 +1,12 @@
+package me.xmrvizzy.skyblocker.chat.filters;
+
+import me.xmrvizzy.skyblocker.chat.ChatListener;
+
+public abstract class ChatFilter extends ChatListener {
+ public ChatFilter(String pattern) {
+ super(pattern);
+ }
+ public boolean onMessage(String[] groups) {
+ return true;
+ }
+}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/chat/filters/HealFilter.java b/src/main/java/me/xmrvizzy/skyblocker/chat/filters/HealFilter.java
index e8421a45..b4e1c575 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/chat/filters/HealFilter.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/chat/filters/HealFilter.java
@@ -3,7 +3,7 @@ package me.xmrvizzy.skyblocker.chat.filters;
import me.xmrvizzy.skyblocker.chat.ChatListener;
import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
-public class HealFilter extends ChatListener {
+public class HealFilter extends ChatFilter {
public HealFilter() {
super("^(?:You healed yourself for " + NUMBER + " health!|[a-zA-Z0-9_]{2,16} healed you for " + NUMBER + " health!)$");
}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/chat/filters/ImplosionFilter.java b/src/main/java/me/xmrvizzy/skyblocker/chat/filters/ImplosionFilter.java
index 5bcaba57..ffdc5f40 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/chat/filters/ImplosionFilter.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/chat/filters/ImplosionFilter.java
@@ -3,7 +3,7 @@ package me.xmrvizzy.skyblocker.chat.filters;
import me.xmrvizzy.skyblocker.chat.ChatListener;
import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
-public class ImplosionFilter extends ChatListener {
+public class ImplosionFilter extends ChatFilter {
public ImplosionFilter() {
super("^Your Implosion hit " + NUMBER + " enem(?:y|ies) for " + NUMBER + " damage\\.$");
}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/chat/filters/MoltenWaveFilter.java b/src/main/java/me/xmrvizzy/skyblocker/chat/filters/MoltenWaveFilter.java
index daa4b601..b6fbddaf 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/chat/filters/MoltenWaveFilter.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/chat/filters/MoltenWaveFilter.java
@@ -3,7 +3,7 @@ package me.xmrvizzy.skyblocker.chat.filters;
import me.xmrvizzy.skyblocker.chat.ChatListener;
import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
-public class MoltenWaveFilter extends ChatListener {
+public class MoltenWaveFilter extends ChatFilter {
public MoltenWaveFilter() {
super("^Your Molten Wave hit " + NUMBER + " enemy(?:y|ies) for " + NUMBER + " damage\\.$");
}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/FancyStatusBars.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/FancyStatusBars.java
index ed72858a..94642df0 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/FancyStatusBars.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/FancyStatusBars.java
@@ -16,7 +16,7 @@ import java.util.regex.Pattern;
public class FancyStatusBars extends DrawableHelper {
private static final MinecraftClient client = MinecraftClient.getInstance();
private static final Identifier BARS = new Identifier(SkyblockerMod.NAMESPACE,"textures/gui/bars.png");
- private static final Pattern ACTION_BAR_STATUS = Pattern.compile("^§[6c]([0-9]+)/([0-9]+)❤(?:\\+§c[0-9]+\\S)? {3,}(?:§a([0-9]+)§a❈ Defense|(\\S+(?: \\S+)*)) {3,}(?:§b([0-9]+)/([0-9]+)✎ Mana|(\\S+(?: \\S+)*))(?: {3,}(\\S+(?: \\S+)*))?$");
+ private static final Pattern ACTION_BAR_STATUS = Pattern.compile("^§[6c]([0-9]+)/([0-9]+)❤(?:\\+§c[0-9]+\\S)? {3,}(?:§a([0-9]+)§a❈ Defense|(\\S+(?: \\S+)*)) {3,}(?:§b([0-9]+)/([0-9]+)✎ Mana|(\\S+(?: \\S+)*))(.*)$");
private final Resource health;
private final Resource mana;
private int defense;
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 c12662d2..69278023 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/Reparty.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/dungeon/Reparty.java
@@ -5,16 +5,14 @@ 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 org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Reparty extends ChatListener {
private static final MinecraftClient client = MinecraftClient.getInstance();
- private static final Logger logger = LogManager.getLogger(Reparty.class.getName());
public static final Pattern PLAYER = Pattern.compile(" ([a-zA-Z0-9_]{2,16}) ●");
+ private static final int SLEEP_TIME = 600;
private String[] players;
private int playersSoFar;
@@ -24,14 +22,14 @@ public class Reparty extends ChatListener {
super("^(?:You are not currently in a party\\.|Party (?:Membe|Moderato)rs(?: \\(([0-9]+)\\)|:( .*)))$");
repartying = false;
ClientCommandManager.DISPATCHER.register(
- ClientCommandManager.literal("rp").executes(context -> {
- if(!Utils.isSkyblock)
+ ClientCommandManager.literal("rp").executes(context -> {
+ if (!Utils.isSkyblock || repartying)
+ return 0;
+ assert client.player != null;
+ repartying = true;
+ client.player.sendChatMessage("/p list");
return 0;
- assert client.player != null;
- repartying = true;
- client.player.sendChatMessage("/p list");
- return 0;
- })
+ })
);
}
@@ -42,35 +40,58 @@ public class Reparty extends ChatListener {
@Override
public boolean onMessage(String[] groups) {
- if(groups[1] != null) {
+ if (groups[1] != null) {
playersSoFar = 0;
players = new String[Integer.parseInt(groups[1]) - 1];
- }
- else if(groups[2] != null) {
+ } else if (groups[2] != null) {
Matcher m = PLAYER.matcher(groups[2]);
- while(m.find()) {
+ while (m.find()) {
players[playersSoFar++] = m.group(1);
}
- }
- else
+ } else {
repartying = false;
- if(playersSoFar == players.length)
- client.execute(this::reparty);
+ return false;
+ }
+ if (playersSoFar == players.length)
+ new Thread(this::reparty).start();
return false;
}
private void reparty() {
ClientPlayerEntity playerEntity = client.player;
assert playerEntity != null;
- playerEntity.sendChatMessage("/p disband");
- for(String player : players) {
- try {
- Thread.sleep(200);
- } catch (InterruptedException e) {
- logger.info("[Skyblocker] sleep while repartying interupted!");
+ StringBuilder sb = new StringBuilder("/p disband");
+ for (int i = 0; i < players.length; i++) {
+ if (i % 5 == 0) {
+ sleep();
+ playerEntity.sendChatMessage(sb.toString());
+ sb.setLength(0);
+ sb.append("/p invite");
}
- playerEntity.sendChatMessage("/p invite " + player);
+ sb.append(' ');
+ sb.append(players[i]);
+ }
+ if (players.length % 5 != 0) {
+ sleep();
+ playerEntity.sendChatMessage(sb.toString());
}
repartying = false;
}
+
+ private void sleep() {
+ long sleepStart = System.currentTimeMillis();
+ boolean interrupted = false;
+ long sleepLeft = SLEEP_TIME;
+ do {
+ if (interrupted) {
+ sleepLeft = sleepStart + SLEEP_TIME - System.currentTimeMillis();
+ interrupted = false;
+ }
+ try {
+ Thread.sleep(sleepLeft);
+ } catch (InterruptedException e) {
+ interrupted = true;
+ }
+ } while (interrupted);
+ }
}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/skyblock/item/PriceInfoTooltip.java b/src/main/java/me/xmrvizzy/skyblocker/skyblock/item/PriceInfoTooltip.java
index 92b53a6b..64f6d876 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/skyblock/item/PriceInfoTooltip.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/skyblock/item/PriceInfoTooltip.java
@@ -89,8 +89,8 @@ public class PriceInfoTooltip {
}
public static void init() {
- MinecraftClient.getInstance().execute(PriceInfoTooltip::downloadPrices);
- MinecraftClient.getInstance().execute(PriceInfoTooltip::downloadbazaarPrices);
+ new Thread(PriceInfoTooltip::downloadPrices).start();
+ new Thread(PriceInfoTooltip::downloadbazaarPrices).start();
}
private static void downloadPrices() {