From 125632e4771993e5ac55dcb7e8371c18f938bad6 Mon Sep 17 00:00:00 2001 From: bowser0000 Date: Sat, 23 Apr 2022 03:48:13 -0400 Subject: Fix typo in fishing tracker --- src/main/java/me/Danker/features/loot/FishingTracker.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/main/java/me/Danker/features/loot/FishingTracker.java b/src/main/java/me/Danker/features/loot/FishingTracker.java index 95a9040..bb7daba 100644 --- a/src/main/java/me/Danker/features/loot/FishingTracker.java +++ b/src/main/java/me/Danker/features/loot/FishingTracker.java @@ -320,7 +320,7 @@ public class FishingTracker { zombieMinersSession++; ConfigHandler.writeIntConfig("fishing", "zombieMiner", zombieMiners); increaseSeaCreatures(); - } else if (message.contains("From Beneath the lava appears a Magma Slug")) { + } else if (message.contains("From beneath the lava appears a Magma Slug")) { magmaSlugs++; magmaSlugsSession++; ConfigHandler.writeIntConfig("fishing", "magmaSlug", magmaSlugs); -- cgit From 9d676f89051d2845566b7253c0b91f3abe32673d Mon Sep 17 00:00:00 2001 From: bowser0000 Date: Sat, 23 Apr 2022 22:46:40 -0400 Subject: Add fire pillar display --- src/main/java/me/Danker/DankersSkyblockMod.java | 1 + .../java/me/Danker/commands/DankerGuiCommand.java | 1 + src/main/java/me/Danker/commands/MoveCommand.java | 12 ++++- src/main/java/me/Danker/commands/ScaleCommand.java | 10 ++++- .../java/me/Danker/commands/ToggleCommand.java | 21 ++++----- .../java/me/Danker/features/FirePillarDisplay.java | 51 ++++++++++++++++++++++ src/main/java/me/Danker/gui/DankerGui.java | 7 +++ src/main/java/me/Danker/gui/EditLocationsGui.java | 35 ++++++++++----- .../java/me/Danker/gui/buttons/LocationButton.java | 4 ++ .../java/me/Danker/handlers/ConfigHandler.java | 4 ++ 10 files changed, 121 insertions(+), 25 deletions(-) create mode 100644 src/main/java/me/Danker/features/FirePillarDisplay.java (limited to 'src') diff --git a/src/main/java/me/Danker/DankersSkyblockMod.java b/src/main/java/me/Danker/DankersSkyblockMod.java index fb98068..cc96448 100644 --- a/src/main/java/me/Danker/DankersSkyblockMod.java +++ b/src/main/java/me/Danker/DankersSkyblockMod.java @@ -126,6 +126,7 @@ public class DankersSkyblockMod { MinecraftForge.EVENT_BUS.register(new EndOfFarmAlert()); MinecraftForge.EVENT_BUS.register(new ExpertiseLore()); MinecraftForge.EVENT_BUS.register(new FasterMaddoxCalling()); + MinecraftForge.EVENT_BUS.register(new FirePillarDisplay()); MinecraftForge.EVENT_BUS.register(new GemstonesLore()); MinecraftForge.EVENT_BUS.register(new GiantHPDisplay()); MinecraftForge.EVENT_BUS.register(new GoldenEnchants()); diff --git a/src/main/java/me/Danker/commands/DankerGuiCommand.java b/src/main/java/me/Danker/commands/DankerGuiCommand.java index 14041d1..1c5ea53 100644 --- a/src/main/java/me/Danker/commands/DankerGuiCommand.java +++ b/src/main/java/me/Danker/commands/DankerGuiCommand.java @@ -63,6 +63,7 @@ public class DankerGuiCommand extends CommandBase { debug.append("[gianthp][").append(MoveCommand.giantHPXY[0]).append(", ").append(MoveCommand.giantHPXY[1]).append("]\n"); debug.append("[abilitycooldowns][").append(MoveCommand.abilityCooldownsXY[0]).append(", ").append(MoveCommand.abilityCooldownsXY[1]).append("]\n"); debug.append("[dungeonscore][").append(MoveCommand.dungeonScoreXY[0]).append(", ").append(MoveCommand.dungeonScoreXY[1]).append("]\n"); + debug.append("[firepillar][").append(MoveCommand.firePillarXY[0]).append(", ").append(MoveCommand.firePillarXY[1]).append("]\n"); debug.append("# Other Settings\n"); debug.append("[Current Display][").append(LootDisplay.display).append("]\n"); debug.append("[Auto Display][").append(LootDisplay.auto).append("]\n"); diff --git a/src/main/java/me/Danker/commands/MoveCommand.java b/src/main/java/me/Danker/commands/MoveCommand.java index 5a6c6a2..106e603 100644 --- a/src/main/java/me/Danker/commands/MoveCommand.java +++ b/src/main/java/me/Danker/commands/MoveCommand.java @@ -27,6 +27,7 @@ public class MoveCommand extends CommandBase { public static int[] giantHPXY = {0, 0}; public static int[] abilityCooldownsXY = {0, 0}; public static int[] dungeonScoreXY = {0, 0}; + public static int[] firePillarXY = {0, 0}; @Override public String getCommandName() { @@ -37,7 +38,7 @@ public class MoveCommand extends CommandBase { public String getCommandUsage(ICommandSender arg0) { return "/" + getCommandName() + " "; + "abilitycooldowns/dungeonscore/firepillar> "; } public static String usage(ICommandSender arg0) { @@ -54,7 +55,7 @@ public class MoveCommand extends CommandBase { if (args.length == 1) { return getListOfStringsMatchingLastWord(args, "coords", "display", "dungeontimer", "skill50", "lividhp", "caketimer", "skilltracker", "wateranswer", "bonzotimer", "golemtimer", "teammatesinradius", - "gianthp", "abilitycooldowns", "dungeonscore"); + "gianthp", "abilitycooldowns", "dungeonscore", "firepillar"); } return null; } @@ -167,6 +168,13 @@ public class MoveCommand extends CommandBase { ConfigHandler.writeIntConfig("locations", "dungeonScoreY", dungeonScoreXY[1]); player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Dungeon score has been moved to " + DankersSkyblockMod.SECONDARY_COLOUR + arg1[1] + ", " + arg1[2])); break; + case "firepillar": + firePillarXY[0] = Integer.parseInt(arg1[1]); + firePillarXY[1] = Integer.parseInt(arg1[2]); + ConfigHandler.writeIntConfig("locations", "firePillarX", firePillarXY[0]); + ConfigHandler.writeIntConfig("locations", "firePillarY", firePillarXY[1]); + player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Fire pillar has been moved to " + DankersSkyblockMod.SECONDARY_COLOUR + arg1[1] + ", " + arg1[2])); + break; default: player.addChatMessage(new ChatComponentText(DankersSkyblockMod.ERROR_COLOUR + "Usage: " + getCommandUsage(arg0))); } diff --git a/src/main/java/me/Danker/commands/ScaleCommand.java b/src/main/java/me/Danker/commands/ScaleCommand.java index 9bb1f08..a19642b 100644 --- a/src/main/java/me/Danker/commands/ScaleCommand.java +++ b/src/main/java/me/Danker/commands/ScaleCommand.java @@ -27,6 +27,7 @@ public class ScaleCommand extends CommandBase { public static double giantHPScale; public static double abilityCooldownsScale; public static double dungeonScoreScale; + public static double firePillarScale; @Override public String getCommandName() { @@ -36,7 +37,7 @@ public class ScaleCommand extends CommandBase { @Override public String getCommandUsage(ICommandSender arg0) { return "/" + getCommandName() + " "; + "bonzotimer/golemtimer/teammatesinradius/gianthp/abilitycooldown/dungeonscore/firepillar> "; } public static String usage(ICommandSender arg0) { @@ -53,7 +54,7 @@ public class ScaleCommand extends CommandBase { if (args.length == 1) { return getListOfStringsMatchingLastWord(args, "coords", "display", "dungeontimer", "skill50", "lividhp", "caketimer", "skilltracker", "wateranswer", "bonzotimer", "golemtimer", "teammatesinradius", - "gianthp", "abilitycooldowns", "dungeonscore"); + "gianthp", "abilitycooldowns", "dungeonscore", "firepillar"); } return null; } @@ -144,6 +145,11 @@ public class ScaleCommand extends CommandBase { ConfigHandler.writeDoubleConfig("scales", "dungeonScoreScale", dungeonScoreScale); player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Dungeon score has been scaled to " + DankersSkyblockMod.SECONDARY_COLOUR + dungeonScoreScale + "x")); break; + case "firepillar": + firePillarScale = scaleAmount; + ConfigHandler.writeDoubleConfig("scales", "firePillarScale", firePillarScale); + player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Fire pillar has been scaled to " + DankersSkyblockMod.SECONDARY_COLOUR + firePillarScale + "x")); + break; default: player.addChatMessage(new ChatComponentText(DankersSkyblockMod.ERROR_COLOUR + "Usage: " + getCommandUsage(arg0))); } diff --git a/src/main/java/me/Danker/commands/ToggleCommand.java b/src/main/java/me/Danker/commands/ToggleCommand.java index 3536bd7..7207565 100644 --- a/src/main/java/me/Danker/commands/ToggleCommand.java +++ b/src/main/java/me/Danker/commands/ToggleCommand.java @@ -32,6 +32,15 @@ public class ToggleCommand extends CommandBase implements ICommand { public static boolean expertiseLoreToggled; public static boolean skill50DisplayToggled; public static boolean outlineTextToggled; + public static boolean lowHealthNotifyToggled; + public static boolean stopSalvageStarredToggled; + public static boolean watcherReadyToggled; + public static boolean swapToPickBlockToggled; + public static boolean flowerWeaponsToggled; + public static boolean notifySlayerSlainToggled; + public static boolean necronNotificationsToggled; + public static boolean bonzoTimerToggled; + public static boolean autoSkillTrackerToggled; public static boolean cakeTimerToggled; public static boolean highlightSlayers; public static boolean highlightArachne; @@ -51,6 +60,7 @@ public class ToggleCommand extends CommandBase implements ICommand { public static boolean dungeonScore; public static boolean hideArmour; public static boolean autoJoinSkyblock; + public static boolean firePillar; // Chat Messages public static boolean sceptreMessages; public static boolean midasStaffMessages; @@ -59,16 +69,6 @@ public class ToggleCommand extends CommandBase implements ICommand { public static boolean cooldownMessages; public static boolean manaMessages; public static boolean killComboMessages; - public static boolean lowHealthNotifyToggled; - public static boolean lividSolverToggled; - public static boolean stopSalvageStarredToggled; - public static boolean watcherReadyToggled; - public static boolean swapToPickBlockToggled; - public static boolean flowerWeaponsToggled; - public static boolean notifySlayerSlainToggled; - public static boolean necronNotificationsToggled; - public static boolean bonzoTimerToggled; - public static boolean autoSkillTrackerToggled; // Puzzle Solvers public static boolean threeManToggled; public static boolean oruoToggled; @@ -80,6 +80,7 @@ public class ToggleCommand extends CommandBase implements ICommand { public static boolean boulderToggled; public static boolean silverfishToggled; public static boolean iceWalkToggled; + public static boolean lividSolverToggled; // Terminal Helpers public static boolean startsWithToggled; public static boolean selectAllToggled; diff --git a/src/main/java/me/Danker/features/FirePillarDisplay.java b/src/main/java/me/Danker/features/FirePillarDisplay.java new file mode 100644 index 0000000..34b2288 --- /dev/null +++ b/src/main/java/me/Danker/features/FirePillarDisplay.java @@ -0,0 +1,51 @@ +package me.Danker.features; + +import me.Danker.DankersSkyblockMod; +import me.Danker.commands.MoveCommand; +import me.Danker.commands.ScaleCommand; +import me.Danker.commands.ToggleCommand; +import me.Danker.events.RenderOverlayEvent; +import me.Danker.handlers.TextRenderer; +import me.Danker.utils.Utils; +import net.minecraft.client.Minecraft; +import net.minecraft.entity.Entity; +import net.minecraft.util.StringUtils; +import net.minecraft.world.World; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import net.minecraftforge.fml.common.gameevent.TickEvent; + +import java.util.List; + +public class FirePillarDisplay { + + static Entity pillar = null; + + @SubscribeEvent + public void onTick(TickEvent.ClientTickEvent event) { + if (event.phase != TickEvent.Phase.START) return; + + World world = Minecraft.getMinecraft().theWorld; + if (DankersSkyblockMod.tickAmount % 20 == 0) { + pillar = null; + if (ToggleCommand.firePillar && world != null && Utils.tabLocation.equals("Crimson Isle") && Utils.isInScoreboard("Slay the boss!")) { + List entities = world.getLoadedEntityList(); + + for (Entity entity : entities) { + String name = StringUtils.stripControlCodes(entity.getName()); + if (name.endsWith(" hits") && name.charAt(1) == 's') { + pillar = entity; + break; + } + } + } + } + } + + @SubscribeEvent + public void renderPlayerInfo(RenderOverlayEvent event) { + if (ToggleCommand.firePillar && pillar != null) { + new TextRenderer(Minecraft.getMinecraft(), Utils.removeBold(pillar.getName()), MoveCommand.firePillarXY[0], MoveCommand.firePillarXY[1], ScaleCommand.firePillarScale); + } + } + +} diff --git a/src/main/java/me/Danker/gui/DankerGui.java b/src/main/java/me/Danker/gui/DankerGui.java index 4285d16..156a3a9 100644 --- a/src/main/java/me/Danker/gui/DankerGui.java +++ b/src/main/java/me/Danker/gui/DankerGui.java @@ -87,6 +87,7 @@ public class DankerGui extends GuiScreen { private GuiButton dungeonScore; private GuiButton hideArmour; private GuiButton autoJoinSkyblock; + private GuiButton firePillar; // Chat Messages private GuiButton sceptreMessages; private GuiButton midasStaffMessages; @@ -179,6 +180,7 @@ public class DankerGui extends GuiScreen { dungeonScore = new FeatureButton("Dungeon Score Display: " + Utils.getColouredBoolean(ToggleCommand.dungeonScore), "Displays an estimated dungeon score with secrets."); hideArmour = new FeatureButton("Hide Player Armour: " + Utils.getColouredBoolean(ToggleCommand.hideArmour), "Makes player armour invisible, showing their skin."); autoJoinSkyblock = new FeatureButton("Automatically Join Skyblock: " + Utils.getColouredBoolean(ToggleCommand.autoJoinSkyblock), "Automatically join Skyblock when you join Hypixel.\nYou have an addiction."); + firePillar = new FeatureButton("Fire Pillar Display: " + Utils.getColouredBoolean(ToggleCommand.firePillar), "Displays blaze fire pillar text on screen"); allButtons.clear(); allButtons.add(changeDisplay); @@ -237,6 +239,7 @@ public class DankerGui extends GuiScreen { allButtons.add(dungeonScore); allButtons.add(hideArmour); allButtons.add(autoJoinSkyblock); + allButtons.add(firePillar); search.setText(initSearchText); search.setVisible(true); @@ -524,6 +527,10 @@ public class DankerGui extends GuiScreen { ToggleCommand.autoJoinSkyblock = !ToggleCommand.autoJoinSkyblock; ConfigHandler.writeBooleanConfig("toggles", "AutoJoinSkyblock", ToggleCommand.autoJoinSkyblock); autoJoinSkyblock.displayString = "Automatically Join Skyblock: " + Utils.getColouredBoolean(ToggleCommand.autoJoinSkyblock); + } else if (button == firePillar) { + ToggleCommand.firePillar = !ToggleCommand.firePillar; + ConfigHandler.writeBooleanConfig("toggles", "FirePillar", ToggleCommand.firePillar); + firePillar.displayString = "Fire Pillar Display: " + Utils.getColouredBoolean(ToggleCommand.firePillar); } } diff --git a/src/main/java/me/Danker/gui/EditLocationsGui.java b/src/main/java/me/Danker/gui/EditLocationsGui.java index b7f4b02..24f0908 100644 --- a/src/main/java/me/Danker/gui/EditLocationsGui.java +++ b/src/main/java/me/Danker/gui/EditLocationsGui.java @@ -33,6 +33,7 @@ public class EditLocationsGui extends GuiScreen { private LocationButton giantHP; private LocationButton abilityCooldown; private LocationButton dungeonScore; + private LocationButton firePillar; @Override public boolean doesGuiPauseGame() { @@ -120,18 +121,19 @@ public class EditLocationsGui extends GuiScreen { display = new LocationButton(MoveCommand.displayXY[0], MoveCommand.displayXY[1], ScaleCommand.displayScale, displayText, displayNums, 110); dungeonTimer = new LocationButton(MoveCommand.dungeonTimerXY[0], MoveCommand.dungeonTimerXY[1], ScaleCommand.dungeonTimerScale, dungeonTimerText, dungeonTimerNums, 80); - coords = new LocationButton(MoveCommand.coordsXY[0], MoveCommand.coordsXY[1], ScaleCommand.coordsScale, NoF3Coords.COORDS_COLOUR + "74 / 14 / -26 (141.1 / 6.7)", null, null); - skill50 = new LocationButton(MoveCommand.skill50XY[0], MoveCommand.skill50XY[1], ScaleCommand.skill50Scale, Skill50Display.SKILL_50_COLOUR + "+3.5 Farming (28,882,117.7/55,172,425) 52.34%", null, null); - lividHP = new LocationButton(MoveCommand.lividHpXY[0], MoveCommand.lividHpXY[1], ScaleCommand.lividHpScale, EnumChatFormatting.WHITE + "﴾ Livid " + EnumChatFormatting.YELLOW + "6.9M" + EnumChatFormatting.RED + "❤ " + EnumChatFormatting.WHITE + "﴿", null, null); - cakeTimer = new LocationButton(MoveCommand.cakeTimerXY[0], MoveCommand.cakeTimerXY[1] + 5, ScaleCommand.cakeTimerScale, CakeTimer.CAKE_COLOUR + " 11h16m", null, null); - skillTracker = new LocationButton(MoveCommand.skillTrackerXY[0], MoveCommand.skillTrackerXY[1], ScaleCommand.skillTrackerScale, skillTrackerText, null, null); - waterAnswer = new LocationButton(MoveCommand.waterAnswerXY[0], MoveCommand.waterAnswerXY[1], ScaleCommand.waterAnswerScale, waterAnswerText, null, null); - bonzoTimer = new LocationButton(MoveCommand.bonzoTimerXY[0], MoveCommand.bonzoTimerXY[1] + 5, ScaleCommand.bonzoTimerScale, BonzoMaskTimer.BONZO_COLOR + " 3m30s", null, null); - golemTimer = new LocationButton(MoveCommand.golemTimerXY[0], MoveCommand.golemTimerXY[1] + 5, ScaleCommand.golemTimerScale, GolemSpawningAlert.GOLEM_COLOUR + " 20s", null, null); - teammatesInRadius = new LocationButton(MoveCommand.teammatesInRadiusXY[0], MoveCommand.teammatesInRadiusXY[1], ScaleCommand.teammatesInRadiusScale, teammatesInRadiusText, null, null); - giantHP = new LocationButton(MoveCommand.giantHPXY[0], MoveCommand.giantHPXY[1], ScaleCommand.giantHPScale, giantHPText, null, null); - abilityCooldown = new LocationButton(MoveCommand.abilityCooldownsXY[0], MoveCommand.abilityCooldownsXY[1], ScaleCommand.abilityCooldownsScale, abilityCooldownText, null, null); + coords = new LocationButton(MoveCommand.coordsXY[0], MoveCommand.coordsXY[1], ScaleCommand.coordsScale, NoF3Coords.COORDS_COLOUR + "74 / 14 / -26 (141.1 / 6.7)"); + skill50 = new LocationButton(MoveCommand.skill50XY[0], MoveCommand.skill50XY[1], ScaleCommand.skill50Scale, Skill50Display.SKILL_50_COLOUR + "+3.5 Farming (28,882,117.7/55,172,425) 52.34%"); + lividHP = new LocationButton(MoveCommand.lividHpXY[0], MoveCommand.lividHpXY[1], ScaleCommand.lividHpScale, EnumChatFormatting.WHITE + "﴾ Livid " + EnumChatFormatting.YELLOW + "6.9M" + EnumChatFormatting.RED + "❤ " + EnumChatFormatting.WHITE + "﴿"); + cakeTimer = new LocationButton(MoveCommand.cakeTimerXY[0], MoveCommand.cakeTimerXY[1] + 5, ScaleCommand.cakeTimerScale, CakeTimer.CAKE_COLOUR + " 11h16m"); + skillTracker = new LocationButton(MoveCommand.skillTrackerXY[0], MoveCommand.skillTrackerXY[1], ScaleCommand.skillTrackerScale, skillTrackerText); + waterAnswer = new LocationButton(MoveCommand.waterAnswerXY[0], MoveCommand.waterAnswerXY[1], ScaleCommand.waterAnswerScale, waterAnswerText); + bonzoTimer = new LocationButton(MoveCommand.bonzoTimerXY[0], MoveCommand.bonzoTimerXY[1] + 5, ScaleCommand.bonzoTimerScale, BonzoMaskTimer.BONZO_COLOR + " 3m30s"); + golemTimer = new LocationButton(MoveCommand.golemTimerXY[0], MoveCommand.golemTimerXY[1] + 5, ScaleCommand.golemTimerScale, GolemSpawningAlert.GOLEM_COLOUR + " 20s"); + teammatesInRadius = new LocationButton(MoveCommand.teammatesInRadiusXY[0], MoveCommand.teammatesInRadiusXY[1], ScaleCommand.teammatesInRadiusScale, teammatesInRadiusText); + giantHP = new LocationButton(MoveCommand.giantHPXY[0], MoveCommand.giantHPXY[1], ScaleCommand.giantHPScale, giantHPText); + abilityCooldown = new LocationButton(MoveCommand.abilityCooldownsXY[0], MoveCommand.abilityCooldownsXY[1], ScaleCommand.abilityCooldownsScale, abilityCooldownText); dungeonScore = new LocationButton(MoveCommand.dungeonScoreXY[0], MoveCommand.dungeonScoreXY[1], ScaleCommand.dungeonScoreScale, dungeonScoreText, dungeonScoreNums, 80); + firePillar = new LocationButton(MoveCommand.firePillarXY[0], MoveCommand.firePillarXY[1], ScaleCommand.firePillarScale, EnumChatFormatting.GOLD + "3s " + EnumChatFormatting.RED + "8 hits"); this.buttonList.add(coords); this.buttonList.add(dungeonTimer); @@ -147,6 +149,7 @@ public class EditLocationsGui extends GuiScreen { this.buttonList.add(giantHP); this.buttonList.add(abilityCooldown); this.buttonList.add(dungeonScore); + this.buttonList.add(firePillar); } @Override @@ -267,6 +270,12 @@ public class EditLocationsGui extends GuiScreen { MoveCommand.dungeonScoreXY[1] += yMoved; dungeonScore.xPosition = MoveCommand.dungeonScoreXY[0]; dungeonScore.yPosition = MoveCommand.dungeonScoreXY[1]; + break; + case "firePillar": + MoveCommand.firePillarXY[0] += xMoved; + MoveCommand.firePillarXY[1] += yMoved; + firePillar.xPosition = MoveCommand.firePillarXY[0]; + firePillar.yPosition = MoveCommand.firePillarXY[1]; } this.buttonList.clear(); initGui(); @@ -307,6 +316,8 @@ public class EditLocationsGui extends GuiScreen { moving = "abilityCooldown"; } else if (button == dungeonScore) { moving = "dungeonScore"; + } else if (button == firePillar) { + moving = "firePillar"; } } } @@ -343,6 +354,8 @@ public class EditLocationsGui extends GuiScreen { ConfigHandler.writeIntConfig("locations", "abilityCooldownsY", MoveCommand.abilityCooldownsXY[1]); ConfigHandler.writeIntConfig("locations", "dungeonScoreX", MoveCommand.dungeonScoreXY[0]); ConfigHandler.writeIntConfig("locations", "dungeonScoreY", MoveCommand.dungeonScoreXY[1]); + ConfigHandler.writeIntConfig("locations", "firePillarX", MoveCommand.firePillarXY[0]); + ConfigHandler.writeIntConfig("locations", "firePillarY", MoveCommand.firePillarXY[1]); } } diff --git a/src/main/java/me/Danker/gui/buttons/LocationButton.java b/src/main/java/me/Danker/gui/buttons/LocationButton.java index 8da1ab9..533bf83 100644 --- a/src/main/java/me/Danker/gui/buttons/LocationButton.java +++ b/src/main/java/me/Danker/gui/buttons/LocationButton.java @@ -44,6 +44,10 @@ public class LocationButton extends GuiButton { this.height = (int) ((splitText.length * 9 + 3) * scale); this.width = (int) ((this.longestText + offset + 3) * scale); } + + public LocationButton(int x, int y, double scale, String text) { + this(x, y, scale, text, null, null); + } @Override public void drawButton(Minecraft mc, int mouseX, int mouseY) { diff --git a/src/main/java/me/Danker/handlers/ConfigHandler.java b/src/main/java/me/Danker/handlers/ConfigHandler.java index 1267b9b..5db8a17 100644 --- a/src/main/java/me/Danker/handlers/ConfigHandler.java +++ b/src/main/java/me/Danker/handlers/ConfigHandler.java @@ -244,6 +244,7 @@ public class ConfigHandler { ToggleCommand.dungeonScore = initBoolean("toggles", "DungeonScore", false); ToggleCommand.hideArmour = initBoolean("toggles", "HideArmour", false); ToggleCommand.autoJoinSkyblock = initBoolean("toggles", "AutoJoinSkyblock", false); + ToggleCommand.firePillar = initBoolean("toggles", "FirePillar", false); // Chat Messages ToggleCommand.sceptreMessages = initBoolean("toggles", "SceptreMessages", true); ToggleCommand.midasStaffMessages = initBoolean("toggles", "MidasStaffMessages", true); @@ -629,6 +630,8 @@ public class ConfigHandler { MoveCommand.abilityCooldownsXY[1] = initInt("locations", "abilityCooldownsY", 150); MoveCommand.dungeonScoreXY[0] = initInt("locations", "dungeonScoreX", 150); MoveCommand.dungeonScoreXY[1] = initInt("locations", "dungeonScoreY", 150); + MoveCommand.firePillarXY[0] = initInt("locations", "firePillarX", 200); + MoveCommand.firePillarXY[1] = initInt("locations", "firePillarY", 200); // Scales ScaleCommand.coordsScale = initDouble("scales", "coordsScale", 1); @@ -645,6 +648,7 @@ public class ConfigHandler { ScaleCommand.giantHPScale = initDouble("scales", "giantHPScale", 1); ScaleCommand.abilityCooldownsScale = initDouble("scales", "abilityCooldownsScale", 1); ScaleCommand.dungeonScoreScale = initDouble("scales", "dungeonScoreScale", 1); + ScaleCommand.firePillarScale = initDouble("scales", "firePillarScale", 1); // Skills DankersSkyblockMod.farmingLevel = initInt("skills", "farming", -1); -- cgit From 6281b9fe15b3d807cd2e2fdba2b7649544f17658 Mon Sep 17 00:00:00 2001 From: bowser0000 Date: Sat, 23 Apr 2022 23:24:13 -0400 Subject: Fix some drops not counting in blaze tracker Also make multidrops work with any amount of digits --- .../java/me/Danker/features/loot/BlazeTracker.java | 42 ++++++++++++---------- .../java/me/Danker/features/loot/LootTracker.java | 11 +++--- 2 files changed, 31 insertions(+), 22 deletions(-) (limited to 'src') diff --git a/src/main/java/me/Danker/features/loot/BlazeTracker.java b/src/main/java/me/Danker/features/loot/BlazeTracker.java index 896f65f..955f83c 100644 --- a/src/main/java/me/Danker/features/loot/BlazeTracker.java +++ b/src/main/java/me/Danker/features/loot/BlazeTracker.java @@ -89,7 +89,7 @@ public class BlazeTracker { splashPotions++; splashPotionsSession++; ConfigHandler.writeIntConfig("blaze", "splashPotions", splashPotions); - } else if (message.contains("RARE DROP! (Bundle of Magma Arrows)")) { + } else if (message.contains("RARE DROP! (Bundle of Magma Arrows)")) { magmaArrows++; magmaArrowsSession++; ConfigHandler.writeIntConfig("blaze", "magmaArrows", magmaArrows); @@ -105,25 +105,30 @@ public class BlazeTracker { kelvinInverters++; kelvinInvertersSession++; ConfigHandler.writeIntConfig("blaze", "kelvinInverters", kelvinInverters); - } else if (message.contains("VERY RARE DROP! (Blaze Rod Distillate)")) { - blazeRodDistillates++; - blazeRodDistillatesSession++; + } else if (message.contains("VERY RARE DROP! (") && message.contains("Blaze Rod Distillate)")) { + int amount = LootTracker.getAmountfromMessage(message); + blazeRodDistillates += amount; + blazeRodDistillatesSession += amount; ConfigHandler.writeIntConfig("blaze", "blazeRodDistillates", blazeRodDistillates); - } else if (message.contains("VERY RARE DROP! (Glowstone Distillate)")) { - glowstoneDistillates++; - glowstoneDistillatesSession++; + } else if (message.contains("VERY RARE DROP! (") && message.contains("Glowstone Distillate)")) { + int amount = LootTracker.getAmountfromMessage(message); + glowstoneDistillates += amount; + glowstoneDistillatesSession += amount; ConfigHandler.writeIntConfig("blaze", "glowstoneDistillates", glowstoneDistillates); - } else if (message.contains("VERY RARE DROP! (Magma Cream Distillate)")) { - magmaCreamDistillates++; - magmaCreamDistillatesSession++; + } else if (message.contains("VERY RARE DROP! (") && message.contains("Magma Cream Distillate)")) { + int amount = LootTracker.getAmountfromMessage(message); + magmaCreamDistillates += amount; + magmaCreamDistillatesSession += amount; ConfigHandler.writeIntConfig("blaze", "magmaCreamDistillates", magmaCreamDistillates); - } else if (message.contains("VERY RARE DROP! (Nether Wart Distillate)")) { - netherWartDistillates++; - netherWartDistillatesSession++; + } else if (message.contains("VERY RARE DROP! (") && message.contains("Nether Wart Distillate)")) { + int amount = LootTracker.getAmountfromMessage(message); + netherWartDistillates += amount; + netherWartDistillatesSession += amount; ConfigHandler.writeIntConfig("blaze", "netherWartDistillates", netherWartDistillates); - } else if (message.contains("VERY RARE DROP! (Gabagool Distillate)")) { - gabagoolDistillates++; - gabagoolDistillatesSession++; + } else if (message.contains("VERY RARE DROP! (") && message.contains("Gabagool Distillate)")) { + int amount = LootTracker.getAmountfromMessage(message); + gabagoolDistillates += amount; + gabagoolDistillatesSession += amount; ConfigHandler.writeIntConfig("blaze", "gabagoolDistillates", gabagoolDistillates); } else if (message.contains("VERY RARE DROP! (Scorched Power Crystal)")) { scorchedPowerCrystals++; @@ -140,8 +145,9 @@ public class BlazeTracker { ConfigHandler.writeIntConfig("blaze", "fieryBurstRunes", fieryBurstRunes); if (ToggleCommand.rngesusAlerts) Utils.createTitle(EnumChatFormatting.RED + "FIERY BURST RUNE!", 5); } else if (message.contains("VERY RARE DROP! (") && message.contains(" Flawed Opal Gemstone)")) { - opalGems++; - opalGemsSession++; + int amount = LootTracker.getAmountfromMessage(message); + opalGems += amount; + opalGemsSession += amount; ConfigHandler.writeIntConfig("blaze", "opalGems", opalGems); } else if (message.contains("VERY RARE DROP! (Archfiend Dice)")) { archfiendDice++; diff --git a/src/main/java/me/Danker/features/loot/LootTracker.java b/src/main/java/me/Danker/features/loot/LootTracker.java index 27f0779..d654109 100644 --- a/src/main/java/me/Danker/features/loot/LootTracker.java +++ b/src/main/java/me/Danker/features/loot/LootTracker.java @@ -8,10 +8,13 @@ import net.minecraftforge.fml.common.eventhandler.EventPriority; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; public class LootTracker { public static long itemsChecked = 0; + static Pattern dropPattern = Pattern.compile(".*? \\((?\\d+)x .*\\).*"); @SubscribeEvent(priority = EventPriority.HIGHEST) public void onSound(PlaySoundEvent event) { @@ -59,11 +62,11 @@ public class LootTracker { } public static int getAmountfromMessage(String message) { - if (message.charAt(message.indexOf("(") + 2) == 'x' || message.charAt(message.indexOf("(") + 3) == 'x') { - return Integer.parseInt(message.substring(message.indexOf("(") + 1, message.indexOf("x"))); - } else { - return 1; + Matcher matcher = dropPattern.matcher(message); + if (matcher.find()) { + return Integer.parseInt(matcher.group("amount")); } + return 1; } } -- cgit From 0f7bb4b43fcbb50a33077e2532a53eaf6300e30d Mon Sep 17 00:00:00 2001 From: bowser0000 Date: Thu, 28 Apr 2022 00:08:37 -0400 Subject: Fix importing taurus from API --- src/main/java/me/Danker/commands/ImportFishingCommand.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/main/java/me/Danker/commands/ImportFishingCommand.java b/src/main/java/me/Danker/commands/ImportFishingCommand.java index f51e01f..16fecf5 100644 --- a/src/main/java/me/Danker/commands/ImportFishingCommand.java +++ b/src/main/java/me/Danker/commands/ImportFishingCommand.java @@ -118,7 +118,7 @@ public class ImportFishingCommand extends CommandBase { FishingTracker.pyroclasticWorms = getSCFromApi(statsObject, "kills_pyroclastic_worm"); FishingTracker.lavaFlames = getSCFromApi(statsObject, "kills_lava_flame"); FishingTracker.fireEels = getSCFromApi(statsObject, "kills_fire_eel"); - FishingTracker.tauruses = getSCFromApi(statsObject, "kills_taurus"); + FishingTracker.tauruses = getSCFromApi(statsObject, "kills_pig_rider"); FishingTracker.thunders = getSCFromApi(statsObject, "kills_thunder"); FishingTracker.lordJawbuses = getSCFromApi(statsObject, "kills_lord_jawbus"); -- cgit From b3cb573fcfb7afbb0206d29b71432ab68c82a876 Mon Sep 17 00:00:00 2001 From: bowser0000 Date: Thu, 28 Apr 2022 00:11:03 -0400 Subject: Add alert sound to config Default to random.orb --- src/main/java/me/Danker/handlers/ConfigHandler.java | 2 ++ src/main/java/me/Danker/utils/Utils.java | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/main/java/me/Danker/handlers/ConfigHandler.java b/src/main/java/me/Danker/handlers/ConfigHandler.java index 5db8a17..bf20d3c 100644 --- a/src/main/java/me/Danker/handlers/ConfigHandler.java +++ b/src/main/java/me/Danker/handlers/ConfigHandler.java @@ -9,6 +9,7 @@ import me.Danker.commands.ToggleCommand; import me.Danker.features.*; import me.Danker.features.loot.*; import me.Danker.features.puzzlesolvers.*; +import me.Danker.utils.Utils; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.ScaledResolution; import net.minecraft.util.EnumChatFormatting; @@ -598,6 +599,7 @@ public class ConfigHandler { DankersSkyblockMod.firstLaunch = initBoolean("misc", "firstLaunch", true); EndOfFarmAlert.min = initDouble("misc", "farmMin", -78.5); EndOfFarmAlert.max = initDouble("misc", "farmMax", 79.5); + Utils.TITLE_SOUND = initString("misc", "titleSound", "random.orb"); // Locations ScaledResolution scaled = new ScaledResolution(Minecraft.getMinecraft()); diff --git a/src/main/java/me/Danker/utils/Utils.java b/src/main/java/me/Danker/utils/Utils.java index c9021f7..2229d65 100644 --- a/src/main/java/me/Danker/utils/Utils.java +++ b/src/main/java/me/Danker/utils/Utils.java @@ -50,6 +50,7 @@ public class Utils { put('D', 500); put('M', 1000); }}; + public static String TITLE_SOUND; public static int getItems(String item) { Minecraft mc = Minecraft.getMinecraft(); @@ -97,7 +98,7 @@ public class Utils { } public static void createTitle(String text, int seconds) { - Minecraft.getMinecraft().thePlayer.playSound("random.orb", 1, (float) 0.5); + Minecraft.getMinecraft().thePlayer.playSound(TITLE_SOUND, 1, (float) 0.5); DankersSkyblockMod.titleTimer = seconds * 20; DankersSkyblockMod.showTitle = true; DankersSkyblockMod.titleText = text; -- cgit From 852777345060b09ab34945cff65a095aa8cb1aa9 Mon Sep 17 00:00:00 2001 From: bowser0000 Date: Thu, 28 Apr 2022 01:17:00 -0400 Subject: Add Skytils waypoint support --- src/main/java/me/Danker/DankersSkyblockMod.java | 2 +- .../commands/CrystalHollowWaypointCommand.java | 39 ++------- .../me/Danker/features/CrystalHollowWaypoints.java | 99 ++++++++++++++++++---- 3 files changed, 90 insertions(+), 50 deletions(-) (limited to 'src') diff --git a/src/main/java/me/Danker/DankersSkyblockMod.java b/src/main/java/me/Danker/DankersSkyblockMod.java index cc96448..2139549 100644 --- a/src/main/java/me/Danker/DankersSkyblockMod.java +++ b/src/main/java/me/Danker/DankersSkyblockMod.java @@ -64,7 +64,7 @@ import java.util.Map; @Mod(modid = DankersSkyblockMod.MODID, version = DankersSkyblockMod.VERSION, clientSideOnly = true) public class DankersSkyblockMod { public static final String MODID = "Danker's Skyblock Mod"; - public static final String VERSION = "1.8.7-beta5"; + public static final String VERSION = "1.8.7-beta6"; public static int titleTimer = -1; public static boolean showTitle = false; public static String titleText = ""; diff --git a/src/main/java/me/Danker/commands/CrystalHollowWaypointCommand.java b/src/main/java/me/Danker/commands/CrystalHollowWaypointCommand.java index f5dea9b..4eaf2d6 100644 --- a/src/main/java/me/Danker/commands/CrystalHollowWaypointCommand.java +++ b/src/main/java/me/Danker/commands/CrystalHollowWaypointCommand.java @@ -1,14 +1,11 @@ package me.Danker.commands; -import me.Danker.DankersSkyblockMod; import me.Danker.features.CrystalHollowWaypoints; -import net.minecraft.client.Minecraft; import net.minecraft.command.CommandBase; import net.minecraft.command.CommandException; import net.minecraft.command.ICommandSender; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.util.BlockPos; -import net.minecraft.util.ChatComponentText; + +import java.util.Arrays; public class CrystalHollowWaypointCommand extends CommandBase { @@ -30,34 +27,12 @@ public class CrystalHollowWaypointCommand extends CommandBase { @Override public void processCommand(ICommandSender arg0, String[] arg1) throws CommandException { if (arg1.length == 0) return; - addWaypoints(String.join(" ", arg1), false); - } - - public static void addWaypoints(String list, boolean auto) { - EntityPlayer player = Minecraft.getMinecraft().thePlayer; - String[] waypoints = list.split("\\\\n"); - - for (String waypoint : waypoints) { - String[] parts = waypoint.split("@-"); - String[] coords = parts[1].split(","); - - String location = parts[0]; - BlockPos pos = new BlockPos(Integer.parseInt(coords[0]), Integer.parseInt(coords[1]), Integer.parseInt(coords[2])); - CrystalHollowWaypoints.Waypoint newWaypoint = new CrystalHollowWaypoints.Waypoint(location, pos); - - if (auto) { - boolean contains = false; - for (CrystalHollowWaypoints.Waypoint existing : CrystalHollowWaypoints.waypoints) { - if (existing.location.equals(location)) { - contains = true; - break; - } - } - if (contains) continue; - } - CrystalHollowWaypoints.waypoints.add(newWaypoint); - player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Added " + newWaypoint.location + " @ " + newWaypoint.getPos())); + if (arg1.length > 4 && arg1[0].equals("st")) { + String name = String.join(" ", Arrays.copyOfRange(arg1, 4, arg1.length)); + CrystalHollowWaypoints.addWaypoint(name, arg1[1], arg1[2], arg1[3]); + } else { + CrystalHollowWaypoints.addDSMWaypoints(String.join(" ", arg1), false); } } diff --git a/src/main/java/me/Danker/features/CrystalHollowWaypoints.java b/src/main/java/me/Danker/features/CrystalHollowWaypoints.java index f367877..795c49c 100644 --- a/src/main/java/me/Danker/features/CrystalHollowWaypoints.java +++ b/src/main/java/me/Danker/features/CrystalHollowWaypoints.java @@ -1,7 +1,6 @@ package me.Danker.features; import me.Danker.DankersSkyblockMod; -import me.Danker.commands.CrystalHollowWaypointCommand; import me.Danker.commands.ToggleCommand; import me.Danker.handlers.ScoreboardHandler; import me.Danker.utils.RenderUtils; @@ -20,11 +19,14 @@ import net.minecraftforge.fml.common.gameevent.TickEvent; import java.util.ArrayList; import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; public class CrystalHollowWaypoints { public static List waypoints = new ArrayList<>(); - + public static Pattern skytilsPattern = Pattern.compile("(?.*?): (?\\d{1,3}) (?\\d{1,3}) (?\\d{1,3})"); + static boolean khazad = false; static boolean fairy = false; static boolean temple = false; @@ -123,25 +125,54 @@ public class CrystalHollowWaypoints { $SBECHWP:Khazad-dûm@-292,63,281\nFairy Grotto@-216,110,400\njungle temple@-525,110,395\nJungle Temple@-493,101,425\nMines of Divan@-673,117,426 */ if (ToggleCommand.crystalHollowWaypoints && Utils.tabLocation.equals("Crystal Hollows")) { - if (!message.contains(player.getName()) && (message.contains(": $DSMCHWP:") || message.contains(": $SBECHWP:"))) { - String waypoints = message.substring(message.lastIndexOf(":") + 1); + if (!message.contains(player.getName())) { + if (message.contains(": $DSMCHWP:") || message.contains(": $SBECHWP:")) { + String waypoints = message.substring(message.lastIndexOf(":") + 1); - if (ToggleCommand.crystalAutoPlayerWaypoints) { - CrystalHollowWaypointCommand.addWaypoints(waypoints, true); - return; - } + if (ToggleCommand.crystalAutoPlayerWaypoints) { + addDSMWaypoints(waypoints, true); + return; + } + + ChatComponentText add = new ChatComponentText(EnumChatFormatting.GREEN + "" + EnumChatFormatting.BOLD + " [ADD]\n"); + add.setChatStyle(add.getChatStyle().setChatClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/dsmaddcrystalhollowwaypoints " + waypoints))); + + new Thread(() -> { + try { + Thread.sleep(10); + } catch (InterruptedException ex) { + ex.printStackTrace(); + } + player.addChatMessage(new ChatComponentText("\n" + DankersSkyblockMod.MAIN_COLOUR + "DSM/SBE Crystal Hollows waypoints found. Click to add.\n").appendSibling(add)); + }).start(); + } else { + String text = message.substring(message.indexOf(":") + 2); + Matcher matcher = skytilsPattern.matcher(text); - ChatComponentText add = new ChatComponentText(EnumChatFormatting.GREEN + "" + EnumChatFormatting.BOLD + " [ADD]\n"); - add.setChatStyle(add.getChatStyle().setChatClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/dsmaddcrystalhollowwaypoints " + waypoints))); + if (matcher.matches()) { + String name = matcher.group("name"); + String x = matcher.group("x"); + String y = matcher.group("y"); + String z = matcher.group("z"); - new Thread(() -> { - try { - Thread.sleep(10); - } catch (InterruptedException ex) { - ex.printStackTrace(); + if (ToggleCommand.crystalAutoPlayerWaypoints) { + addWaypoint(name, x, y, z); + return; + } + + ChatComponentText add = new ChatComponentText(EnumChatFormatting.GREEN + "" + EnumChatFormatting.BOLD + " [ADD]\n"); + add.setChatStyle(add.getChatStyle().setChatClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/dsmaddcrystalhollowwaypoints st " + x + " " + y + " " + z + " " + name))); + + new Thread(() -> { + try { + Thread.sleep(10); + } catch (InterruptedException ex) { + ex.printStackTrace(); + } + player.addChatMessage(new ChatComponentText("\n" + DankersSkyblockMod.MAIN_COLOUR + "Skytils Crystal Hollows waypoints found. Click to add.\n").appendSibling(add)); + }).start(); } - player.addChatMessage(new ChatComponentText("\n" + DankersSkyblockMod.MAIN_COLOUR + "DSM/SBE Crystal Hollows waypoints found. Click to add.\n").appendSibling(add)); - }).start(); + } } } } @@ -201,4 +232,38 @@ public class CrystalHollowWaypoints { } + public static void addWaypoint(String name, String x, String y, String z) { + BlockPos pos = new BlockPos(Integer.parseInt(x), Integer.parseInt(y), Integer.parseInt(z)); + Waypoint waypoint = new Waypoint(name, pos); + waypoints.add(waypoint); + Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Added " + waypoint.location + " @ " + waypoint.getPos())); + } + + public static void addDSMWaypoints(String list, boolean auto) { + String[] waypointsList = list.split("\\\\n"); + + for (String waypoint : waypointsList) { + String[] parts = waypoint.split("@-"); + String[] coords = parts[1].split(","); + + String location = parts[0]; + BlockPos pos = new BlockPos(Integer.parseInt(coords[0]), Integer.parseInt(coords[1]), Integer.parseInt(coords[2])); + Waypoint newWaypoint = new Waypoint(location, pos); + + if (auto) { + boolean contains = false; + for (Waypoint existing : waypoints) { + if (existing.location.equals(location)) { + contains = true; + break; + } + } + if (contains) continue; + } + + waypoints.add(newWaypoint); + Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Added " + newWaypoint.location + " @ " + newWaypoint.getPos())); + } + } + } -- cgit From b7a2bc13f61a60c99ce460d08d7c89d06ee72a34 Mon Sep 17 00:00:00 2001 From: bowser0000 Date: Thu, 28 Apr 2022 02:22:49 -0400 Subject: Add regex for alerts Capture support using $$x$$ where x is a group number Make util function for desktop notifications --- src/main/java/me/Danker/features/Alerts.java | 83 +++++++++++++--------- .../me/Danker/features/GpartyNotifications.java | 13 +--- .../java/me/Danker/gui/alerts/AlertActionGui.java | 4 +- .../java/me/Danker/gui/alerts/AlertAddGui.java | 15 ++-- src/main/java/me/Danker/utils/Utils.java | 17 +++++ 5 files changed, 82 insertions(+), 50 deletions(-) (limited to 'src') diff --git a/src/main/java/me/Danker/features/Alerts.java b/src/main/java/me/Danker/features/Alerts.java index aab99b3..8f45423 100644 --- a/src/main/java/me/Danker/features/Alerts.java +++ b/src/main/java/me/Danker/features/Alerts.java @@ -1,6 +1,7 @@ package me.Danker.features; import com.google.gson.GsonBuilder; +import javafx.scene.control.Alert; import me.Danker.commands.ToggleCommand; import me.Danker.utils.Utils; import net.minecraft.util.EnumChatFormatting; @@ -12,11 +13,15 @@ import java.awt.*; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; public class Alerts { public static List alerts = new ArrayList<>(); + public static HashMap patterns = new HashMap<>(); public static String configFile; @SubscribeEvent @@ -41,45 +46,59 @@ public class Alerts { } if (!location) continue; - boolean trigger; - switch (alert.mode) { - case "Starts With": - trigger = message.startsWith(alert.message); - break; - case "Contains": - trigger = message.contains(alert.message); - break; - case "Ends With": - trigger = message.endsWith(alert.message); - break; - default: - continue; - } - - if (trigger) { - Utils.createTitle(EnumChatFormatting.RED + alert.alert.replace("&", "§"), 2); - - if (alert.desktop) { - try { - final SystemTray tray = SystemTray.getSystemTray(); - final Image image = Toolkit.getDefaultToolkit().createImage("icon.png"); - final TrayIcon trayIcon = new TrayIcon(image, "Alert"); - trayIcon.setImageAutoSize(true); - trayIcon.setToolTip("Alert"); - tray.add(trayIcon); - trayIcon.displayMessage(StringUtils.stripControlCodes(alert.alert), message, TrayIcon.MessageType.INFO); - tray.remove(trayIcon); - } catch (Exception ex) { - ex.printStackTrace(); + if (alert.mode.equals("Regex")) { + Matcher matcher = patterns.get(alert).matcher(message); + if (matcher.matches()) { + matcher.reset(); + String alertText = alert.alert; + + int i = 0; + while (matcher.find()) { + for (int j = 0; j <= matcher.groupCount(); j++) { + alertText = alertText.replace("$$" + i + "$$", matcher.group(j)); + i++; + } } + + Utils.createTitle(EnumChatFormatting.RED + alertText.replace("&", "§"), 2); + if (alert.desktop) Utils.desktopNotification("Alert", alertText, message, TrayIcon.MessageType.INFO); + + return; } + } else { + boolean trigger; + switch (alert.mode) { + case "Starts With": + trigger = message.startsWith(alert.message); + break; + case "Contains": + trigger = message.contains(alert.message); + break; + case "Ends With": + trigger = message.endsWith(alert.message); + break; + default: + continue; + } + + if (trigger) { + Utils.createTitle(EnumChatFormatting.RED + alert.alert.replace("&", "§"), 2); + if (alert.desktop) Utils.desktopNotification("Alert", alert.alert, message, TrayIcon.MessageType.INFO); - return; + return; + } } } } - public static void saveToFile() { + public static void save() { + for (Alert alert : alerts) { + if (alert.mode.equals("Regex")) { + Pattern pattern = Pattern.compile(alert.message); + patterns.put(alert, pattern); + } + } + try (FileWriter writer = new FileWriter(configFile)) { new GsonBuilder().create().toJson(alerts, writer); writer.flush(); diff --git a/src/main/java/me/Danker/features/GpartyNotifications.java b/src/main/java/me/Danker/features/GpartyNotifications.java index f3aec69..76c0a66 100644 --- a/src/main/java/me/Danker/features/GpartyNotifications.java +++ b/src/main/java/me/Danker/features/GpartyNotifications.java @@ -19,18 +19,7 @@ public class GpartyNotifications { if (ToggleCommand.gpartyToggled) { if (message.contains(" has invited all members of ")) { - try { - final SystemTray tray = SystemTray.getSystemTray(); - final Image image = Toolkit.getDefaultToolkit().createImage("icon.png"); - final TrayIcon trayIcon = new TrayIcon(image, "Guild Party Notifier"); - trayIcon.setImageAutoSize(true); - trayIcon.setToolTip("Guild Party Notifier"); - tray.add(trayIcon); - trayIcon.displayMessage("Guild Party", message, TrayIcon.MessageType.INFO); - tray.remove(trayIcon); - } catch (Exception ex) { - ex.printStackTrace(); - } + Utils.desktopNotification("Guild Party Notifier", "Guild Party", message, TrayIcon.MessageType.INFO); } } } diff --git a/src/main/java/me/Danker/gui/alerts/AlertActionGui.java b/src/main/java/me/Danker/gui/alerts/AlertActionGui.java index 7a73f5a..3d0eb90 100644 --- a/src/main/java/me/Danker/gui/alerts/AlertActionGui.java +++ b/src/main/java/me/Danker/gui/alerts/AlertActionGui.java @@ -80,12 +80,12 @@ public class AlertActionGui extends GuiScreen { mc.displayGuiScreen(new AlertAddGui(alert, id)); } else if (button == delete) { Alerts.alerts.remove(id); - Alerts.saveToFile(); + Alerts.save(); mc.displayGuiScreen(new AlertsGui(1)); return; } Alerts.alerts.set(id, alert); - Alerts.saveToFile(); + Alerts.save(); } } diff --git a/src/main/java/me/Danker/gui/alerts/AlertAddGui.java b/src/main/java/me/Danker/gui/alerts/AlertAddGui.java index 5f01d6d..304c77a 100644 --- a/src/main/java/me/Danker/gui/alerts/AlertAddGui.java +++ b/src/main/java/me/Danker/gui/alerts/AlertAddGui.java @@ -25,6 +25,7 @@ public class AlertAddGui extends GuiScreen { private GuiButton startsWith; private GuiButton contains; private GuiButton endsWith; + private GuiButton regex; private GuiButton everywhere; private GuiButton skyblock; private GuiButton dungeons; @@ -57,9 +58,10 @@ public class AlertAddGui extends GuiScreen { cancel = new GuiButton(0, 2, height - 30, 100, 20, "Cancel"); - startsWith = new GuiButton(0, width / 2 - 200, (int) (height * 0.2), 120, 20, "Starts With"); - contains = new GuiButton(0, width / 2 - 60, (int) (height * 0.2), 120, 20, "Contains"); - endsWith = new GuiButton(0, width / 2 + 80, (int) (height * 0.2), 120, 20, "Ends With"); + startsWith = new GuiButton(0, width / 2 - 260, (int) (height * 0.2), 120, 20, "Starts With"); + contains = new GuiButton(0, width / 2 - 130, (int) (height * 0.2), 120, 20, "Contains"); + endsWith = new GuiButton(0, width / 2 + 10, (int) (height * 0.2), 120, 20, "Ends With"); + regex = new GuiButton(0, width / 2 + 140, (int) (height * 0.2), 120, 20, "Regex"); everywhere = new GuiButton(0, width / 2 - 200, (int) (height * 0.3), 120, 20, "Everywhere"); skyblock = new GuiButton(0, width / 2 - 60, (int) (height * 0.3), 120, 20, "Skyblock"); dungeons = new GuiButton(0, width / 2 + 80, (int) (height * 0.3), 120, 20, "Dungeons"); @@ -80,13 +82,16 @@ public class AlertAddGui extends GuiScreen { message.setVisible(true); message.setEnabled(true); + message.setMaxStringLength(100); alert.setVisible(true); alert.setEnabled(true); + alert.setMaxStringLength(100); this.buttonList.add(cancel); this.buttonList.add(startsWith); this.buttonList.add(contains); this.buttonList.add(endsWith); + this.buttonList.add(regex); this.buttonList.add(everywhere); this.buttonList.add(skyblock); this.buttonList.add(dungeons); @@ -119,6 +124,8 @@ public class AlertAddGui extends GuiScreen { mode = "Contains"; } else if (button == endsWith) { mode = "Ends With"; + } else if (button == regex) { + mode = "Regex"; } else if (button == everywhere) { location = "Everywhere"; } else if (button == skyblock) { @@ -132,7 +139,7 @@ public class AlertAddGui extends GuiScreen { } else { Alerts.alerts.add(newAlert); } - Alerts.saveToFile(); + Alerts.save(); mc.displayGuiScreen(new AlertsGui(1)); } } diff --git a/src/main/java/me/Danker/utils/Utils.java b/src/main/java/me/Danker/utils/Utils.java index 2229d65..3cef436 100644 --- a/src/main/java/me/Danker/utils/Utils.java +++ b/src/main/java/me/Danker/utils/Utils.java @@ -19,7 +19,9 @@ import net.minecraft.nbt.NBTTagList; import net.minecraft.scoreboard.ScoreObjective; import net.minecraft.util.*; +import java.awt.*; import java.util.*; +import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.stream.Collectors; @@ -492,6 +494,21 @@ public class Utils { return (Math.floor(level / 2D) + 25) / 100D; } + public static void desktopNotification(String name, String title, String text, TrayIcon.MessageType messageType) { + try { + final SystemTray tray = SystemTray.getSystemTray(); + final Image image = Toolkit.getDefaultToolkit().createImage("icon.png"); + final TrayIcon trayIcon = new TrayIcon(image, name); + trayIcon.setImageAutoSize(true); + trayIcon.setToolTip(name); + tray.add(trayIcon); + trayIcon.displayMessage(title, text, messageType); + tray.remove(trayIcon); + } catch (Exception ex) { + ex.printStackTrace(); + } + } + public enum DungeonFloor { NONE, E0, -- cgit From d35e43b33b98796acc7b8dc76bc06848d0ee3129 Mon Sep 17 00:00:00 2001 From: bowser0000 Date: Thu, 28 Apr 2022 02:26:15 -0400 Subject: Fix custom colour replacing with colour codes User 6940 makes 940k auctions become white --- src/main/java/me/Danker/features/ColouredNames.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/main/java/me/Danker/features/ColouredNames.java b/src/main/java/me/Danker/features/ColouredNames.java index aad1ab1..90d722e 100644 --- a/src/main/java/me/Danker/features/ColouredNames.java +++ b/src/main/java/me/Danker/features/ColouredNames.java @@ -11,6 +11,7 @@ import net.minecraft.network.play.server.S45PacketTitle; import net.minecraft.util.ChatComponentText; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IChatComponent; +import net.minecraft.util.StringUtils; import net.minecraftforge.client.event.ClientChatReceivedEvent; import net.minecraftforge.client.event.RenderLivingEvent; import net.minecraftforge.event.entity.player.ItemTooltipEvent; @@ -53,7 +54,7 @@ public class ColouredNames { for (String user : users) { for (int i = 0; i < event.toolTip.size(); i++) { - if (event.toolTip.get(i).contains(user)) { + if (StringUtils.stripControlCodes(event.toolTip.get(i)).contains(user)) { event.toolTip.set(i, replaceName(event.toolTip.get(i), user, getColourFromName(user))); } } -- cgit From 827fb6fc502e1e7159d15c1decfa35968668bb6f Mon Sep 17 00:00:00 2001 From: bowser0000 Date: Thu, 28 Apr 2022 02:37:21 -0400 Subject: Add keybind for adding waypoint --- src/main/java/me/Danker/DankersSkyblockMod.java | 13 ++++--------- .../java/me/Danker/features/CrystalHollowWaypoints.java | 15 +++++++++++++++ .../CrystalHollowAddWaypointGui.java | 15 +++++++++++++++ 3 files changed, 34 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/main/java/me/Danker/DankersSkyblockMod.java b/src/main/java/me/Danker/DankersSkyblockMod.java index 2139549..1816a3c 100644 --- a/src/main/java/me/Danker/DankersSkyblockMod.java +++ b/src/main/java/me/Danker/DankersSkyblockMod.java @@ -70,7 +70,7 @@ public class DankersSkyblockMod { public static String titleText = ""; public static int tickAmount = 1; public static int repoTickAmount = 1; - public static KeyBinding[] keyBindings = new KeyBinding[3]; + public static KeyBinding[] keyBindings = new KeyBinding[4]; public static boolean usingLabymod = false; public static boolean usingOAM = false; static boolean OAMWarning = false; @@ -188,6 +188,7 @@ public class DankersSkyblockMod { keyBindings[0] = new KeyBinding("Open Maddox Menu", Keyboard.KEY_M, "Danker's Skyblock Mod"); keyBindings[1] = new KeyBinding("Regular Ability", Keyboard.KEY_NUMPAD4, "Danker's Skyblock Mod"); keyBindings[2] = new KeyBinding("Start/Stop Skill Tracker", Keyboard.KEY_NUMPAD5, "Danker's Skyblock Mod"); + keyBindings[3] = new KeyBinding("Create Waypoint", Keyboard.KEY_NUMPAD6, "Danker's Skyblock Mod"); for (KeyBinding keyBinding : keyBindings) { ClientRegistry.registerKeyBinding(keyBinding); @@ -457,14 +458,8 @@ public class DankersSkyblockMod { @SubscribeEvent public void onKey(KeyInputEvent event) { - if (!Utils.inSkyblock) return; - - EntityPlayerSP player = Minecraft.getMinecraft().thePlayer; - if (keyBindings[1].isPressed()) { - if (Utils.inDungeons) { - player.dropOneItem(true); - } - } + if (!Utils.inDungeons) return; + if (keyBindings[1].isPressed()) Minecraft.getMinecraft().thePlayer.dropOneItem(true); } @SubscribeEvent diff --git a/src/main/java/me/Danker/features/CrystalHollowWaypoints.java b/src/main/java/me/Danker/features/CrystalHollowWaypoints.java index 795c49c..a8ee0f9 100644 --- a/src/main/java/me/Danker/features/CrystalHollowWaypoints.java +++ b/src/main/java/me/Danker/features/CrystalHollowWaypoints.java @@ -2,10 +2,12 @@ package me.Danker.features; import me.Danker.DankersSkyblockMod; import me.Danker.commands.ToggleCommand; +import me.Danker.gui.crystalhollowwaypoints.CrystalHollowAddWaypointGui; import me.Danker.handlers.ScoreboardHandler; import me.Danker.utils.RenderUtils; import me.Danker.utils.Utils; import net.minecraft.client.Minecraft; +import net.minecraft.client.settings.KeyBinding; import net.minecraft.entity.item.EntityArmorStand; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.event.ClickEvent; @@ -15,6 +17,7 @@ import net.minecraftforge.client.event.ClientChatReceivedEvent; import net.minecraftforge.client.event.RenderWorldLastEvent; import net.minecraftforge.event.world.WorldEvent; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import net.minecraftforge.fml.common.gameevent.InputEvent; import net.minecraftforge.fml.common.gameevent.TickEvent; import java.util.ArrayList; @@ -177,6 +180,18 @@ public class CrystalHollowWaypoints { } } + @SubscribeEvent + public void onKey(InputEvent.KeyInputEvent event) { + if (!Utils.tabLocation.equals("Crystal Hollows")) return; + + if (DankersSkyblockMod.keyBindings[3].isPressed()) { + Minecraft mc = Minecraft.getMinecraft(); + EntityPlayer player = mc.thePlayer; + + mc.displayGuiScreen(new CrystalHollowAddWaypointGui((int) player.posX, (int) player.posY, (int) player.posZ)); + } + } + @SubscribeEvent public void onWorldRender(RenderWorldLastEvent event) { if (ToggleCommand.crystalHollowWaypoints && Utils.tabLocation.equals("Crystal Hollows")) { diff --git a/src/main/java/me/Danker/gui/crystalhollowwaypoints/CrystalHollowAddWaypointGui.java b/src/main/java/me/Danker/gui/crystalhollowwaypoints/CrystalHollowAddWaypointGui.java index df91f04..52c0fba 100644 --- a/src/main/java/me/Danker/gui/crystalhollowwaypoints/CrystalHollowAddWaypointGui.java +++ b/src/main/java/me/Danker/gui/crystalhollowwaypoints/CrystalHollowAddWaypointGui.java @@ -23,6 +23,18 @@ public class CrystalHollowAddWaypointGui extends GuiScreen { private GuiTextField z; private GuiButton add; + private int xPos = -1; + private int yPos = -1; + private int zPos = -1; + + public CrystalHollowAddWaypointGui() {} + + public CrystalHollowAddWaypointGui(int x, int y, int z) { + xPos = x; + yPos = y; + zPos = z; + } + @Override public boolean doesGuiPauseGame() { return false; @@ -49,10 +61,13 @@ public class CrystalHollowAddWaypointGui extends GuiScreen { name.setEnabled(true); x.setVisible(true); x.setEnabled(true); + if (xPos != -1) x.setText(xPos + ""); y.setVisible(true); y.setEnabled(true); + if (yPos != -1) y.setText(yPos + ""); z.setVisible(true); z.setEnabled(true); + if (zPos != -1) z.setText(zPos + ""); this.buttonList.add(cancel); this.buttonList.add(curPos); -- cgit From e20025121af75e505aa154f304339fab7beddf6e Mon Sep 17 00:00:00 2001 From: bowser0000 Date: Thu, 28 Apr 2022 03:22:39 -0400 Subject: Add new slayer drops Add furball to wolf tracker and hazmat enderman to enderman tracket Also make