From 865d5564138ef6092a46b032a2fd12bc7b383ebc Mon Sep 17 00:00:00 2001 From: Aaron <51387595+AzureAaron@users.noreply.github.com> Date: Sat, 19 Oct 2024 16:01:45 -0400 Subject: Repackages and Refactors --- .../java/de/hysky/skyblocker/SkyblockerScreen.java | 2 -- .../skyblocker/mixins/MinecraftClientMixin.java | 4 +-- .../skyblock/chat/filters/AbilityFilter.java | 15 +++++++++ .../skyblocker/skyblock/chat/filters/AdFilter.java | 39 ++++++++++++++++++++++ .../skyblock/chat/filters/AoteFilter.java | 15 +++++++++ .../skyblock/chat/filters/AutopetFilter.java | 35 +++++++++++++++++++ .../skyblock/chat/filters/ComboFilter.java | 16 +++++++++ .../skyblock/chat/filters/DeathFilter.java | 25 ++++++++++++++ .../skyblock/chat/filters/DicerFilter.java | 15 +++++++++ .../skyblock/chat/filters/HealFilter.java | 15 +++++++++ .../skyblock/chat/filters/ImplosionFilter.java | 15 +++++++++ .../skyblock/chat/filters/MimicFilter.java | 28 ++++++++++++++++ .../skyblock/chat/filters/MoltenWaveFilter.java | 15 +++++++++ .../skyblock/chat/filters/ShowOffFilter.java | 19 +++++++++++ .../skyblock/chat/filters/SimpleChatFilter.java | 18 ++++++++++ .../skyblock/chat/filters/TeleportPadFilter.java | 16 +++++++++ .../skyblock/chat/filters/ToggleSkyMallFilter.java | 16 +++++++++ .../skyblock/crimson/kuudra/DangerWarning.java | 4 ++- .../skyblocker/skyblock/crimson/kuudra/Kuudra.java | 3 -- .../skyblock/crimson/kuudra/KuudraWaypoints.java | 4 ++- .../skyblock/events/JacobEventToast.java | 3 +- .../skyblocker/skyblock/filters/AbilityFilter.java | 15 --------- .../skyblocker/skyblock/filters/AdFilter.java | 39 ---------------------- .../skyblocker/skyblock/filters/AoteFilter.java | 15 --------- .../skyblocker/skyblock/filters/AutopetFilter.java | 35 ------------------- .../skyblocker/skyblock/filters/ComboFilter.java | 16 --------- .../skyblocker/skyblock/filters/DeathFilter.java | 25 -------------- .../skyblocker/skyblock/filters/DicerFilter.java | 15 --------- .../skyblocker/skyblock/filters/HealFilter.java | 15 --------- .../skyblock/filters/ImplosionFilter.java | 15 --------- .../skyblocker/skyblock/filters/MimicFilter.java | 28 ---------------- .../skyblock/filters/MoltenWaveFilter.java | 15 --------- .../skyblocker/skyblock/filters/ShowOffFilter.java | 19 ----------- .../skyblock/filters/SimpleChatFilter.java | 18 ---------- .../skyblock/filters/TeleportPadFilter.java | 16 --------- .../skyblock/filters/ToggleSkyMallFilter.java | 16 --------- .../skyblocker/utils/BasePlaceholderScreen.java | 19 ----------- .../utils/JoinWorldPlaceholderScreen.java | 9 ----- .../utils/ReconfiguringPlaceholderScreen.java | 22 ------------ .../skyblocker/utils/chat/ChatMessageListener.java | 13 ++++++-- .../skyblocker/utils/render/RenderHelper.java | 9 ++--- .../utils/render/gui/BasePlaceholderScreen.java | 19 +++++++++++ .../render/gui/JoinWorldPlaceholderScreen.java | 9 +++++ .../render/gui/ReconfiguringPlaceholderScreen.java | 22 ++++++++++++ 44 files changed, 376 insertions(+), 370 deletions(-) create mode 100644 src/main/java/de/hysky/skyblocker/skyblock/chat/filters/AbilityFilter.java create mode 100644 src/main/java/de/hysky/skyblocker/skyblock/chat/filters/AdFilter.java create mode 100644 src/main/java/de/hysky/skyblocker/skyblock/chat/filters/AoteFilter.java create mode 100644 src/main/java/de/hysky/skyblocker/skyblock/chat/filters/AutopetFilter.java create mode 100644 src/main/java/de/hysky/skyblocker/skyblock/chat/filters/ComboFilter.java create mode 100644 src/main/java/de/hysky/skyblocker/skyblock/chat/filters/DeathFilter.java create mode 100644 src/main/java/de/hysky/skyblocker/skyblock/chat/filters/DicerFilter.java create mode 100644 src/main/java/de/hysky/skyblocker/skyblock/chat/filters/HealFilter.java create mode 100644 src/main/java/de/hysky/skyblocker/skyblock/chat/filters/ImplosionFilter.java create mode 100644 src/main/java/de/hysky/skyblocker/skyblock/chat/filters/MimicFilter.java create mode 100644 src/main/java/de/hysky/skyblocker/skyblock/chat/filters/MoltenWaveFilter.java create mode 100644 src/main/java/de/hysky/skyblocker/skyblock/chat/filters/ShowOffFilter.java create mode 100644 src/main/java/de/hysky/skyblocker/skyblock/chat/filters/SimpleChatFilter.java create mode 100644 src/main/java/de/hysky/skyblocker/skyblock/chat/filters/TeleportPadFilter.java create mode 100644 src/main/java/de/hysky/skyblocker/skyblock/chat/filters/ToggleSkyMallFilter.java delete mode 100644 src/main/java/de/hysky/skyblocker/skyblock/filters/AbilityFilter.java delete mode 100644 src/main/java/de/hysky/skyblocker/skyblock/filters/AdFilter.java delete mode 100644 src/main/java/de/hysky/skyblocker/skyblock/filters/AoteFilter.java delete mode 100644 src/main/java/de/hysky/skyblocker/skyblock/filters/AutopetFilter.java delete mode 100644 src/main/java/de/hysky/skyblocker/skyblock/filters/ComboFilter.java delete mode 100644 src/main/java/de/hysky/skyblocker/skyblock/filters/DeathFilter.java delete mode 100644 src/main/java/de/hysky/skyblocker/skyblock/filters/DicerFilter.java delete mode 100644 src/main/java/de/hysky/skyblocker/skyblock/filters/HealFilter.java delete mode 100644 src/main/java/de/hysky/skyblocker/skyblock/filters/ImplosionFilter.java delete mode 100644 src/main/java/de/hysky/skyblocker/skyblock/filters/MimicFilter.java delete mode 100644 src/main/java/de/hysky/skyblocker/skyblock/filters/MoltenWaveFilter.java delete mode 100644 src/main/java/de/hysky/skyblocker/skyblock/filters/ShowOffFilter.java delete mode 100644 src/main/java/de/hysky/skyblocker/skyblock/filters/SimpleChatFilter.java delete mode 100644 src/main/java/de/hysky/skyblocker/skyblock/filters/TeleportPadFilter.java delete mode 100644 src/main/java/de/hysky/skyblocker/skyblock/filters/ToggleSkyMallFilter.java delete mode 100644 src/main/java/de/hysky/skyblocker/utils/BasePlaceholderScreen.java delete mode 100644 src/main/java/de/hysky/skyblocker/utils/JoinWorldPlaceholderScreen.java delete mode 100644 src/main/java/de/hysky/skyblocker/utils/ReconfiguringPlaceholderScreen.java create mode 100644 src/main/java/de/hysky/skyblocker/utils/render/gui/BasePlaceholderScreen.java create mode 100644 src/main/java/de/hysky/skyblocker/utils/render/gui/JoinWorldPlaceholderScreen.java create mode 100644 src/main/java/de/hysky/skyblocker/utils/render/gui/ReconfiguringPlaceholderScreen.java (limited to 'src/main/java/de') diff --git a/src/main/java/de/hysky/skyblocker/SkyblockerScreen.java b/src/main/java/de/hysky/skyblocker/SkyblockerScreen.java index cc90d747..98b9235a 100644 --- a/src/main/java/de/hysky/skyblocker/SkyblockerScreen.java +++ b/src/main/java/de/hysky/skyblocker/SkyblockerScreen.java @@ -3,7 +3,6 @@ package de.hysky.skyblocker; import de.hysky.skyblocker.annotations.Init; import de.hysky.skyblocker.config.SkyblockerConfigManager; import de.hysky.skyblocker.skyblock.Tips; -import de.hysky.skyblocker.utils.render.RenderHelper; import de.hysky.skyblocker.utils.scheduler.Scheduler; import net.fabricmc.fabric.api.client.command.v2.ClientCommandManager; import net.fabricmc.fabric.api.client.command.v2.ClientCommandRegistrationCallback; @@ -103,7 +102,6 @@ public class SkyblockerScreen extends Screen { @Override public void render(DrawContext context, int mouseX, int mouseY, float delta) { - this.renderBackground(context, mouseX, mouseY, delta); super.render(context, mouseX, mouseY, delta); } diff --git a/src/main/java/de/hysky/skyblocker/mixins/MinecraftClientMixin.java b/src/main/java/de/hysky/skyblocker/mixins/MinecraftClientMixin.java index ac737501..16d771d0 100644 --- a/src/main/java/de/hysky/skyblocker/mixins/MinecraftClientMixin.java +++ b/src/main/java/de/hysky/skyblocker/mixins/MinecraftClientMixin.java @@ -6,9 +6,9 @@ import de.hysky.skyblocker.config.SkyblockerConfigManager; import de.hysky.skyblocker.skyblock.item.HotbarSlotLock; import de.hysky.skyblocker.skyblock.item.ItemProtection; import de.hysky.skyblocker.skyblock.item.SkyblockInventoryScreen; -import de.hysky.skyblocker.utils.JoinWorldPlaceholderScreen; -import de.hysky.skyblocker.utils.ReconfiguringPlaceholderScreen; import de.hysky.skyblocker.utils.Utils; +import de.hysky.skyblocker.utils.render.gui.JoinWorldPlaceholderScreen; +import de.hysky.skyblocker.utils.render.gui.ReconfiguringPlaceholderScreen; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.screen.DownloadingTerrainScreen; import net.minecraft.client.gui.screen.ReconfiguringScreen; diff --git a/src/main/java/de/hysky/skyblocker/skyblock/chat/filters/AbilityFilter.java b/src/main/java/de/hysky/skyblocker/skyblock/chat/filters/AbilityFilter.java new file mode 100644 index 00000000..77e3aa08 --- /dev/null +++ b/src/main/java/de/hysky/skyblocker/skyblock/chat/filters/AbilityFilter.java @@ -0,0 +1,15 @@ +package de.hysky.skyblocker.skyblock.chat.filters; + +import de.hysky.skyblocker.config.SkyblockerConfigManager; +import de.hysky.skyblocker.utils.chat.ChatFilterResult; + +public class AbilityFilter extends SimpleChatFilter { + public AbilityFilter() { + super("^(?:This ability is on cooldown for " + NUMBER + "s\\.|No more charges, next one in " + NUMBER + "s!)$"); + } + + @Override + protected ChatFilterResult state() { + return SkyblockerConfigManager.get().chat.hideAbility; + } +} diff --git a/src/main/java/de/hysky/skyblocker/skyblock/chat/filters/AdFilter.java b/src/main/java/de/hysky/skyblocker/skyblock/chat/filters/AdFilter.java new file mode 100644 index 00000000..8f0192b7 --- /dev/null +++ b/src/main/java/de/hysky/skyblocker/skyblock/chat/filters/AdFilter.java @@ -0,0 +1,39 @@ +package de.hysky.skyblocker.skyblock.chat.filters; + +import de.hysky.skyblocker.config.SkyblockerConfigManager; +import de.hysky.skyblocker.utils.Constants; +import de.hysky.skyblocker.utils.chat.ChatFilterResult; +import de.hysky.skyblocker.utils.chat.ChatPatternListener; +import net.minecraft.text.Text; + +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class AdFilter extends ChatPatternListener { + private static final Pattern[] AD_FILTERS = new Pattern[] { + Pattern.compile("^(?:i(?:m|'m| am)? |(?:is )?any(?: ?one|1) )?(?:buy|sell|lowball|trade?)(?:ing)?(?:\\W|$)", Pattern.CASE_INSENSITIVE), + Pattern.compile("(.)\\1{7,}"), + Pattern.compile("\\W(?:on|in|check|at) my (?:ah|bin)(?:\\W|$)", Pattern.CASE_INSENSITIVE), }; + + public AdFilter() { + // Groups: + // 1. Player name + // 2. Message + // (?:\[[0-9]+\] )?(?:[] )?(?:\[[A-Z+]+\] )?([A-Za-z0-9_]+): (.+) + super("(?:\\[[0-9]+\\] )?(?:[" + Constants.LEVEL_EMBLEMS+ "] )?(?:\\[[A-Z+]+\\] )?([A-Za-z0-9_]+): (.+)"); + } + + @Override + public boolean onMatch(Text _message, Matcher matcher) { + String message = matcher.group(2); + for (Pattern adFilter : AD_FILTERS) + if (adFilter.matcher(message).find()) + return true; + return false; + } + + @Override + protected ChatFilterResult state() { + return SkyblockerConfigManager.get().chat.hideAds; + } +} \ No newline at end of file diff --git a/src/main/java/de/hysky/skyblocker/skyblock/chat/filters/AoteFilter.java b/src/main/java/de/hysky/skyblocker/skyblock/chat/filters/AoteFilter.java new file mode 100644 index 00000000..a6b61b54 --- /dev/null +++ b/src/main/java/de/hysky/skyblocker/skyblock/chat/filters/AoteFilter.java @@ -0,0 +1,15 @@ +package de.hysky.skyblocker.skyblock.chat.filters; + +import de.hysky.skyblocker.config.SkyblockerConfigManager; +import de.hysky.skyblocker.utils.chat.ChatFilterResult; + +public class AoteFilter extends SimpleChatFilter { + public AoteFilter() { + super("^There are blocks in the way!$"); + } + + @Override + public ChatFilterResult state() { + return SkyblockerConfigManager.get().chat.hideAOTE; + } +} diff --git a/src/main/java/de/hysky/skyblocker/skyblock/chat/filters/AutopetFilter.java b/src/main/java/de/hysky/skyblocker/skyblock/chat/filters/AutopetFilter.java new file mode 100644 index 00000000..0d29b565 --- /dev/null +++ b/src/main/java/de/hysky/skyblocker/skyblock/chat/filters/AutopetFilter.java @@ -0,0 +1,35 @@ +package de.hysky.skyblocker.skyblock.chat.filters; + +import de.hysky.skyblocker.config.SkyblockerConfigManager; +import de.hysky.skyblocker.utils.chat.ChatFilterResult; +import de.hysky.skyblocker.utils.chat.ChatPatternListener; +import net.minecraft.client.MinecraftClient; +import net.minecraft.text.Text; + +import java.util.Objects; +import java.util.regex.Matcher; + +public class AutopetFilter extends ChatPatternListener { + public AutopetFilter() { + super("^Autopet equipped your .*! VIEW RULE$"); + } + + @Override + public boolean onMatch(Text _message, Matcher matcher) { + if (SkyblockerConfigManager.get().chat.hideAutopet == ChatFilterResult.ACTION_BAR) { + Objects.requireNonNull(MinecraftClient.getInstance().player).sendMessage( + Text.literal( + _message.getString().replace("VIEW RULE", "") + ), true); + } + return true; + } + + @Override + public ChatFilterResult state() { + if (SkyblockerConfigManager.get().chat.hideAutopet == ChatFilterResult.ACTION_BAR) + return ChatFilterResult.FILTER; + else + return SkyblockerConfigManager.get().chat.hideAutopet; + } +} \ No newline at end of file diff --git a/src/main/java/de/hysky/skyblocker/skyblock/chat/filters/ComboFilter.java b/src/main/java/de/hysky/skyblocker/skyblock/chat/filters/ComboFilter.java new file mode 100644 index 00000000..d71085db --- /dev/null +++ b/src/main/java/de/hysky/skyblocker/skyblock/chat/filters/ComboFilter.java @@ -0,0 +1,16 @@ +package de.hysky.skyblocker.skyblock.chat.filters; + +import de.hysky.skyblocker.config.SkyblockerConfigManager; +import de.hysky.skyblocker.utils.chat.ChatFilterResult; + +public class ComboFilter extends SimpleChatFilter { + public ComboFilter() { + // ^(\+\d+ Kill Combo( \+\d+(✯ Magic Find| coins per kill|☯ Combat Wisdom))?|Your Kill Combo has expired! You reached a \d+ Kill Combo!)$ + super("^(\\+\\d+ Kill Combo( \\+\\d+(✯ Magic Find| coins per kill|☯ Combat Wisdom))?|Your Kill Combo has expired! You reached a \\d+ Kill Combo!)$"); + } + + @Override + public ChatFilterResult state() { + return SkyblockerConfigManager.get().chat.hideCombo; + } +} diff --git a/src/main/java/de/hysky/skyblocker/skyblock/chat/filters/DeathFilter.java b/src/main/java/de/hysky/skyblocker/skyblock/chat/filters/DeathFilter.java new file mode 100644 index 00000000..545eabfd --- /dev/null +++ b/src/main/java/de/hysky/skyblocker/skyblock/chat/filters/DeathFilter.java @@ -0,0 +1,25 @@ +package de.hysky.skyblocker.skyblock.chat.filters; + +import de.hysky.skyblocker.config.SkyblockerConfigManager; +import de.hysky.skyblocker.utils.chat.ChatFilterResult; +import de.hysky.skyblocker.utils.chat.ChatPatternListener; +import net.minecraft.text.Text; + +import java.util.regex.Matcher; + +public class DeathFilter extends ChatPatternListener { + + public DeathFilter() { + super(" \\u2620 .*"); + } + + @Override + protected ChatFilterResult state() { + return SkyblockerConfigManager.get().chat.hideDeath; + } + + @Override + protected boolean onMatch(Text message, Matcher matcher) { + return true; + } +} diff --git a/src/main/java/de/hysky/skyblocker/skyblock/chat/filters/DicerFilter.java b/src/main/java/de/hysky/skyblocker/skyblock/chat/filters/DicerFilter.java new file mode 100644 index 00000000..10482bd1 --- /dev/null +++ b/src/main/java/de/hysky/skyblocker/skyblock/chat/filters/DicerFilter.java @@ -0,0 +1,15 @@ +package de.hysky.skyblocker.skyblock.chat.filters; + +import de.hysky.skyblocker.config.SkyblockerConfigManager; +import de.hysky.skyblocker.utils.chat.ChatFilterResult; + +public class DicerFilter extends SimpleChatFilter { + public DicerFilter() { + super("[A-Z]+ DROP! .*Dicer dropped [0-9]+x.+!$"); + } + + @Override + public ChatFilterResult state() { + return SkyblockerConfigManager.get().chat.hideDicer; + } +} diff --git a/src/main/java/de/hysky/skyblocker/skyblock/chat/filters/HealFilter.java b/src/main/java/de/hysky/skyblocker/skyblock/chat/filters/HealFilter.java new file mode 100644 index 00000000..1baaf74f --- /dev/null +++ b/src/main/java/de/hysky/skyblocker/skyblock/chat/filters/HealFilter.java @@ -0,0 +1,15 @@ +package de.hysky.skyblocker.skyblock.chat.filters; + +import de.hysky.skyblocker.config.SkyblockerConfigManager; +import de.hysky.skyblocker.utils.chat.ChatFilterResult; + +public class HealFilter extends SimpleChatFilter { + public HealFilter() { + super("^(?:You healed yourself for " + NUMBER + " health!|[a-zA-Z0-9_]{2,16} healed you for " + NUMBER + " health!)$"); + } + + @Override + public ChatFilterResult state() { + return SkyblockerConfigManager.get().chat.hideHeal; + } +} diff --git a/src/main/java/de/hysky/skyblocker/skyblock/chat/filters/ImplosionFilter.java b/src/main/java/de/hysky/skyblocker/skyblock/chat/filters/ImplosionFilter.java new file mode 100644 index 00000000..58bd4820 --- /dev/null +++ b/src/main/java/de/hysky/skyblocker/skyblock/chat/filters/ImplosionFilter.java @@ -0,0 +1,15 @@ +package de.hysky.skyblocker.skyblock.chat.filters; + +import de.hysky.skyblocker.config.SkyblockerConfigManager; +import de.hysky.skyblocker.utils.chat.ChatFilterResult; + +public class ImplosionFilter extends SimpleChatFilter { + public ImplosionFilter() { + super("^Your Implosion hit " + NUMBER + " enem(?:y|ies) for " + NUMBER + " damage\\.$"); + } + + @Override + public ChatFilterResult state() { + return SkyblockerConfigManager.get().chat.hideImplosion; + } +} diff --git a/src/main/java/de/hysky/skyblocker/skyblock/chat/filters/MimicFilter.java b/src/main/java/de/hysky/skyblocker/skyblock/chat/filters/MimicFilter.java new file mode 100644 index 00000000..dad2224e --- /dev/null +++ b/src/main/java/de/hysky/skyblocker/skyblock/chat/filters/MimicFilter.java @@ -0,0 +1,28 @@ +package de.hysky.skyblocker.skyblock.chat.filters; + +import de.hysky.skyblocker.config.SkyblockerConfigManager; +import de.hysky.skyblocker.skyblock.dungeon.DungeonScore; +import de.hysky.skyblocker.utils.Utils; +import de.hysky.skyblocker.utils.chat.ChatFilterResult; +import de.hysky.skyblocker.utils.chat.ChatPatternListener; +import net.minecraft.text.Text; + +import java.util.regex.Matcher; + +public class MimicFilter extends ChatPatternListener { + public MimicFilter() { + super(".*?(?:Mimic dead!?|Mimic Killed!|\\$SKYTILS-DUNGEON-SCORE-MIMIC\\$|\\Q" + SkyblockerConfigManager.get().dungeons.mimicMessage.mimicMessage + "\\E)$"); + } + + @Override + public ChatFilterResult state() { + return SkyblockerConfigManager.get().chat.hideMimicKill; + } + + @Override + protected boolean onMatch(Text message, Matcher matcher) { + if (!Utils.isInDungeons() || !DungeonScore.isDungeonStarted() || !DungeonScore.isMimicOnCurrentFloor()) return false; + DungeonScore.onMimicKill(); //Only called when the message is cancelled | sent to action bar, complementing DungeonScore#checkMessageForMimic + return true; + } +} diff --git a/src/main/java/de/hysky/skyblocker/skyblock/chat/filters/MoltenWaveFilter.java b/src/main/java/de/hysky/skyblocker/skyblock/chat/filters/MoltenWaveFilter.java new file mode 100644 index 00000000..39365af7 --- /dev/null +++ b/src/main/java/de/hysky/skyblocker/skyblock/chat/filters/MoltenWaveFilter.java @@ -0,0 +1,15 @@ +package de.hysky.skyblocker.skyblock.chat.filters; + +import de.hysky.skyblocker.config.SkyblockerConfigManager; +import de.hysky.skyblocker.utils.chat.ChatFilterResult; + +public class MoltenWaveFilter extends SimpleChatFilter { + public MoltenWaveFilter() { + super("^Your Molten Wave hit " + NUMBER + " enem(?:y|ies) for " + NUMBER + " damage\\.$"); + } + + @Override + public ChatFilterResult state() { + return SkyblockerConfigManager.get().chat.hideMoltenWave; + } +} diff --git a/src/main/java/de/hysky/skyblocker/skyblock/chat/filters/ShowOffFilter.java b/src/main/java/de/hysky/skyblocker/skyblock/chat/filters/ShowOffFilter.java new file mode 100644 index 00000000..0a0cbbe5 --- /dev/null +++ b/src/main/java/de/hysky/skyblocker/skyblock/chat/filters/ShowOffFilter.java @@ -0,0 +1,19 @@ +package de.hysky.skyblocker.skyblock.chat.filters; + +import de.hysky.skyblocker.config.SkyblockerConfigManager; +import de.hysky.skyblocker.utils.Constants; +import de.hysky.skyblocker.utils.chat.ChatFilterResult; + +public class ShowOffFilter extends SimpleChatFilter { + private static final String[] SHOW_TYPES = { "is holding", "is wearing", "is friends with a", "has" }; + + public ShowOffFilter() { + //(?:\[[0-9]+\] )?(?:[] )?(?:\[[A-Z+]+\] )?([A-Za-z0-9_]+) (?:) \[(.+)\] + super("(?:\\[[0-9]+\\] )?(?:[" + Constants.LEVEL_EMBLEMS + "] )?(?:\\[[A-Z+]+\\] )?([A-Za-z0-9_]+) (?:" + String.join("|", SHOW_TYPES) + ") \\[(.+)\\]"); + } + + @Override + protected ChatFilterResult state() { + return SkyblockerConfigManager.get().chat.hideShowOff; + } +} diff --git a/src/main/java/de/hysky/skyblocker/skyblock/chat/filters/SimpleChatFilter.java b/src/main/java/de/hysky/skyblocker/skyblock/chat/filters/SimpleChatFilter.java new file mode 100644 index 00000000..61e1fba1 --- /dev/null +++ b/src/main/java/de/hysky/skyblocker/skyblock/chat/filters/SimpleChatFilter.java @@ -0,0 +1,18 @@ +package de.hysky.skyblocker.skyblock.chat.filters; + +import de.hysky.skyblocker.utils.chat.ChatPatternListener; +import net.minecraft.text.Text; +import org.intellij.lang.annotations.Language; + +import java.util.regex.Matcher; + +public abstract class SimpleChatFilter extends ChatPatternListener { + protected SimpleChatFilter(@Language("RegExp") String pattern) { + super(pattern); + } + + @Override + protected final boolean onMatch(Text message, Matcher matcher) { + return true; + } +} diff --git a/src/main/java/de/hysky/skyblocker/skyblock/chat/filters/TeleportPadFilter.java b/src/main/java/de/hysky/skyblocker/skyblock/chat/filters/TeleportPadFilter.java new file mode 100644 index 00000000..1308aa09 --- /dev/null +++ b/src/main/java/de/hysky/skyblocker/skyblock/chat/filters/TeleportPadFilter.java @@ -0,0 +1,16 @@ +package de.hysky.skyblocker.skyblock.chat.filters; + +import de.hysky.skyblocker.config.SkyblockerConfigManager; +import de.hysky.skyblocker.utils.chat.ChatFilterResult; + +public class TeleportPadFilter extends SimpleChatFilter { + public TeleportPadFilter() { + super("^(Warped from the .* Teleport Pad to the .* Teleport Pad!" + + "|This Teleport Pad does not have a destination set!)$"); + } + + @Override + public ChatFilterResult state() { + return SkyblockerConfigManager.get().chat.hideTeleportPad; + } +} \ No newline at end of file diff --git a/src/main/java/de/hysky/skyblocker/skyblock/chat/filters/ToggleSkyMallFilter.java b/src/main/java/de/hysky/skyblocker/skyblock/chat/filters/ToggleSkyMallFilter.java new file mode 100644 index 00000000..4e7f953f --- /dev/null +++ b/src/main/java/de/hysky/skyblocker/skyblock/chat/filters/ToggleSkyMallFilter.java @@ -0,0 +1,16 @@ +package de.hysky.skyblocker.skyblock.chat.filters; + +import de.hysky.skyblocker.config.SkyblockerConfigManager; +import de.hysky.skyblocker.utils.chat.ChatFilterResult; + +public class ToggleSkyMallFilter extends SimpleChatFilter { + + public ToggleSkyMallFilter() { + super("^You can disable this messaging by toggling Sky Mall in your /hotm!$"); + } + + @Override + protected ChatFilterResult state() { + return SkyblockerConfigManager.get().chat.hideToggleSkyMall; + } +} diff --git a/src/main/java/de/hysky/skyblocker/skyblock/crimson/kuudra/DangerWarning.java b/src/main/java/de/hysky/skyblocker/skyblock/crimson/kuudra/DangerWarning.java index feaa1a11..80028405 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/crimson/kuudra/DangerWarning.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/crimson/kuudra/DangerWarning.java @@ -2,6 +2,7 @@ package de.hysky.skyblocker.skyblock.crimson.kuudra; import java.util.function.Supplier; +import de.hysky.skyblocker.annotations.Init; import de.hysky.skyblocker.config.SkyblockerConfigManager; import de.hysky.skyblocker.utils.Utils; import de.hysky.skyblocker.utils.render.RenderHelper; @@ -23,7 +24,8 @@ public class DangerWarning { private static final Supplier DANGER_TEXT = () -> Text.translatable("skyblocker.crimson.kuudra.danger"); private static final Title TITLE = new Title(DANGER_TEXT.get()); - static void init() { + @Init + public static void init() { Scheduler.INSTANCE.scheduleCyclic(DangerWarning::updateIndicator, 5); ClientPlayConnectionEvents.JOIN.register((handler, sender, client) -> reset()); } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/crimson/kuudra/Kuudra.java b/src/main/java/de/hysky/skyblocker/skyblock/crimson/kuudra/Kuudra.java index 7265a81a..9ba15495 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/crimson/kuudra/Kuudra.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/crimson/kuudra/Kuudra.java @@ -14,9 +14,6 @@ public class Kuudra { @Init public static void init() { - KuudraWaypoints.init(); - DangerWarning.init(); - ClientPlayConnectionEvents.JOIN.register((_handler, _sender, _client) -> reset()); ClientReceiveMessageEvents.GAME.register(Kuudra::onMessage); } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/crimson/kuudra/KuudraWaypoints.java b/src/main/java/de/hysky/skyblocker/skyblock/crimson/kuudra/KuudraWaypoints.java index ba2e6695..80941e86 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/crimson/kuudra/KuudraWaypoints.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/crimson/kuudra/KuudraWaypoints.java @@ -17,6 +17,7 @@ import com.mojang.serialization.Codec; import com.mojang.serialization.JsonOps; import de.hysky.skyblocker.SkyblockerMod; +import de.hysky.skyblocker.annotations.Init; import de.hysky.skyblocker.config.SkyblockerConfigManager; import de.hysky.skyblocker.utils.PosUtils; import de.hysky.skyblocker.utils.Utils; @@ -54,7 +55,8 @@ public class KuudraWaypoints { private static ObjectArrayList fuelWaypoints = ObjectArrayList.of(); private static boolean loaded; - static void init() { + @Init + public static void init() { WorldRenderEvents.AFTER_TRANSLUCENT.register(KuudraWaypoints::render); ClientLifecycleEvents.CLIENT_STARTED.register(KuudraWaypoints::load); Scheduler.INSTANCE.scheduleCyclic(KuudraWaypoints::tick, 20); diff --git a/src/main/java/de/hysky/skyblocker/skyblock/events/JacobEventToast.java b/src/main/java/de/hysky/skyblocker/skyblock/events/JacobEventToast.java index 39d5e4cf..67e761a5 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/events/JacobEventToast.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/events/JacobEventToast.java @@ -9,6 +9,7 @@ import net.minecraft.client.util.math.MatrixStack; import net.minecraft.item.ItemStack; import net.minecraft.item.Items; import net.minecraft.util.Colors; +import net.minecraft.util.math.ColorHelper; import net.minecraft.util.math.MathHelper; public class JacobEventToast extends EventToast { @@ -44,7 +45,7 @@ public class JacobEventToast extends EventToast { // IDK how to make the items transparent, so I just redraw the texture on top matrices.push(); matrices.translate(0, 0, 400f); - RenderHelper.renderNineSliceColored(context, TEXTURE, 0, 0, getWidth(), getHeight(), 1f, 1f, 1f, (k >> 24) / 255f); + RenderHelper.renderNineSliceColored(context, TEXTURE, 0, 0, getWidth(), getHeight(), ColorHelper.fromFloats((k >> 24) / 255f, 1f, 1f, 1f)); matrices.pop(); y += textRenderer.fontHeight * message.size(); } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/filters/AbilityFilter.java b/src/main/java/de/hysky/skyblocker/skyblock/filters/AbilityFilter.java deleted file mode 100644 index 1675dd89..00000000 --- a/src/main/java/de/hysky/skyblocker/skyblock/filters/AbilityFilter.java +++ /dev/null @@ -1,15 +0,0 @@ -package de.hysky.skyblocker.skyblock.filters; - -import de.hysky.skyblocker.config.SkyblockerConfigManager; -import de.hysky.skyblocker.utils.chat.ChatFilterResult; - -public class AbilityFilter extends SimpleChatFilter { - public AbilityFilter() { - super("^(?:This ability is on cooldown for " + NUMBER + "s\\.|No more charges, next one in " + NUMBER + "s!)$"); - } - - @Override - protected ChatFilterResult state() { - return SkyblockerConfigManager.get().chat.hideAbility; - } -} diff --git a/src/main/java/de/hysky/skyblocker/skyblock/filters/AdFilter.java b/src/main/java/de/hysky/skyblocker/skyblock/filters/AdFilter.java deleted file mode 100644 index 53f7066c..00000000 --- a/src/main/java/de/hysky/skyblocker/skyblock/filters/AdFilter.java +++ /dev/null @@ -1,39 +0,0 @@ -package de.hysky.skyblocker.skyblock.filters; - -import de.hysky.skyblocker.config.SkyblockerConfigManager; -import de.hysky.skyblocker.utils.Constants; -import de.hysky.skyblocker.utils.chat.ChatFilterResult; -import de.hysky.skyblocker.utils.chat.ChatPatternListener; -import net.minecraft.text.Text; - -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -public class AdFilter extends ChatPatternListener { - private static final Pattern[] AD_FILTERS = new Pattern[] { - Pattern.compile("^(?:i(?:m|'m| am)? |(?:is )?any(?: ?one|1) )?(?:buy|sell|lowball|trade?)(?:ing)?(?:\\W|$)", Pattern.CASE_INSENSITIVE), - Pattern.compile("(.)\\1{7,}"), - Pattern.compile("\\W(?:on|in|check|at) my (?:ah|bin)(?:\\W|$)", Pattern.CASE_INSENSITIVE), }; - - public AdFilter() { - // Groups: - // 1. Player name - // 2. Message - // (?:\[[0-9]+\] )?(?:[] )?(?:\[[A-Z+]+\] )?([A-Za-z0-9_]+): (.+) - super("(?:\\[[0-9]+\\] )?(?:[" + Constants.LEVEL_EMBLEMS+ "] )?(?:\\[[A-Z+]+\\] )?([A-Za-z0-9_]+): (.+)"); - } - - @Override - public boolean onMatch(Text _message, Matcher matcher) { - String message = matcher.group(2); - for (Pattern adFilter : AD_FILTERS) - if (adFilter.matcher(message).find()) - return true; - return false; - } - - @Override - protected ChatFilterResult state() { - return SkyblockerConfigManager.get().chat.hideAds; - } -} \ No newline at end of file diff --git a/src/main/java/de/hysky/skyblocker/skyblock/filters/AoteFilter.java b/src/main/java/de/hysky/skyblocker/skyblock/filters/AoteFilter.java deleted file mode 100644 index 98e252f3..00000000 --- a/src/main/java/de/hysky/skyblocker/skyblock/filters/AoteFilter.java +++ /dev/null @@ -1,15 +0,0 @@ -package de.hysky.skyblocker.skyblock.filters; - -import de.hysky.skyblocker.config.SkyblockerConfigManager; -import de.hysky.skyblocker.utils.chat.ChatFilterResult; - -public class AoteFilter extends SimpleChatFilter { - public AoteFilter() { - super("^There are blocks in the way!$"); - } - - @Override - public ChatFilterResult state() { - return SkyblockerConfigManager.get().chat.hideAOTE; - } -} diff --git a/src/main/java/de/hysky/skyblocker/skyblock/filters/AutopetFilter.java b/src/main/java/de/hysky/skyblocker/skyblock/filters/AutopetFilter.java deleted file mode 100644 index 3e535ec9..00000000 --- a/src/main/java/de/hysky/skyblocker/skyblock/filters/AutopetFilter.java +++ /dev/null @@ -1,35 +0,0 @@ -package de.hysky.skyblocker.skyblock.filters; - -import de.hysky.skyblocker.config.SkyblockerConfigManager; -import de.hysky.skyblocker.utils.chat.ChatFilterResult; -import de.hysky.skyblocker.utils.chat.ChatPatternListener; -import net.minecraft.client.MinecraftClient; -import net.minecraft.text.Text; - -import java.util.Objects; -import java.util.regex.Matcher; - -public class AutopetFilter extends ChatPatternListener { - public AutopetFilter() { - super("^Autopet equipped your .*! VIEW RULE$"); - } - - @Override - public boolean onMatch(Text _message, Matcher matcher) { - if (SkyblockerConfigManager.get().chat.hideAutopet == ChatFilterResult.ACTION_BAR) { - Objects.requireNonNull(MinecraftClient.getInstance().player).sendMessage( - Text.literal( - _message.getString().replace("VIEW RULE", "") - ), true); - } - return true; - } - - @Override - public ChatFilterResult state() { - if (SkyblockerConfigManager.get().chat.hideAutopet == ChatFilterResult.ACTION_BAR) - return ChatFilterResult.FILTER; - else - return SkyblockerConfigManager.get().chat.hideAutopet; - } -} \ No newline at end of file diff --git a/src/main/java/de/hysky/skyblocker/skyblock/filters/ComboFilter.java b/src/main/java/de/hysky/skyblocker/skyblock/filters/ComboFilter.java deleted file mode 100644 index e6103720..00000000 --- a/src/main/java/de/hysky/skyblocker/skyblock/filters/ComboFilter.java +++ /dev/null @@ -1,16 +0,0 @@ -package de.hysky.skyblocker.skyblock.filters; - -import de.hysky.skyblocker.config.SkyblockerConfigManager; -import de.hysky.skyblocker.utils.chat.ChatFilterResult; - -public class ComboFilter extends SimpleChatFilter { - public ComboFilter() { - // ^(\+\d+ Kill Combo( \+\d+(✯ Magic Find| coins per kill|☯ Combat Wisdom))?|Your Kill Combo has expired! You reached a \d+ Kill Combo!)$ - super("^(\\+\\d+ Kill Combo( \\+\\d+(✯ Magic Find| coins per kill|☯ Combat Wisdom))?|Your Kill Combo has expired! You reached a \\d+ Kill Combo!)$"); - } - - @Override - public ChatFilterResult state() { - return SkyblockerConfigManager.get().chat.hideCombo; - } -} diff --git a/src/main/java/de/hysky/skyblocker/skyblock/filters/DeathFilter.java b/src/main/java/de/hysky/skyblocker/skyblock/filters/DeathFilter.java deleted file mode 100644 index b286c9b5..00000000 --- a/src/main/java/de/hysky/skyblocker/skyblock/filters/DeathFilter.java +++ /dev/null @@ -1,25 +0,0 @@ -package de.hysky.skyblocker.skyblock.filters; - -import de.hysky.skyblocker.config.SkyblockerConfigManager; -import de.hysky.skyblocker.utils.chat.ChatFilterResult; -import de.hysky.skyblocker.utils.chat.ChatPatternListener; -import net.minecraft.text.Text; - -import java.util.regex.Matcher; - -public class DeathFilter extends ChatPatternListener { - - public DeathFilter() { - super(" \\u2620 .*"); - } - - @Override - protected ChatFilterResult state() { - return SkyblockerConfigManager.get().chat.hideDeath; - } - - @Override - protected boolean onMatch(Text message, Matcher matcher) { - return true; - } -} diff --git a/src/main/java/de/hysky/skyblocker/skyblock/filters/DicerFilter.java b/src/main/java/de/hysky/skyblocker/skyblock/filters/DicerFilter.java deleted file mode 100644 index b2022f1f..00000000 --- a/src/main/java/de/hysky/skyblocker/skyblock/filters/DicerFilter.java +++ /dev/null @@ -1,15 +0,0 @@ -package de.hysky.skyblocker.skyblock.filters; - -import de.hysky.skyblocker.config.SkyblockerConfigManager; -import de.hysky.skyblocker.utils.chat.ChatFilterResult; - -public class DicerFilter extends SimpleChatFilter { - public DicerFilter() { - super("[A-Z]+ DROP! .*Dicer dropped [0-9]+x.+!$"); - } - - @Override - public ChatFilterResult state() { - return SkyblockerConfigManager.get().chat.hideDicer; - } -} diff --git a/src/main/java/de/hysky/skyblocker/skyblock/filters/HealFilter.java b/src/main/java/de/hysky/skyblocker/skyblock/filters/HealFilter.java deleted file mode 100644 index 604a0f5c..00000000 --- a/src/main/java/de/hysky/skyblocker/skyblock/filters/HealFilter.java +++ /dev/null @@ -1,15 +0,0 @@ -package de.hysky.skyblocker.skyblock.filters; - -import de.hysky.skyblocker.config.SkyblockerConfigManager; -import de.hysky.skyblocker.utils.chat.ChatFilterResult; - -public class HealFilter extends SimpleChatFilter { - public HealFilter() { - super("^(?:You healed yourself for " + NUMBER + " health!|[a-zA-Z0-9_]{2,16} healed you for " + NUMBER + " health!)$"); - } - - @Override - public ChatFilterResult state() { - return SkyblockerConfigManager.get().chat.hideHeal; - } -} diff --git a/src/main/java/de/hysky/skyblocker/skyblock/filters/ImplosionFilter.java b/src/main/java/de/hysky/skyblocker/skyblock/filters/ImplosionFilter.java deleted file mode 100644 index a120c0e5..00000000 --- a/src/main/java/de/hysky/skyblocker/skyblock/filters/ImplosionFilter.java +++ /dev/null @@ -1,15 +0,0 @@ -package de.hysky.skyblocker.skyblock.filters; - -import de.hysky.skyblocker.config.SkyblockerConfigManager; -import de.hysky.skyblocker.utils.chat.ChatFilterResult; - -public class ImplosionFilter extends SimpleChatFilter { - public ImplosionFilter() { - super("^Your Implosion hit " + NUMBER + " enem(?:y|ies) for " + NUMBER + " damage\\.$"); - } - - @Override - public ChatFilterResult state() { - return SkyblockerConfigManager.get().chat.hideImplosion; - } -} diff --git a/src/main/java/de/hysky/skyblocker/skyblock/filters/MimicFilter.java b/src/main/java/de/hysky/skyblocker/skyblock/filters/MimicFilter.java deleted file mode 100644 index 1659713c..00000000 --- a/src/main/java/de/hysky/skyblocker/skyblock/filters/MimicFilter.java +++ /dev/null @@ -1,28 +0,0 @@ -package de.hysky.skyblocker.skyblock.filters; - -import de.hysky.skyblocker.config.SkyblockerConfigManager; -import de.hysky.skyblocker.skyblock.dungeon.DungeonScore; -import de.hysky.skyblocker.utils.Utils; -import de.hysky.skyblocker.utils.chat.ChatFilterResult; -import de.hysky.skyblocker.utils.chat.ChatPatternListener; -import net.minecraft.text.Text; - -import java.util.regex.Matcher; - -public class MimicFilter extends ChatPatternListener { - public MimicFilter() { - super(".*?(?:Mimic dead!?|Mimic Killed!|\\$SKYTILS-DUNGEON-SCORE-MIMIC\\$|\\Q" + SkyblockerConfigManager.get().dungeons.mimicMessage.mimicMessage + "\\E)$"); - } - - @Override - public ChatFilterResult state() { - return SkyblockerConfigManager.get().chat.hideMimicKill; - } - - @Override - protected boolean onMatch(Text message, Matcher matcher) { - if (!Utils.isInDungeons() || !DungeonScore.isDungeonStarted() || !DungeonScore.isMimicOnCurrentFloor()) return false; - DungeonScore.onMimicKill(); //Only called when the message is cancelled | sent to action bar, complementing DungeonScore#checkMessageForMimic - return true; - } -} diff --git a/src/main/java/de/hysky/skyblocker/skyblock/filters/MoltenWaveFilter.java b/src/main/java/de/hysky/skyblocker/skyblock/filters/MoltenWaveFilter.java deleted file mode 100644 index d935138b..00000000 --- a/src/main/java/de/hysky/skyblocker/skyblock/filters/MoltenWaveFilter.java +++ /dev/null @@ -1,15 +0,0 @@ -package de.hysky.skyblocker.skyblock.filters; - -import de.hysky.skyblocker.config.SkyblockerConfigManager; -import de.hysky.skyblocker.utils.chat.ChatFilterResult; - -public class MoltenWaveFilter extends SimpleChatFilter { - public MoltenWaveFilter() { - super("^Your Molten Wave hit " + NUMBER + " enem(?:y|ies) for " + NUMBER + " damage\\.$"); - } - - @Override - public ChatFilterResult state() { - return SkyblockerConfigManager.get().chat.hideMoltenWave; - } -} diff --git a/src/main/java/de/hysky/skyblocker/skyblock/filters/ShowOffFilter.java b/src/main/java/de/hysky/skyblocker/skyblock/filters/ShowOffFilter.java deleted file mode 100644 index 94c23504..00000000 --- a/src/main/java/de/hysky/skyblocker/skyblock/filters/ShowOffFilter.java +++ /dev/null @@ -1,19 +0,0 @@ -package de.hysky.skyblocker.skyblock.filters; - -import de.hysky.skyblocker.config.SkyblockerConfigManager; -import de.hysky.skyblocker.utils.Constants; -import de.hysky.skyblocker.utils.chat.ChatFilterResult; - -public class ShowOffFilter extends SimpleChatFilter { - private static final String[] SHOW_TYPES = { "is holding", "is wearing", "is friends with a", "has" }; - - public ShowOffFilter() { - //(?:\[[0-9]+\] )?(?:[] )?(?:\[[A-Z+]+\] )?([A-Za-z0-9_]+) (?:) \[(.+)\] - super("(?:\\[[0-9]+\\] )?(?:[" + Constants.LEVEL_EMBLEMS + "] )?(?:\\[[A-Z+]+\\] )?([A-Za-z0-9_]+) (?:" + String.join("|", SHOW_TYPES) + ") \\[(.+)\\]"); - } - - @Override - protected ChatFilterResult state() { - return SkyblockerConfigManager.get().chat.hideShowOff; - } -} diff --git a/src/main/java/de/hysky/skyblocker/skyblock/filters/SimpleChatFilter.java b/src/main/java/de/hysky/skyblocker/skyblock/filters/SimpleChatFilter.java deleted file mode 100644 index 2521b3a9..00000000 --- a/src/main/java/de/hysky/skyblocker/skyblock/filters/SimpleChatFilter.java +++ /dev/null @@ -1,18 +0,0 @@ -package de.hysky.skyblocker.skyblock.filters; - -import de.hysky.skyblocker.utils.chat.ChatPatternListener; -import net.minecraft.text.Text; -import org.intellij.lang.annotations.Language; - -import java.util.regex.Matcher; - -public abstract class SimpleChatFilter extends ChatPatternListener { - protected SimpleChatFilter(@Language("RegExp") String pattern) { - super(pattern); - } - - @Override - protected final boolean onMatch(Text message, Matcher matcher) { - return true; - } -} diff --git a/src/main/java/de/hysky/skyblocker/skyblock/filters/TeleportPadFilter.java b/src/main/java/de/hysky/skyblocker/skyblock/filters/TeleportPadFilter.java deleted file mode 100644 index 5c30b039..00000000 --- a/src/main/java/de/hysky/skyblocker/skyblock/filters/TeleportPadFilter.java +++ /dev/null @@ -1,16 +0,0 @@ -package de.hysky.skyblocker.skyblock.filters; - -import de.hysky.skyblocker.config.SkyblockerConfigManager; -import de.hysky.skyblocker.utils.chat.ChatFilterResult; - -public class TeleportPadFilter extends SimpleChatFilter { - public TeleportPadFilter() { - super("^(Warped from the .* Teleport Pad to the .* Teleport Pad!" + - "|This Teleport Pad does not have a destination set!)$"); - } - - @Override - public ChatFilterResult state() { - return SkyblockerConfigManager.get().chat.hideTeleportPad; - } -} \ No newline at end of file diff --git a/src/main/java/de/hysky/skyblocker/skyblock/filters/ToggleSkyMallFilter.java b/src/main/java/de/hysky/skyblocker/skyblock/filters/ToggleSkyMallFilter.java deleted file mode 100644 index b1907391..00000000 --- a/src/main/java/de/hysky/skyblocker/skyblock/filters/ToggleSkyMallFilter.java +++ /dev/null @@ -1,16 +0,0 @@ -package de.hysky.skyblocker.skyblock.filters; - -import de.hysky.skyblocker.config.SkyblockerConfigManager; -import de.hysky.skyblocker.utils.chat.ChatFilterResult; - -public class ToggleSkyMallFilter extends SimpleChatFilter { - - public ToggleSkyMallFilter() { - super("^You can disable this messaging by toggling Sky Mall in your /hotm!$"); - } - - @Override - protected ChatFilterResult state() { - return SkyblockerConfigManager.get().chat.hideToggleSkyMall; - } -} diff --git a/src/main/java/de/hysky/skyblocker/utils/BasePlaceholderScreen.java b/src/main/java/de/hysky/skyblocker/utils/BasePlaceholderScreen.java deleted file mode 100644 index b362dcb7..00000000 --- a/src/main/java/de/hysky/skyblocker/utils/BasePlaceholderScreen.java +++ /dev/null @@ -1,19 +0,0 @@ -package de.hysky.skyblocker.utils; - -import net.minecraft.client.gui.DrawContext; -import net.minecraft.client.gui.screen.Screen; -import net.minecraft.text.Text; - -public abstract class BasePlaceholderScreen extends Screen { - public BasePlaceholderScreen(Text title) { - super(title); - } - - @Override - public void render(DrawContext context, int mouseX, int mouseY, float delta) { - } - - @Override - public void renderBackground(DrawContext context, int mouseX, int mouseY, float delta) { - } -} diff --git a/src/main/java/de/hysky/skyblocker/utils/JoinWorldPlaceholderScreen.java b/src/main/java/de/hysky/skyblocker/utils/JoinWorldPlaceholderScreen.java deleted file mode 100644 index f64bcf6c..00000000 --- a/src/main/java/de/hysky/skyblocker/utils/JoinWorldPlaceholderScreen.java +++ /dev/null @@ -1,9 +0,0 @@ -package de.hysky.skyblocker.utils; - -import net.minecraft.text.Text; - -public final class JoinWorldPlaceholderScreen extends BasePlaceholderScreen { - public JoinWorldPlaceholderScreen() { - super(Text.translatable("connect.joining")); - } -} diff --git a/src/main/java/de/hysky/skyblocker/utils/ReconfiguringPlaceholderScreen.java b/src/main/java/de/hysky/skyblocker/utils/ReconfiguringPlaceholderScreen.java deleted file mode 100644 index 4d415615..00000000 --- a/src/main/java/de/hysky/skyblocker/utils/ReconfiguringPlaceholderScreen.java +++ /dev/null @@ -1,22 +0,0 @@ -package de.hysky.skyblocker.utils; - -import net.minecraft.network.ClientConnection; -import net.minecraft.text.Text; - -public final class ReconfiguringPlaceholderScreen extends BasePlaceholderScreen { - private final ClientConnection connection; - - public ReconfiguringPlaceholderScreen(final ClientConnection connection) { - super(Text.translatable("connect.reconfiguring")); - this.connection = connection; - } - - @Override - public void tick() { - if (this.connection.isOpen()) { - this.connection.tick(); - } else { - this.connection.handleDisconnection(); - } - } -} diff --git a/src/main/java/de/hysky/skyblocker/utils/chat/ChatMessageListener.java b/src/main/java/de/hysky/skyblocker/utils/chat/ChatMessageListener.java index 38042a9a..3be8116d 100644 --- a/src/main/java/de/hysky/skyblocker/utils/chat/ChatMessageListener.java +++ b/src/main/java/de/hysky/skyblocker/utils/chat/ChatMessageListener.java @@ -3,11 +3,11 @@ package de.hysky.skyblocker.utils.chat; import de.hysky.skyblocker.annotations.Init; import de.hysky.skyblocker.skyblock.barn.HungryHiker; import de.hysky.skyblocker.skyblock.barn.TreasureHunter; +import de.hysky.skyblocker.skyblock.chat.filters.*; import de.hysky.skyblocker.skyblock.dungeon.Reparty; import de.hysky.skyblocker.skyblock.dungeon.puzzle.Trivia; import de.hysky.skyblocker.skyblock.dwarven.Fetchur; import de.hysky.skyblocker.skyblock.dwarven.Puzzler; -import de.hysky.skyblocker.skyblock.filters.*; import de.hysky.skyblocker.utils.Utils; import net.fabricmc.fabric.api.client.message.v1.ClientReceiveMessageEvents; import net.fabricmc.fabric.api.event.Event; @@ -34,7 +34,8 @@ public interface ChatMessageListener { /** * Registers {@link ChatMessageListener}s to {@link ChatMessageListener#EVENT} and registers {@link ChatMessageListener#EVENT} to {@link ClientReceiveMessageEvents#ALLOW_GAME} */ - @Init + @SuppressWarnings("incomplete-switch") + @Init static void init() { ChatMessageListener[] listeners = new ChatMessageListener[]{ // Features @@ -60,27 +61,35 @@ public interface ChatMessageListener { new DeathFilter(), new DicerFilter() }; + // Register all listeners to EVENT for (ChatMessageListener listener : listeners) { EVENT.register(listener); } + // Register EVENT to ClientReceiveMessageEvents.ALLOW_GAME from fabric api ClientReceiveMessageEvents.ALLOW_GAME.register((message, overlay) -> { if (!Utils.isOnSkyblock()) { return true; } + ChatFilterResult result = EVENT.invoker().onMessage(message, Formatting.strip(message.getString())); + switch (result) { case ACTION_BAR -> { if (overlay) { return true; } + ClientPlayerEntity player = MinecraftClient.getInstance().player; + if (player != null) { player.sendMessage(message, true); + return false; } } + case FILTER -> { return false; } diff --git a/src/main/java/de/hysky/skyblocker/utils/render/RenderHelper.java b/src/main/java/de/hysky/skyblocker/utils/render/RenderHelper.java index 6debc355..10c2fdf8 100644 --- a/src/main/java/de/hysky/skyblocker/utils/render/RenderHelper.java +++ b/src/main/java/de/hysky/skyblocker/utils/render/RenderHelper.java @@ -402,15 +402,12 @@ public class RenderHelper { return x >= x1 && x <= x2 && y >= y1 && y <= y2; } - public static void renderNineSliceColored(DrawContext context, Identifier texture, int x, int y, int width, int height, float red, float green, float blue, float alpha) { - context.drawGuiTexture(RenderLayer::getGuiTextured, texture, x, y, width, height, ColorHelper.fromFloats(alpha, red, green, blue)); + public static void renderNineSliceColored(DrawContext context, Identifier texture, int x, int y, int width, int height, int argb) { + context.drawGuiTexture(RenderLayer::getGuiTextured, texture, x, y, width, height, argb); } - private static final float[] colorBuffer = new float[4]; - public static void renderNineSliceColored(DrawContext context, Identifier texture, int x, int y, int width, int height, Color color) { - color.getComponents(colorBuffer); - renderNineSliceColored(context, texture, x, y, width, height, colorBuffer[0], colorBuffer[1], colorBuffer[2], colorBuffer[3]); + renderNineSliceColored(context, texture, x, y, width, height, ColorHelper.getArgb(color.getAlpha(), color.getRed(), color.getGreen(), color.getBlue())); } // TODO Get rid of reflection once the new Sodium is released diff --git a/src/main/java/de/hysky/skyblocker/utils/render/gui/BasePlaceholderScreen.java b/src/main/java/de/hysky/skyblocker/utils/render/gui/BasePlaceholderScreen.java new file mode 100644 index 00000000..729fae42 --- /dev/null +++ b/src/main/java/de/hysky/skyblocker/utils/render/gui/BasePlaceholderScreen.java @@ -0,0 +1,19 @@ +package de.hysky.skyblocker.utils.render.gui; + +import net.minecraft.client.gui.DrawContext; +import net.minecraft.client.gui.screen.Screen; +import net.minecraft.text.Text; + +public abstract class BasePlaceholderScreen extends Screen { + public BasePlaceholderScreen(Text title) { + super(title); + } + + @Override + public void render(DrawContext context, int mouseX, int mouseY, float delta) { + } + + @Override + public void renderBackground(DrawContext context, int mouseX, int mouseY, float delta) { + } +} diff --git a/src/main/java/de/hysky/skyblocker/utils/render/gui/JoinWorldPlaceholderScreen.java b/src/main/java/de/hysky/skyblocker/utils/render/gui/JoinWorldPlaceholderScreen.java new file mode 100644 index 00000000..f1dce2a8 --- /dev/null +++ b/src/main/java/de/hysky/skyblocker/utils/render/gui/JoinWorldPlaceholderScreen.java @@ -0,0 +1,9 @@ +package de.hysky.skyblocker.utils.render.gui; + +import net.minecraft.text.Text; + +public final class JoinWorldPlaceholderScreen extends BasePlaceholderScreen { + public JoinWorldPlaceholderScreen() { + super(Text.translatable("connect.joining")); + } +} diff --git a/src/main/java/de/hysky/skyblocker/utils/render/gui/ReconfiguringPlaceholderScreen.java b/src/main/java/de/hysky/skyblocker/utils/render/gui/ReconfiguringPlaceholderScreen.java new file mode 100644 index 00000000..8780acbe --- /dev/null +++ b/src/main/java/de/hysky/skyblocker/utils/render/gui/ReconfiguringPlaceholderScreen.java @@ -0,0 +1,22 @@ +package de.hysky.skyblocker.utils.render.gui; + +import net.minecraft.network.ClientConnection; +import net.minecraft.text.Text; + +public final class ReconfiguringPlaceholderScreen extends BasePlaceholderScreen { + private final ClientConnection connection; + + public ReconfiguringPlaceholderScreen(final ClientConnection connection) { + super(Text.translatable("connect.reconfiguring")); + this.connection = connection; + } + + @Override + public void tick() { + if (this.connection.isOpen()) { + this.connection.tick(); + } else { + this.connection.handleDisconnection(); + } + } +} -- cgit