aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni
diff options
context:
space:
mode:
authorhannibal2 <24389977+hannibal00212@users.noreply.github.com>2023-01-07 02:23:14 +0100
committerhannibal2 <24389977+hannibal00212@users.noreply.github.com>2023-01-07 02:23:14 +0100
commitcbbcdccf949cba0f152cb52a18b8e02c4d6f3b0e (patch)
tree73db30a8fce49e48cb8e0c3abeae91a6c3c1e1d9 /src/main/java/at/hannibal2/skyhanni
parentc0626bdc53ef5184279241a9110daa1696ac27e7 (diff)
downloadskyhanni-cbbcdccf949cba0f152cb52a18b8e02c4d6f3b0e.tar.gz
skyhanni-cbbcdccf949cba0f152cb52a18b8e02c4d6f3b0e.tar.bz2
skyhanni-cbbcdccf949cba0f152cb52a18b8e02c4d6f3b0e.zip
Compact Bingo and Potion Effect chat messages.
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni')
-rw-r--r--src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java2
-rw-r--r--src/main/java/at/hannibal2/skyhanni/config/Features.java4
-rw-r--r--src/main/java/at/hannibal2/skyhanni/config/features/Bingo.java14
-rw-r--r--src/main/java/at/hannibal2/skyhanni/config/features/Chat.java7
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/CompactBingoChat.kt112
-rw-r--r--src/main/java/at/hannibal2/skyhanni/features/CompactSplashPotionMessage.kt35
6 files changed, 173 insertions, 1 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java b/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java
index 5a1e9fb7c..d7670e810 100644
--- a/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java
+++ b/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java
@@ -167,7 +167,9 @@ public class SkyHanniMod {
registerEvent(new HighlightBonzoMasks());
registerEvent(new DungeonLevelColor());
registerEvent(new BazaarCancelledBuyOrderClipboard());
+ registerEvent(new CompactSplashPotionMessage());
registerEvent(new CroesusUnopenedChestTracker());
+ registerEvent(new CompactBingoChat());
Commands.INSTANCE.init();
diff --git a/src/main/java/at/hannibal2/skyhanni/config/Features.java b/src/main/java/at/hannibal2/skyhanni/config/Features.java
index 976a0d9da..083220b29 100644
--- a/src/main/java/at/hannibal2/skyhanni/config/Features.java
+++ b/src/main/java/at/hannibal2/skyhanni/config/Features.java
@@ -165,6 +165,10 @@ public class Features extends Config {
public MarkedPlayers markedPlayers = new MarkedPlayers();
@Expose
+ @Category(name = "Bingo", desc = "Features for the Bingo mode.")
+ public Bingo bingo = new Bingo();
+
+ @Expose
@Category(name = "Misc", desc = "Settings without a category.")
public Misc misc = new Misc();
diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/Bingo.java b/src/main/java/at/hannibal2/skyhanni/config/features/Bingo.java
new file mode 100644
index 000000000..002841d22
--- /dev/null
+++ b/src/main/java/at/hannibal2/skyhanni/config/features/Bingo.java
@@ -0,0 +1,14 @@
+package at.hannibal2.skyhanni.config.features;
+
+import at.hannibal2.skyhanni.config.core.config.annotations.ConfigEditorBoolean;
+import at.hannibal2.skyhanni.config.core.config.annotations.ConfigOption;
+import com.google.gson.annotations.Expose;
+
+public class Bingo {
+
+ @Expose
+ @ConfigOption(name = "Compact Chat Messages", desc = "Shortens chat messages about skill level ups, collection gains, " +
+ "new area discoveries, and bestiarity upgrades while on bingo.")
+ @ConfigEditorBoolean
+ public boolean compactChatMessages = true;
+}
diff --git a/src/main/java/at/hannibal2/skyhanni/config/features/Chat.java b/src/main/java/at/hannibal2/skyhanni/config/features/Chat.java
index 029731f96..386a8fd4b 100644
--- a/src/main/java/at/hannibal2/skyhanni/config/features/Chat.java
+++ b/src/main/java/at/hannibal2/skyhanni/config/features/Chat.java
@@ -91,7 +91,7 @@ public class Chat {
@Expose
@ConfigOption(name = "Dungeon Filter", desc = "Hide annoying messages in the dungeon.")
@ConfigEditorBoolean
- public boolean dungeonMessages = false;
+ public boolean dungeonMessages = true;
@Expose
@ConfigOption(name = "Dungeon Boss Messages", desc = "Hide messages from watcher and bosses in the dungeon.")
@@ -103,4 +103,9 @@ public class Chat {
"except for players who are close to the player, inside dungeon or during a Kuudra fight.")
@ConfigEditorBoolean
public boolean hideFarDeathMessages = false;
+
+ @Expose
+ @ConfigOption(name = "Compact Potion Message", desc = "Shorten chat messages about player potion effects.")
+ @ConfigEditorBoolean
+ public boolean compactPotionMessage = true;
}
diff --git a/src/main/java/at/hannibal2/skyhanni/features/CompactBingoChat.kt b/src/main/java/at/hannibal2/skyhanni/features/CompactBingoChat.kt
new file mode 100644
index 000000000..236236bb6
--- /dev/null
+++ b/src/main/java/at/hannibal2/skyhanni/features/CompactBingoChat.kt
@@ -0,0 +1,112 @@
+package at.hannibal2.skyhanni.features
+
+import at.hannibal2.skyhanni.SkyHanniMod
+import at.hannibal2.skyhanni.events.LorenzChatEvent
+import at.hannibal2.skyhanni.utils.LorenzUtils
+import at.hannibal2.skyhanni.utils.StringUtils.removeColor
+import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
+
+class CompactBingoChat {
+
+ private var blockedSkillLevelUp = false
+ private var blockedCollectionLevelUp = false
+ private var collectionLevelUpLastLine: String? = null
+ private var newArea = 0//0 = nothing, 1 = after first message, 2 = after second message
+ private var blockedBestiarity = false
+
+ @SubscribeEvent
+ fun onChatMessage(event: LorenzChatEvent) {
+ if (!LorenzUtils.isBingoProfile) return
+ if (!SkyHanniMod.feature.bingo.compactChatMessages) return
+
+ onSkillLevelUp(event)
+ onCollectionLevelUp(event)
+ onNewAreaDiscovered(event)
+ onBestiarityUpgrade(event)
+ }
+
+ private fun onSkillLevelUp(event: LorenzChatEvent) {
+ val message = event.message
+ if (message.startsWith(" §r§b§lSKILL LEVEL UP ")) {
+ blockedSkillLevelUp = true
+ return
+ }
+ if (message == "§3§l▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬") {
+ blockedSkillLevelUp = false
+ return
+ }
+
+ if (blockedSkillLevelUp) {
+ if (!message.contains("Access to") && !message.endsWith(" Enchantment")) {
+ event.blockedReason = "compact skill level up"
+ }
+ }
+ }
+
+ private fun onCollectionLevelUp(event: LorenzChatEvent) {
+ val message = event.message
+ if (message.startsWith(" §r§6§lCOLLECTION LEVEL UP ")) {
+ blockedCollectionLevelUp = true
+ return
+ }
+ if (message == "§e§l▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬") {
+ blockedCollectionLevelUp = false
+ return
+ }
+
+ if (blockedCollectionLevelUp) {
+ if (message.contains("Trade") || message.contains("Recipe")) {
+ var text = message.removeColor().replace(" ", "")
+ if (text == "Trade" || text == "Recipe") {
+ collectionLevelUpLastLine?.let { LorenzUtils.chat(it) }
+ }
+ } else {
+ event.blockedReason = "compact collection level up"
+ collectionLevelUpLastLine = message
+ }
+ }
+ }
+
+ private fun onNewAreaDiscovered(event: LorenzChatEvent) {
+ var message = event.message
+
+ if (message == " §r§6§lNEW AREA DISCOVERED!") {
+ newArea = 1
+ println("new area $newArea $message")
+ return
+ }
+
+ if (message != "") {
+ if (newArea == 1) {
+ newArea = 2
+ println("new area $newArea $message")
+ return
+ }
+
+ if (newArea == 2) {
+ if (message.startsWith("§7 ■ §r") || message.startsWith(" §r")) {
+ event.blockedReason = "compact new area discovered"
+ } else {
+ newArea = 0
+ println("new area $newArea $message")
+ }
+ }
+ }
+ }
+
+ private fun onBestiarityUpgrade(event: LorenzChatEvent) {
+ val message = event.message
+ if (message.startsWith(" §r§3§lBESTIARY §b§l")) {
+ blockedBestiarity = true
+ return
+ }
+ if (message == "§3§l▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬") {
+ blockedBestiarity = false
+ return
+ }
+
+ if (blockedBestiarity) {
+ event.blockedReason = "compact bestiarity upgrade"
+ }
+ }
+} \ No newline at end of file
diff --git a/src/main/java/at/hannibal2/skyhanni/features/CompactSplashPotionMessage.kt b/src/main/java/at/hannibal2/skyhanni/features/CompactSplashPotionMessage.kt
new file mode 100644
index 000000000..04740bbbd
--- /dev/null
+++ b/src/main/java/at/hannibal2/skyhanni/features/CompactSplashPotionMessage.kt
@@ -0,0 +1,35 @@
+package at.hannibal2.skyhanni.features
+
+import at.hannibal2.skyhanni.SkyHanniMod
+import at.hannibal2.skyhanni.events.LorenzChatEvent
+import at.hannibal2.skyhanni.utils.LorenzUtils
+import net.minecraft.util.ChatComponentText
+import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
+import java.util.regex.Pattern
+
+class CompactSplashPotionMessage {
+
+ private val POTION_EFFECT_PATTERN =
+ Pattern.compile("§a§lBUFF! §fYou have gained §r(.*)§r§f! Press TAB or type /effects to view your active effects!")
+
+ private val POTION_EFFECT_OTHERS_PATTERN =
+ Pattern.compile("§a§lBUFF! §fYou were splashed by (.*) §fwith §r(.*)§r§f! Press TAB or type /effects to view your active effects!")
+
+ @SubscribeEvent
+ fun onChatMessage(event: LorenzChatEvent) {
+ if (!LorenzUtils.inSkyblock || !SkyHanniMod.feature.chat.compactPotionMessage) return
+
+ var matcher = POTION_EFFECT_PATTERN.matcher(event.message)
+ if (matcher.matches()) {
+ val name = matcher.group(1)
+ event.chatComponent = ChatComponentText("§a§lPotion Effect! §r$name")
+ }
+
+ matcher = POTION_EFFECT_OTHERS_PATTERN.matcher(event.message)
+ if (matcher.matches()) {
+ val playerName = matcher.group(1)
+ val effectName = matcher.group(2)
+ event.chatComponent = ChatComponentText("§a§lPotion Effect! §r$effectName §7(by $playerName§7)")
+ }
+ }
+} \ No newline at end of file