From b064b892f4e4543db8e42b36f48c9b29bc0f5d8e Mon Sep 17 00:00:00 2001 From: Cow Date: Fri, 7 Aug 2020 00:30:32 +0200 Subject: Dungeon party finder: Added warning message if entering a floor other than the queued one --- .../cowtipper/cowlection/handler/DungeonCache.java | 10 +++ .../listener/skyblock/DungeonsListener.java | 91 ++++++++++++++++++++++ 2 files changed, 101 insertions(+) (limited to 'src/main/java') diff --git a/src/main/java/de/cowtipper/cowlection/handler/DungeonCache.java b/src/main/java/de/cowtipper/cowlection/handler/DungeonCache.java index b687ef2..c1bc33a 100644 --- a/src/main/java/de/cowtipper/cowlection/handler/DungeonCache.java +++ b/src/main/java/de/cowtipper/cowlection/handler/DungeonCache.java @@ -22,6 +22,7 @@ public class DungeonCache { private int elapsedMinutes; private int classMilestone; private long lastScoreboardCheck; + private String queuedFloor; public DungeonCache(Cowlection main) { this.main = main; @@ -108,6 +109,10 @@ public class DungeonCache { } // setter/adder + public void setQueuedFloor(String floorNr) { + this.queuedFloor = floorNr; + } + public void addDeath(String playerName) { int previousPlayerDeaths = deathCounter.getOrDefault(playerName, 0); deathCounter.put(playerName, previousPlayerDeaths + 1); @@ -128,6 +133,10 @@ public class DungeonCache { } // getter + public String getQueuedFloor() { + return queuedFloor; + } + public int getMaxSkillScore() { return 100 - getSkillScorePenalty(); } @@ -167,5 +176,6 @@ public class DungeonCache { destroyedCrypts.clear(); elapsedMinutes = 0; classMilestone = 0; + queuedFloor = null; } } diff --git a/src/main/java/de/cowtipper/cowlection/listener/skyblock/DungeonsListener.java b/src/main/java/de/cowtipper/cowlection/listener/skyblock/DungeonsListener.java index 0c81a5c..b6bb2d0 100644 --- a/src/main/java/de/cowtipper/cowlection/listener/skyblock/DungeonsListener.java +++ b/src/main/java/de/cowtipper/cowlection/listener/skyblock/DungeonsListener.java @@ -6,6 +6,7 @@ import de.cowtipper.cowlection.config.MooConfig; import de.cowtipper.cowlection.handler.DungeonCache; import de.cowtipper.cowlection.util.TickDelay; import net.minecraft.client.Minecraft; +import net.minecraft.client.audio.SoundCategory; import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.gui.inventory.GuiChest; import net.minecraft.client.renderer.GlStateManager; @@ -33,6 +34,7 @@ import net.minecraftforge.fml.common.gameevent.TickEvent; import net.minecraftforge.fml.relauncher.Side; import org.apache.commons.lang3.StringUtils; import org.lwjgl.input.Keyboard; +import org.lwjgl.input.Mouse; import java.awt.*; import java.util.List; @@ -47,6 +49,10 @@ public class DungeonsListener { * example: (space)Robin_Hood: Archer (42) */ private final Pattern DUNGEON_PARTY_FINDER_PLAYER = Pattern.compile("^ (?:\\w+): ([A-Za-z]+) \\((\\d+)\\)$"); + /** + * example: (Adventuring|Playing|Plundering|Looting|...) The Catacombs with 5/5 players on Floor II! + */ + private final Pattern DUNGEON_ENTERED_DUNGEON = Pattern.compile("^[A-Za-z ]+ The Catacombs( Entrance)? with [0-9]+/[0-9]+ players(?: on Floor ([IVX]+))?!$"); /** * Example tooltip lines: *