aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/Danker/gui
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/me/Danker/gui')
-rw-r--r--src/main/java/me/Danker/gui/CustomMusicGui.java133
-rw-r--r--src/main/java/me/Danker/gui/DankerGui.java130
-rw-r--r--src/main/java/me/Danker/gui/DisplayGui.java128
-rw-r--r--src/main/java/me/Danker/gui/EditLocationsGui.java41
-rw-r--r--src/main/java/me/Danker/gui/ExperimentsGui.java3
-rw-r--r--src/main/java/me/Danker/gui/OnlySlayerGui.java162
-rw-r--r--src/main/java/me/Danker/gui/PuzzleSolversGui.java55
-rw-r--r--src/main/java/me/Danker/gui/SkillTrackerGui.java10
-rw-r--r--src/main/java/me/Danker/gui/WarningGui.java17
-rw-r--r--src/main/java/me/Danker/gui/alerts/AlertActionGui.java91
-rw-r--r--src/main/java/me/Danker/gui/alerts/AlertAddGui.java154
-rw-r--r--src/main/java/me/Danker/gui/alerts/AlertsGui.java103
-rw-r--r--src/main/java/me/Danker/gui/buttons/LocationButton.java15
-rw-r--r--src/main/java/me/Danker/gui/crystalhollowwaypoints/CrystalHollowAddWaypointGui.java118
-rw-r--r--src/main/java/me/Danker/gui/crystalhollowwaypoints/CrystalHollowWaypointActionGui.java93
-rw-r--r--src/main/java/me/Danker/gui/crystalhollowwaypoints/CrystalHollowWaypointsGui.java150
16 files changed, 1283 insertions, 120 deletions
diff --git a/src/main/java/me/Danker/gui/CustomMusicGui.java b/src/main/java/me/Danker/gui/CustomMusicGui.java
index 505bf34..98210f5 100644
--- a/src/main/java/me/Danker/gui/CustomMusicGui.java
+++ b/src/main/java/me/Danker/gui/CustomMusicGui.java
@@ -1,6 +1,5 @@
package me.Danker.gui;
-import me.Danker.DankersSkyblockMod;
import me.Danker.commands.ToggleCommand;
import me.Danker.features.CustomMusic;
import me.Danker.handlers.ConfigHandler;
@@ -12,11 +11,31 @@ import net.minecraft.client.gui.ScaledResolution;
public class CustomMusicGui extends GuiScreen {
+ private int page;
+
private GuiButton goBack;
+ private GuiButton backPage;
+ private GuiButton nextPage;
private GuiButton dungeonBossMusic;
private GuiButton bloodRoomMusic;
private GuiButton dungeonMusic;
+ private GuiButton hubMusic;
+ private GuiButton islandMusic;
+ private GuiButton dungeonHubMusic;
+ private GuiButton farmingIslandsMusic;
+ private GuiButton goldMineMusic;
+ private GuiButton deepCavernsMusic;
+ private GuiButton dwarvenMinesMusic;
+ private GuiButton crystalHollowsMusic;
+ private GuiButton spidersDenMusic;
+ private GuiButton crimsonIsleMusic;
+ private GuiButton endMusic;
+ private GuiButton parkMusic;
+
+ public CustomMusicGui(int page) {
+ this.page = page;
+ }
@Override
public boolean doesGuiPauseGame() {
@@ -32,13 +51,53 @@ public class CustomMusicGui extends GuiScreen {
int width = sr.getScaledWidth();
goBack = new GuiButton(0, 2, height - 30, 100, 20, "Go Back");
+ backPage = new GuiButton(0, width / 2 - 100, (int) (height * 0.8), 80, 20, "< Back");
+ nextPage = new GuiButton(0, width / 2 + 20, (int) (height * 0.8), 80, 20, "Next >");
+
dungeonMusic = new GuiButton(0, width / 2 - 100, (int) (height * 0.1), "Custom Dungeon Music: " + Utils.getColouredBoolean(ToggleCommand.dungeonMusic));
bloodRoomMusic = new GuiButton(0, width / 2 - 100, (int) (height * 0.2), "Custom Blood Room Music: " + Utils.getColouredBoolean(ToggleCommand.bloodRoomMusic));
dungeonBossMusic = new GuiButton(0, width / 2 - 100, (int) (height * 0.3), "Custom Dungeon Boss Music: " + Utils.getColouredBoolean(ToggleCommand.dungeonBossMusic));
+ hubMusic = new GuiButton(0, width / 2 - 100, (int) (height * 0.4), "Custom Hub Music: " + Utils.getColouredBoolean(ToggleCommand.hubMusic));
+ islandMusic = new GuiButton(0, width / 2 - 100, (int) (height * 0.5), "Custom Island Music: " + Utils.getColouredBoolean(ToggleCommand.islandMusic));
+ dungeonHubMusic = new GuiButton(0, width / 2 - 100, (int) (height * 0.6), "Custom Dungeon Hub Music: " + Utils.getColouredBoolean(ToggleCommand.dungeonHubMusic));
+ farmingIslandsMusic = new GuiButton(0, width / 2 - 100, (int) (height * 0.7), "Custom Farming Islands Music: " + Utils.getColouredBoolean(ToggleCommand.farmingIslandsMusic));
+ goldMineMusic = new GuiButton(0, width / 2 - 100, (int) (height * 0.1), "Custom Gold Mine Music: " + Utils.getColouredBoolean(ToggleCommand.goldMineMusic));
+ deepCavernsMusic = new GuiButton(0, width / 2 - 100, (int) (height * 0.2), "Custom Deep Caverns Music: " + Utils.getColouredBoolean(ToggleCommand.deepCavernsMusic));
+ dwarvenMinesMusic = new GuiButton(0, width / 2 - 100, (int) (height * 0.3), "Custom Dwarven Mines Music: " + Utils.getColouredBoolean(ToggleCommand.dwarvenMinesMusic));
+ crystalHollowsMusic = new GuiButton(0, width / 2 - 100, (int) (height * 0.4), "Custom Crystal Hollows Music: " + Utils.getColouredBoolean(ToggleCommand.crystalHollowsMusic));
+ spidersDenMusic = new GuiButton(0, width / 2 - 100, (int) (height * 0.5), "Custom Spider's Den Music: " + Utils.getColouredBoolean(ToggleCommand.spidersDenMusic));
+ crimsonIsleMusic = new GuiButton(0, width / 2 - 100, (int) (height * 0.6), "Custom Crimson Isle Music: " + Utils.getColouredBoolean(ToggleCommand.crimsonIsleMusic));
+ endMusic = new GuiButton(0, width / 2 - 100, (int) (height * 0.7), "Custom End Music: " + Utils.getColouredBoolean(ToggleCommand.endMusic));
+ parkMusic = new GuiButton(0, width / 2 - 100, (int) (height * 0.1), "Custom Park Music: " + Utils.getColouredBoolean(ToggleCommand.parkMusic));
+
+ switch (page) {
+ case 1:
+ this.buttonList.add(dungeonMusic);
+ this.buttonList.add(bloodRoomMusic);
+ this.buttonList.add(dungeonBossMusic);
+ this.buttonList.add(hubMusic);
+ this.buttonList.add(islandMusic);
+ this.buttonList.add(dungeonHubMusic);
+ this.buttonList.add(farmingIslandsMusic);
+ this.buttonList.add(nextPage);
+ break;
+ case 2:
+ this.buttonList.add(goldMineMusic);
+ this.buttonList.add(deepCavernsMusic);
+ this.buttonList.add(dwarvenMinesMusic);
+ this.buttonList.add(crystalHollowsMusic);
+ this.buttonList.add(spidersDenMusic);
+ this.buttonList.add(crimsonIsleMusic);
+ this.buttonList.add(endMusic);
+ this.buttonList.add(nextPage);
+ this.buttonList.add(backPage);
+ break;
+ case 3:
+ this.buttonList.add(parkMusic);
+ this.buttonList.add(backPage);
+ break;
+ }
- this.buttonList.add(dungeonMusic);
- this.buttonList.add(bloodRoomMusic);
- this.buttonList.add(dungeonBossMusic);
this.buttonList.add(goBack);
}
@@ -51,7 +110,11 @@ public class CustomMusicGui extends GuiScreen {
@Override
public void actionPerformed(GuiButton button) {
if (button == goBack) {
- DankersSkyblockMod.guiToOpen = "dankergui1";
+ mc.displayGuiScreen(new DankerGui(1, ""));
+ } else if (button == backPage) {
+ Minecraft.getMinecraft().displayGuiScreen(new CustomMusicGui(page - 1));
+ } else if (button == nextPage) {
+ Minecraft.getMinecraft().displayGuiScreen(new CustomMusicGui(page + 1));
} else if (button == dungeonBossMusic) {
ToggleCommand.dungeonBossMusic = !ToggleCommand.dungeonBossMusic;
CustomMusic.dungeonboss.stop();
@@ -67,6 +130,66 @@ public class CustomMusicGui extends GuiScreen {
CustomMusic.dungeon.stop();
ConfigHandler.writeBooleanConfig("toggles", "DungeonMusic", ToggleCommand.dungeonMusic);
dungeonMusic.displayString = "Custom Dungeon Music: " + Utils.getColouredBoolean(ToggleCommand.dungeonMusic);
+ } else if (button == hubMusic) {
+ ToggleCommand.hubMusic = !ToggleCommand.hubMusic;
+ CustomMusic.hub.stop();
+ ConfigHandler.writeBooleanConfig("toggles", "HubMusic", ToggleCommand.hubMusic);
+ hubMusic.displayString = "Custom Hub Music: " + Utils.getColouredBoolean(ToggleCommand.hubMusic);
+ } else if (button == islandMusic) {
+ ToggleCommand.islandMusic = !ToggleCommand.islandMusic;
+ CustomMusic.island.stop();
+ ConfigHandler.writeBooleanConfig("toggles", "IslandMusic", ToggleCommand.islandMusic);
+ islandMusic.displayString = "Custom Island Music: " + Utils.getColouredBoolean(ToggleCommand.islandMusic);
+ } else if (button == dungeonHubMusic) {
+ ToggleCommand.dungeonHubMusic = !ToggleCommand.dungeonHubMusic;
+ CustomMusic.dungeonHub.stop();
+ ConfigHandler.writeBooleanConfig("toggles", "DungeonHubMusic", ToggleCommand.dungeonHubMusic);
+ dungeonHubMusic.displayString = "Custom Dungeon Hub Music: " + Utils.getColouredBoolean(ToggleCommand.dungeonHubMusic);
+ } else if (button == farmingIslandsMusic) {
+ ToggleCommand.farmingIslandsMusic = !ToggleCommand.farmingIslandsMusic;
+ CustomMusic.farmingIslands.stop();
+ ConfigHandler.writeBooleanConfig("toggles", "FarmingIslandsMusic", ToggleCommand.farmingIslandsMusic);
+ farmingIslandsMusic.displayString = "Custom Farming Islands Music: " + Utils.getColouredBoolean(ToggleCommand.farmingIslandsMusic);
+ } else if (button == goldMineMusic) {
+ ToggleCommand.goldMineMusic = !ToggleCommand.goldMineMusic;
+ CustomMusic.goldMine.stop();
+ ConfigHandler.writeBooleanConfig("toggles", "GoldMineMusic", ToggleCommand.goldMineMusic);
+ goldMineMusic.displayString = "Custom Gold Mine Music: " + Utils.getColouredBoolean(ToggleCommand.goldMineMusic);
+ } else if (button == deepCavernsMusic) {
+ ToggleCommand.deepCavernsMusic = !ToggleCommand.deepCavernsMusic;
+ CustomMusic.deepCaverns.stop();
+ ConfigHandler.writeBooleanConfig("toggles", "DeepCavernsMusic", ToggleCommand.deepCavernsMusic);
+ deepCavernsMusic.displayString = "Custom Deep Caverns Music: " + Utils.getColouredBoolean(ToggleCommand.deepCavernsMusic);
+ } else if (button == dwarvenMinesMusic) {
+ ToggleCommand.dwarvenMinesMusic = !ToggleCommand.dwarvenMinesMusic;
+ CustomMusic.dwarvenMines.stop();
+ ConfigHandler.writeBooleanConfig("toggles", "DwarvenMinesMusic", ToggleCommand.dwarvenMinesMusic);
+ dwarvenMinesMusic.displayString = "Custom Dwarven Mines Music: " + Utils.getColouredBoolean(ToggleCommand.dwarvenMinesMusic);
+ } else if (button == crystalHollowsMusic) {
+ ToggleCommand.crystalHollowsMusic = !ToggleCommand.crystalHollowsMusic;
+ CustomMusic.crystalHollows.stop();
+ ConfigHandler.writeBooleanConfig("toggles", "CrystalHollowsMusic", ToggleCommand.crystalHollowsMusic);
+ crystalHollowsMusic.displayString = "Custom Crystal Hollows Music: " + Utils.getColouredBoolean(ToggleCommand.crystalHollowsMusic);
+ } else if (button == spidersDenMusic) {
+ ToggleCommand.spidersDenMusic = !ToggleCommand.spidersDenMusic;
+ CustomMusic.spidersDen.stop();
+ ConfigHandler.writeBooleanConfig("toggles", "SpidersDenMusic", ToggleCommand.spidersDenMusic);
+ spidersDenMusic.displayString = "Custom Spider's Den Music: " + Utils.getColouredBoolean(ToggleCommand.spidersDenMusic);
+ } else if (button == crimsonIsleMusic) {
+ ToggleCommand.crimsonIsleMusic = !ToggleCommand.crimsonIsleMusic;
+ CustomMusic.crimsonIsle.stop();
+ ConfigHandler.writeBooleanConfig("toggles", "BlazingFortressMusic", ToggleCommand.crimsonIsleMusic);
+ crimsonIsleMusic.displayString = "Custom Crimson Isle Music: " + Utils.getColouredBoolean(ToggleCommand.crimsonIsleMusic);
+ } else if (button == endMusic) {
+ ToggleCommand.endMusic = !ToggleCommand.endMusic;
+ CustomMusic.end.stop();
+ ConfigHandler.writeBooleanConfig("toggles", "EndMusic", ToggleCommand.endMusic);
+ endMusic.displayString = "Custom End Music: " + Utils.getColouredBoolean(ToggleCommand.endMusic);
+ } else if (button == parkMusic) {
+ ToggleCommand.parkMusic = !ToggleCommand.parkMusic;
+ CustomMusic.park.stop();
+ ConfigHandler.writeBooleanConfig("toggles", "ParkMusic", ToggleCommand.parkMusic);
+ parkMusic.displayString = "Custom Park Music: " + Utils.getColouredBoolean(ToggleCommand.parkMusic);
}
}
diff --git a/src/main/java/me/Danker/gui/DankerGui.java b/src/main/java/me/Danker/gui/DankerGui.java
index 11e8bfa..95c0629 100644
--- a/src/main/java/me/Danker/gui/DankerGui.java
+++ b/src/main/java/me/Danker/gui/DankerGui.java
@@ -1,10 +1,11 @@
package me.Danker.gui;
-import me.Danker.DankersSkyblockMod;
import me.Danker.commands.ToggleCommand;
+import me.Danker.gui.alerts.AlertsGui;
import me.Danker.gui.buttons.FeatureButton;
+import me.Danker.gui.crystalhollowwaypoints.CrystalHollowWaypointsGui;
import me.Danker.handlers.ConfigHandler;
-import me.Danker.handlers.TextRenderer;
+import me.Danker.utils.RenderUtils;
import me.Danker.utils.Utils;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiButton;
@@ -24,9 +25,9 @@ import java.util.List;
public class DankerGui extends GuiScreen {
- private int page;
- private List<GuiButton> allButtons = new ArrayList<>();
- private List<GuiButton> foundButtons = new ArrayList<>();
+ private final int page;
+ private final List<GuiButton> allButtons = new ArrayList<>();
+ private final List<GuiButton> foundButtons = new ArrayList<>();
String initSearchText;
private GuiButton closeGUI;
@@ -38,15 +39,19 @@ public class DankerGui extends GuiScreen {
private GuiTextField search;
private GuiButton changeDisplay;
+ private GuiButton onlySlayer;
private GuiButton puzzleSolvers;
private GuiButton experimentationTableSolvers;
private GuiButton skillTracker;
private GuiButton customMusic;
+ private GuiButton crystalHollowWaypoints;
+ private GuiButton alerts;
// Toggles
private GuiButton gparty;
private GuiButton coords;
private GuiButton goldenEnch;
private GuiButton slayerCount;
+ private GuiButton masterSPlusDisplay;
private GuiButton rngesusAlert;
private GuiButton splitFishing;
private GuiButton chatMaddox;
@@ -68,6 +73,22 @@ public class DankerGui extends GuiScreen {
private GuiButton giantHP;
private GuiButton hidePetCandy;
private GuiButton highlightCommissions;
+ private GuiButton customColouredNames;
+ private GuiButton endOfFarmAlert;
+ private GuiButton gemstoneLore;
+ private GuiButton autoAcceptReparty;
+ private GuiButton abilityCooldown;
+ private GuiButton dungeonTimer;
+ private GuiButton lowHealthNotify;
+ private GuiButton lividSolver;
+ private GuiButton stopSalvageStarred;
+ private GuiButton watcherReadyMessage;
+ private GuiButton flowerWeapons;
+ private GuiButton necronNotifications;
+ private GuiButton bonzoTimer;
+ private GuiButton dungeonScore;
+ private GuiButton hideArmour;
+ private GuiButton autoJoinSkyblock;
// Chat Messages
private GuiButton sceptreMessages;
private GuiButton midasStaffMessages;
@@ -76,14 +97,6 @@ public class DankerGui extends GuiScreen {
private GuiButton cooldownMessages;
private GuiButton manaMessages;
private GuiButton killComboMessages;
- // Dungeons
- private GuiButton dungeonTimer;
- private GuiButton lowHealthNotify;
- private GuiButton lividSolver;
- private GuiButton stopSalvageStarred;
- private GuiButton watcherReadyMessage;
- private GuiButton necronNotifications;
- private GuiButton bonzoTimer;
public DankerGui(int page, String searchText) {
this.page = page;
@@ -113,10 +126,13 @@ public class DankerGui extends GuiScreen {
search = new GuiTextField(0, this.fontRendererObj, width - 202, 5, 200, 20);
changeDisplay = new GuiButton(0, 0, 0, "Change Display Settings");
+ onlySlayer = new GuiButton(0, 0, 0, "Set Slayer Quest");
puzzleSolvers = new GuiButton(0, 0, 0, "Toggle Dungeons Puzzle Solvers");
experimentationTableSolvers = new GuiButton(0, 0, 0, "Toggle Experimentation Table Solvers");
skillTracker = new GuiButton(0, 0, 0, "Toggle Skill XP/Hour Tracking");
customMusic = new GuiButton(0, 0, 0, "Custom Music");
+ crystalHollowWaypoints = new GuiButton(0, 0, 0, "Crystal Hollows Waypoints");
+ alerts = new GuiButton(0, 0, 0, "Alerts");
outlineText = new FeatureButton("Outline Displayed Text: " + Utils.getColouredBoolean(ToggleCommand.outlineTextToggled), "Adds bold outline to on-screen text.");
pickBlock = new FeatureButton("Auto-Swap to Pick Block: " + Utils.getColouredBoolean(ToggleCommand.swapToPickBlockToggled), "Automatically changes left clicks to middle clicks.\nHelpful when lagging.");
coords = new FeatureButton("Coordinate/Angle Display: " + Utils.getColouredBoolean(ToggleCommand.coordsToggled), "Displays coordinates and angle.");
@@ -124,6 +140,7 @@ public class DankerGui extends GuiScreen {
cakeTimer = new FeatureButton("Cake Timer: " + Utils.getColouredBoolean(ToggleCommand.cakeTimerToggled), "Displays time until century cake buffs run out.");
skill50Display = new FeatureButton("Display Progress To Skill Level 50: " + Utils.getColouredBoolean(ToggleCommand.skill50DisplayToggled), "Display total progress to max skill level.");
slayerCount = new FeatureButton("Count Total 20% Drops: " + Utils.getColouredBoolean(ToggleCommand.slayerCountTotal), "Counts times dropped instead of amount dropped.\nE.x. Hamster Wheels: 40 -> Hamster Wheels: 10 times.");
+ masterSPlusDisplay = new FeatureButton("Display MM S+ Runs: " + Utils.getColouredBoolean(ToggleCommand.masterSPlusDisplay), "Dispay Master Mode S+ runs instead of S runs.");
spiritBearAlert = new FeatureButton("Spirit Bear Spawn Alerts: " + Utils.getColouredBoolean(ToggleCommand.spiritBearAlerts), "Alert when Spirit Bear spawns.");
sceptreMessages = new FeatureButton("Spirit Sceptre Messages: " + Utils.getColouredBoolean(ToggleCommand.sceptreMessages), "Turn " + EnumChatFormatting.RED + "off" + EnumChatFormatting.RESET + " to hide Spirit Sceptre messages.");
midasStaffMessages = new FeatureButton("Midas Staff Messages: " + Utils.getColouredBoolean(ToggleCommand.midasStaffMessages), "Turn " + EnumChatFormatting.RED + "off" + EnumChatFormatting.RESET + " to hide Midas Staff messages.");
@@ -144,8 +161,9 @@ public class DankerGui extends GuiScreen {
dungeonTimer = new FeatureButton("Display Dungeon Timers: " + Utils.getColouredBoolean(ToggleCommand.dungeonTimerToggled), "Displays timing of certain dungeon objectives and other information.");
stopSalvageStarred = new FeatureButton("Stop Salvaging Starred Items: " + Utils.getColouredBoolean(ToggleCommand.stopSalvageStarredToggled), "Blocks salvaging starred items.");
watcherReadyMessage = new FeatureButton("Display Watcher Ready Message: " + Utils.getColouredBoolean(ToggleCommand.watcherReadyToggled), "Alerts when Watcher finishes spawning mobs.");
+ flowerWeapons = new FeatureButton("Prevent Placing FoT/Spirit Sceptre: " + Utils.getColouredBoolean(ToggleCommand.flowerWeaponsToggled), "Blocks placing Flower of Truth or Spirit Sceptre.");
notifySlayerSlain = new FeatureButton("Notify when Slayer Slain: " + Utils.getColouredBoolean(ToggleCommand.notifySlayerSlainToggled), "Alerts when slayer boss has been slain.");
- necronNotifications = new FeatureButton("Necron Phase Notifications: " + Utils.getColouredBoolean(ToggleCommand.necronNotificationsToggled), "Creates alert on different phases of the Necron fight.");
+ necronNotifications = new FeatureButton("Floor 7 Phase Notifications: " + Utils.getColouredBoolean(ToggleCommand.necronNotificationsToggled), "Creates alert on different phases of the floor 7 fight.");
bonzoTimer = new FeatureButton("Bonzo's Mask Timer: " + Utils.getColouredBoolean(ToggleCommand.bonzoTimerToggled), "Displays cooldown of Bonzo Mask ability.");
autoSkillTracker = new FeatureButton("Auto Start/Stop Skill Tracker: " + Utils.getColouredBoolean(ToggleCommand.autoSkillTrackerToggled), "Automatically pauses skill tracker when opening a gui.");
melodyTooltips = new FeatureButton("Hide tooltips in Melody's Harp: " + Utils.getColouredBoolean(ToggleCommand.melodyTooltips), "Hides tooltips in Melody's Harp.");
@@ -156,13 +174,24 @@ public class DankerGui extends GuiScreen {
giantHP = new FeatureButton("Display Giant HP: " + Utils.getColouredBoolean(ToggleCommand.giantHP), "Displays health of Sadan's giants during F6 bossfight and F7 blood room.");
hidePetCandy = new FeatureButton("Hide Pet Candy: " + Utils.getColouredBoolean(ToggleCommand.hidePetCandy), "Hide pet candy in pet tooltips.");
highlightCommissions = new FeatureButton("Highlight Commissions: " + Utils.getColouredBoolean(ToggleCommand.highlightCommissions), "Show which commissions are completed.");
+ customColouredNames = new FeatureButton("Custom Name Colors: " + Utils.getColouredBoolean(ToggleCommand.customColouredNames), "Replaces some player's usernames with a custom color.");
+ endOfFarmAlert = new FeatureButton("Alert When Reaching End of Farm: " + Utils.getColouredBoolean(ToggleCommand.endOfFarmAlert), "Alerts when you go past coords set with /dsmfarmlength.");
+ gemstoneLore = new FeatureButton("Applied Gemstones in Lore: " + Utils.getColouredBoolean(ToggleCommand.gemstoneLore), "Adds applied gemstones to item tooltip.");
+ autoAcceptReparty = new FeatureButton("Auto Accept Reparty: " + Utils.getColouredBoolean(ToggleCommand.autoAcceptReparty), "Automatically rejoins parties when disbanded and invited.");
+ abilityCooldown = new FeatureButton("Ability Cooldowns: " + Utils.getColouredBoolean(ToggleCommand.abilityCooldowns), "Displays ability cooldowns.");
+ 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.");
allButtons.clear();
allButtons.add(changeDisplay);
+ allButtons.add(onlySlayer);
allButtons.add(puzzleSolvers);
allButtons.add(experimentationTableSolvers);
allButtons.add(skillTracker);
allButtons.add(customMusic);
+ allButtons.add(crystalHollowWaypoints);
+ allButtons.add(alerts);
allButtons.add(outlineText);
allButtons.add(pickBlock);
allButtons.add(coords);
@@ -170,6 +199,7 @@ public class DankerGui extends GuiScreen {
allButtons.add(cakeTimer);
allButtons.add(skill50Display);
allButtons.add(slayerCount);
+ allButtons.add(masterSPlusDisplay);
allButtons.add(spiritBearAlert);
allButtons.add(sceptreMessages);
allButtons.add(midasStaffMessages);
@@ -190,6 +220,7 @@ public class DankerGui extends GuiScreen {
allButtons.add(dungeonTimer);
allButtons.add(stopSalvageStarred);
allButtons.add(watcherReadyMessage);
+ allButtons.add(flowerWeapons);
allButtons.add(notifySlayerSlain);
allButtons.add(necronNotifications);
allButtons.add(bonzoTimer);
@@ -202,6 +233,14 @@ public class DankerGui extends GuiScreen {
allButtons.add(giantHP);
allButtons.add(hidePetCandy);
allButtons.add(highlightCommissions);
+ allButtons.add(customColouredNames);
+ allButtons.add(endOfFarmAlert);
+ allButtons.add(gemstoneLore);
+ allButtons.add(autoAcceptReparty);
+ allButtons.add(abilityCooldown);
+ allButtons.add(dungeonScore);
+ allButtons.add(hideArmour);
+ allButtons.add(autoJoinSkyblock);
search.setText(initSearchText);
search.setVisible(true);
@@ -247,8 +286,7 @@ public class DankerGui extends GuiScreen {
super.drawScreen(mouseX, mouseY, partialTicks);
String pageText = "Page: " + page + "/" + (int) Math.ceil(foundButtons.size() / 7D);
- int pageWidth = mc.fontRendererObj.getStringWidth(pageText);
- new TextRenderer(mc, pageText, width / 2 - pageWidth / 2, 10, 1D);
+ RenderUtils.drawCenteredText(pageText, width, 10, 1D);
for (GuiButton button : this.buttonList) {
if (button instanceof FeatureButton && button.isMouseOver()) {
@@ -269,7 +307,7 @@ public class DankerGui extends GuiScreen {
} else if (button == backPage) {
mc.displayGuiScreen(new DankerGui(page - 1, search.getText()));
} else if (button == editLocations) {
- DankersSkyblockMod.guiToOpen = "editlocations";
+ mc.displayGuiScreen(new EditLocationsGui());
} else if (button == githubLink) {
try {
Desktop.getDesktop().browse(new URI("https://github.com/bowser0000/SkyblockMod"));
@@ -283,15 +321,21 @@ public class DankerGui extends GuiScreen {
ex.printStackTrace();
}
} else if (button == changeDisplay) {
- DankersSkyblockMod.guiToOpen = "displaygui";
+ mc.displayGuiScreen(new DisplayGui());
+ } else if (button == onlySlayer) {
+ mc.displayGuiScreen(new OnlySlayerGui());
} else if (button == puzzleSolvers) {
- DankersSkyblockMod.guiToOpen = "puzzlesolvers";
+ mc.displayGuiScreen(new PuzzleSolversGui(1));
} else if (button == experimentationTableSolvers) {
- DankersSkyblockMod.guiToOpen = "experimentsolvers";
+ mc.displayGuiScreen(new ExperimentsGui());
} else if (button == skillTracker) {
- DankersSkyblockMod.guiToOpen = "skilltracker";
+ mc.displayGuiScreen(new SkillTrackerGui());
} else if (button == customMusic) {
- DankersSkyblockMod.guiToOpen = "custommusic";
+ mc.displayGuiScreen(new CustomMusicGui(1));
+ } else if (button == crystalHollowWaypoints) {
+ mc.displayGuiScreen(new CrystalHollowWaypointsGui(1));
+ } else if (button == alerts) {
+ mc.displayGuiScreen(new AlertsGui(1));
} else if (button == outlineText) {
ToggleCommand.outlineTextToggled = !ToggleCommand.outlineTextToggled;
ConfigHandler.writeBooleanConfig("toggles", "OutlineText", ToggleCommand.outlineTextToggled);
@@ -399,7 +443,7 @@ public class DankerGui extends GuiScreen {
} else if (button == necronNotifications) {
ToggleCommand.necronNotificationsToggled = !ToggleCommand.necronNotificationsToggled;
ConfigHandler.writeBooleanConfig("toggles", "NecronNotifications", ToggleCommand.necronNotificationsToggled);
- necronNotifications.displayString = "Necron Phase Notifications: " + Utils.getColouredBoolean(ToggleCommand.necronNotificationsToggled);
+ necronNotifications.displayString = "Floor 7 Phase Notifications: " + Utils.getColouredBoolean(ToggleCommand.necronNotificationsToggled);
} else if (button == bonzoTimer) {
ToggleCommand.bonzoTimerToggled = !ToggleCommand.bonzoTimerToggled;
ConfigHandler.writeBooleanConfig("toggles", "BonzoTimer", ToggleCommand.bonzoTimerToggled);
@@ -408,6 +452,10 @@ public class DankerGui extends GuiScreen {
ToggleCommand.swapToPickBlockToggled = !ToggleCommand.swapToPickBlockToggled;
ConfigHandler.writeBooleanConfig("toggles", "PickBlock", ToggleCommand.swapToPickBlockToggled);
pickBlock.displayString = "Auto-Swap to Pick Block: " + Utils.getColouredBoolean(ToggleCommand.swapToPickBlockToggled);
+ } else if (button == flowerWeapons) {
+ ToggleCommand.flowerWeaponsToggled = !ToggleCommand.flowerWeaponsToggled;
+ ConfigHandler.writeBooleanConfig("toggles", "FlowerWeapons", ToggleCommand.flowerWeaponsToggled);
+ flowerWeapons.displayString = "Prevent Placing FoT/Spirit Sceptre: " + Utils.getColouredBoolean(ToggleCommand.flowerWeaponsToggled);
} else if (button == autoSkillTracker) {
ToggleCommand.autoSkillTrackerToggled = !ToggleCommand.autoSkillTrackerToggled;
ConfigHandler.writeBooleanConfig("toggles", "AutoSkillTracker", ToggleCommand.autoSkillTrackerToggled);
@@ -448,6 +496,42 @@ public class DankerGui extends GuiScreen {
ToggleCommand.highlightCommissions = !ToggleCommand.highlightCommissions;
ConfigHandler.writeBooleanConfig("toggles", "HighlightCommissions", ToggleCommand.highlightCommissions);
highlightCommissions.displayString = "Highlight Commissions: " + Utils.getColouredBoolean(ToggleCommand.highlightCommissions);
+ } else if (button == customColouredNames) {
+ ToggleCommand.customColouredNames = !ToggleCommand.customColouredNames;
+ ConfigHandler.writeBooleanConfig("toggles", "CustomColouredNames", ToggleCommand.customColouredNames);
+ customColouredNames.displayString = "Custom Name Colors: " + Utils.getColouredBoolean(ToggleCommand.customColouredNames);
+ } else if (button == endOfFarmAlert) {
+ ToggleCommand.endOfFarmAlert = !ToggleCommand.endOfFarmAlert;
+ ConfigHandler.writeBooleanConfig("toggles", "EndOfFarmAlert", ToggleCommand.endOfFarmAlert);
+ endOfFarmAlert.displayString = "Alert When Reaching End of Farm: " + Utils.getColouredBoolean(ToggleCommand.endOfFarmAlert);
+ } else if (button == gemstoneLore) {
+ ToggleCommand.gemstoneLore = !ToggleCommand.gemstoneLore;
+ ConfigHandler.writeBooleanConfig("toggles", "GemstoneLore", ToggleCommand.gemstoneLore);
+ gemstoneLore.displayString = "Applied Gemstones in Lore: " + Utils.getColouredBoolean(ToggleCommand.gemstoneLore);
+ } else if (button == autoAcceptReparty) {
+ ToggleCommand.autoAcceptReparty = !ToggleCommand.autoAcceptReparty;
+ ConfigHandler.writeBooleanConfig("toggles", "AutoAcceptReparty", ToggleCommand.autoAcceptReparty);
+ autoAcceptReparty.displayString = "Auto Accept Reparty: " + Utils.getColouredBoolean(ToggleCommand.autoAcceptReparty);
+ } else if (button == abilityCooldown) {
+ ToggleCommand.abilityCooldowns = !ToggleCommand.abilityCooldowns;
+ ConfigHandler.writeBooleanConfig("toggles", "AbilityCooldowns", ToggleCommand.abilityCooldowns);
+ abilityCooldown.displayString = "Ability Cooldowns: " + Utils.getColouredBoolean(ToggleCommand.abilityCooldowns);
+ } else if (button == dungeonScore) {
+ ToggleCommand.dungeonScore = !ToggleCommand.dungeonScore;
+ ConfigHandler.writeBooleanConfig("toggles", "DungeonScore", ToggleCommand.dungeonScore);
+ dungeonScore.displayString = "Dungeon Score Display: " + Utils.getColouredBoolean(ToggleCommand.dungeonScore);
+ } else if (button == masterSPlusDisplay) {
+ ToggleCommand.masterSPlusDisplay = !ToggleCommand.masterSPlusDisplay;
+ ConfigHandler.writeBooleanConfig("toggles", "MasterSPlusDisplay", ToggleCommand.masterSPlusDisplay);
+ masterSPlusDisplay.displayString = "Display MM S+ Runs: " + Utils.getColouredBoolean(ToggleCommand.masterSPlusDisplay);
+ } else if (button == hideArmour) {
+ ToggleCommand.hideArmour = !ToggleCommand.hideArmour;
+ ConfigHandler.writeBooleanConfig("toggles", "HideArmour", ToggleCommand.hideArmour);
+ hideArmour.displayString = "Hide Player Armour: " + Utils.getColouredBoolean(ToggleCommand.hideArmour);
+ } else if (button == autoJoinSkyblock) {
+ ToggleCommand.autoJoinSkyblock = !ToggleCommand.autoJoinSkyblock;
+ ConfigHandler.writeBooleanConfig("toggles", "AutoJoinSkyblock", ToggleCommand.autoJoinSkyblock);
+ autoJoinSkyblock.displayString = "Automatically Join Skyblock: " + Utils.getColouredBoolean(ToggleCommand.autoJoinSkyblock);
}
}
diff --git a/src/main/java/me/Danker/gui/DisplayGui.java b/src/main/java/me/Danker/gui/DisplayGui.java
index 38459ee..b8be3d6 100644
--- a/src/main/java/me/Danker/gui/DisplayGui.java
+++ b/src/main/java/me/Danker/gui/DisplayGui.java
@@ -1,9 +1,8 @@
package me.Danker.gui;
-import me.Danker.DankersSkyblockMod;
import me.Danker.features.loot.LootDisplay;
import me.Danker.handlers.ConfigHandler;
-import me.Danker.handlers.TextRenderer;
+import me.Danker.utils.RenderUtils;
import me.Danker.utils.Utils;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiButton;
@@ -20,12 +19,15 @@ public class DisplayGui extends GuiScreen {
private GuiButton zombie;
private GuiButton spider;
private GuiButton wolf;
+ private GuiButton enderman;
+ private GuiButton blaze;
private GuiButton auto;
private GuiButton fishing;
private GuiButton fishingWinter;
private GuiButton fishingFestival;
private GuiButton fishingSpooky;
- private GuiButton mythological;
+ private GuiButton fishingCH;
+ private GuiButton fishingLava;
private GuiButton catacombsF1;
private GuiButton catacombsF2;
private GuiButton catacombsF3;
@@ -33,6 +35,8 @@ public class DisplayGui extends GuiScreen {
private GuiButton catacombsF5;
private GuiButton catacombsF6;
private GuiButton catacombsF7;
+ private GuiButton catacombsMM;
+ private GuiButton mythological;
private GuiButton ghost;
@Override
@@ -52,22 +56,27 @@ public class DisplayGui extends GuiScreen {
showSession = new GuiButton(0, width / 2 - 100, (int) (height * 0.1), "Current Session Only: " + Utils.getColouredBoolean(addSession));
off = new GuiButton(0, width / 2 - 210, (int) (height * 0.2), "Off");
auto = new GuiButton(0, width / 2 + 10, (int) (height * 0.2), "Auto");
- zombie = new GuiButton(0, width / 2 - 190, (int) (height * 0.3), 110, 20, "Zombie");
- spider = new GuiButton(0, width / 2 - 55, (int) (height * 0.3), 110, 20, "Spider");
- wolf = new GuiButton(0, width / 2 + 75, (int) (height * 0.3), 110, 20, "Wolf");
- fishing = new GuiButton(0, width / 2 - 230, (int) (height * 0.4), 100, 20, "Fishing");
- fishingWinter = new GuiButton(0, width / 2 - 110, (int) (height * 0.4), 100, 20, "Fishing Winter");
- fishingFestival = new GuiButton(0, width / 2 + 10, (int) (height * 0.4), 100, 20, "Fishing Festival");
- fishingSpooky = new GuiButton(0, width / 2 + 130, (int) (height * 0.4), 100, 20, "Fishing Spooky");
- mythological = new GuiButton(0, width / 2 - 100, (int) (height * 0.5), 95, 20, "Mythological");
- ghost = new GuiButton(0, width / 2 + 5, (int) (height * 0.5), 95, 20, "Ghost");
- catacombsF1 = new GuiButton(0, width / 2 - 205, (int) (height * 0.65), 50, 20, "F1");
- catacombsF2 = new GuiButton(0, width / 2 - 145, (int) (height * 0.65), 50, 20, "F2");
- catacombsF3 = new GuiButton(0, width / 2 - 85, (int) (height * 0.65), 50, 20, "F3");
- catacombsF4 = new GuiButton(0, width / 2 - 25, (int) (height * 0.65), 50, 20, "F4");
- catacombsF5 = new GuiButton(0, width / 2 + 35, (int) (height * 0.65), 50, 20, "F5");
- catacombsF6 = new GuiButton(0, width / 2 + 95, (int) (height * 0.65), 50, 20, "F6");
- catacombsF7 = new GuiButton(0, width / 2 + 155, (int) (height * 0.65), 50, 20, "F7");
+ zombie = new GuiButton(0, width / 2 - 270, (int) (height * 0.35), 100, 20, "Zombie");
+ spider = new GuiButton(0, width / 2 - 160, (int) (height * 0.35), 100, 20, "Spider");
+ wolf = new GuiButton(0, width / 2 - 50, (int) (height * 0.35), 100, 20, "Wolf");
+ enderman = new GuiButton(0, width / 2 + 60, (int) (height * 0.35), 100, 20, "Enderman");
+ blaze = new GuiButton(0, width / 2 + 170, (int) (height * 0.35), 100, 20, "Blaze");
+ fishing = new GuiButton(0, width / 2 - 295, (int) (height * 0.5), 90, 20, "Fishing");
+ fishingWinter = new GuiButton(0, width / 2 - 195, (int) (height * 0.5), 90, 20, "Fishing Winter");
+ fishingFestival = new GuiButton(0, width / 2 - 95, (int) (height * 0.5), 90, 20, "Fishing Festival");
+ fishingSpooky = new GuiButton(0, width / 2 + 5, (int) (height * 0.5), 90, 20, "Fishing Spooky");
+ fishingCH = new GuiButton(0, width / 2 + 105, (int) (height * 0.5), 90, 20, "CH Fishing");
+ fishingLava = new GuiButton(0, width / 2 + 205, (int) (height * 0.5), 90, 20, "Lava Fishing");
+ catacombsF1 = new GuiButton(0, width / 2 - 235, (int) (height * 0.65), 50, 20, "F1");
+ catacombsF2 = new GuiButton(0, width / 2 - 175, (int) (height * 0.65), 50, 20, "F2");
+ catacombsF3 = new GuiButton(0, width / 2 - 115, (int) (height * 0.65), 50, 20, "F3");
+ catacombsF4 = new GuiButton(0, width / 2 - 55, (int) (height * 0.65), 50, 20, "F4");
+ catacombsF5 = new GuiButton(0, width / 2 + 5, (int) (height * 0.65), 50, 20, "F5");
+ catacombsF6 = new GuiButton(0, width / 2 + 65, (int) (height * 0.65), 50, 20, "F6");
+ catacombsF7 = new GuiButton(0, width / 2 + 125, (int) (height * 0.65), 50, 20, "F7");
+ catacombsMM = new GuiButton(0, width / 2 + 185, (int) (height * 0.65), 50, 20, "MM");
+ mythological = new GuiButton(0, width / 2 - 100, (int) (height * 0.8), 95, 20, "Mythological");
+ ghost = new GuiButton(0, width / 2 + 5, (int) (height * 0.8), 95, 20, "Ghost");
this.buttonList.add(showSession);
this.buttonList.add(off);
@@ -75,11 +84,14 @@ public class DisplayGui extends GuiScreen {
this.buttonList.add(zombie);
this.buttonList.add(spider);
this.buttonList.add(wolf);
+ this.buttonList.add(enderman);
+ this.buttonList.add(blaze);
this.buttonList.add(fishing);
this.buttonList.add(fishingWinter);
this.buttonList.add(fishingFestival);
this.buttonList.add(fishingSpooky);
- this.buttonList.add(mythological);
+ this.buttonList.add(fishingCH);
+ this.buttonList.add(fishingLava);
this.buttonList.add(catacombsF1);
this.buttonList.add(catacombsF2);
this.buttonList.add(catacombsF3);
@@ -87,6 +99,8 @@ public class DisplayGui extends GuiScreen {
this.buttonList.add(catacombsF5);
this.buttonList.add(catacombsF6);
this.buttonList.add(catacombsF7);
+ this.buttonList.add(catacombsMM);
+ this.buttonList.add(mythological);
this.buttonList.add(ghost);
this.buttonList.add(goBack);
}
@@ -94,20 +108,13 @@ public class DisplayGui extends GuiScreen {
@Override
public void drawScreen(int mouseX, int mouseY, float partialTicks) {
this.drawDefaultBackground();
- Minecraft mc = Minecraft.getMinecraft();
-
- String displayText;
- if (LootDisplay.auto) {
- displayText = "Current Display: auto";
- } else {
- displayText = "Current Display: " + LootDisplay.display;
- }
- int displayWidth = mc.fontRendererObj.getStringWidth(displayText);
- new TextRenderer(mc, displayText, width / 2 - displayWidth / 2, 10, 1D);
-
- String catacombsTitleText = "Catacombs Dungeon";
- int catacombsTitleWidth = mc.fontRendererObj.getStringWidth(catacombsTitleText);
- new TextRenderer(mc, catacombsTitleText, width / 2 - catacombsTitleWidth / 2, (int) (height * 0.6), 1D);
+
+ String displayText = LootDisplay.auto ? "Current Display: auto" : "Current Display: " + LootDisplay.display;
+ RenderUtils.drawCenteredText(displayText, width, 10, 1D);
+ RenderUtils.drawCenteredText("Slayer", width, (int) (height * 0.3), 1D);
+ RenderUtils.drawCenteredText("Fishing", width, (int) (height * 0.45), 1D);
+ RenderUtils.drawCenteredText("Catacombs Dungeon", width, (int) (height * 0.6), 1D);
+ RenderUtils.drawCenteredText("Misc", width, (int) (height * 0.75), 1D);
super.drawScreen(mouseX, mouseY, partialTicks);
}
@@ -115,49 +122,60 @@ public class DisplayGui extends GuiScreen {
@Override
public void actionPerformed(GuiButton button) {
if (button == goBack) {
- DankersSkyblockMod.guiToOpen = "dankergui1";
+ mc.displayGuiScreen(new DankerGui(1, ""));
} else if (button == showSession) {
addSession = !addSession;
showSession.displayString = "Current Session Only: " + Utils.getColouredBoolean(addSession);
} else if (button == off) {
setDisplay("off", true);
} else if (button == zombie) {
- setDisplay("zombie", false);
+ setDisplay("zombie");
} else if (button == spider) {
- setDisplay("spider", false);
+ setDisplay("spider");
} else if (button == wolf) {
- setDisplay("wolf", false);
+ setDisplay("wolf");
+ } else if (button == enderman) {
+ setDisplay("enderman");
+ } else if (button == blaze) {
+ setDisplay("blaze");
} else if (button == auto) {
LootDisplay.auto = true;
ConfigHandler.writeBooleanConfig("misc", "autoDisplay", true);
} else if (button == fishing) {
- setDisplay("fishing", false);
+ setDisplay("fishing");
} else if (button == fishingWinter) {
- setDisplay("fishing_winter", false);
+ setDisplay("fishing_winter");
} else if (button == fishingFestival) {
- setDisplay("fishing_festival", false);
+ setDisplay("fishing_festival");
} else if (button == fishingSpooky) {
- setDisplay("fishing_spooky", false);
+ setDisplay("fishing_spooky");
+ } else if (button == fishingCH) {
+ setDisplay("fishing_ch");
+ } else if (button == fishingLava) {
+ setDisplay("fishing_lava");
} else if (button == mythological) {
- setDisplay("mythological", false);
+ setDisplay("mythological");
} else if (button == catacombsF1) {
- setDisplay("catacombs_floor_one", false);
+ setDisplay("catacombs_floor_one");
} else if (button == catacombsF2) {
- setDisplay("catacombs_floor_two", false);
+ setDisplay("catacombs_floor_two");
} else if (button == catacombsF3) {
- setDisplay("catacombs_floor_three", false);
+ setDisplay("catacombs_floor_three");
} else if (button == catacombsF4) {
- setDisplay("catacombs_floor_four", false);
+ setDisplay("catacombs_floor_four");
} else if (button == catacombsF5) {
- setDisplay("catacombs_floor_five", false);
+ setDisplay("catacombs_floor_five");
} else if (button == catacombsF6) {
- setDisplay("catacombs_floor_six", false);
+ setDisplay("catacombs_floor_six");
} else if (button == catacombsF7) {
- setDisplay("catacombs_floor_seven", false);
- } else if (button == ghost)
- setDisplay("ghost",false);
+ setDisplay("catacombs_floor_seven");
+ } else if (button == catacombsMM) {
+ setDisplay("catacombs_master");
+ } else if (button == ghost) {
+ setDisplay("ghost");
+ }
}
-
+
public void setDisplay(String display, boolean forceNoSession) {
if (!forceNoSession && addSession) display += "_session";
LootDisplay.auto = false;
@@ -165,5 +183,9 @@ public class DisplayGui extends GuiScreen {
ConfigHandler.writeBooleanConfig("misc", "autoDisplay", false);
ConfigHandler.writeStringConfig("misc", "display", display);
}
+
+ public void setDisplay(String display) {
+ setDisplay(display, false);
+ }
}
diff --git a/src/main/java/me/Danker/gui/EditLocationsGui.java b/src/main/java/me/Danker/gui/EditLocationsGui.java
index fed6ee9..b7f4b02 100644
--- a/src/main/java/me/Danker/gui/EditLocationsGui.java
+++ b/src/main/java/me/Danker/gui/EditLocationsGui.java
@@ -31,6 +31,8 @@ public class EditLocationsGui extends GuiScreen {
private LocationButton golemTimer;
private LocationButton teammatesInRadius;
private LocationButton giantHP;
+ private LocationButton abilityCooldown;
+ private LocationButton dungeonScore;
@Override
public boolean doesGuiPauseGame() {
@@ -99,6 +101,22 @@ public class EditLocationsGui extends GuiScreen {
EnumChatFormatting.LIGHT_PURPLE + "Jolly Pink Giant " + EnumChatFormatting.GREEN + "25M" + EnumChatFormatting.RED + "❤\n" +
EnumChatFormatting.DARK_AQUA + "The Diamond Giant " + EnumChatFormatting.GREEN + "25M" + EnumChatFormatting.RED + "❤";
+ String abilityCooldownText = EnumChatFormatting.GREEN + "Spirit Glide: " + EnumChatFormatting.YELLOW + "32.734s\n" +
+ EnumChatFormatting.GREEN + "Parley: " + EnumChatFormatting.YELLOW + "2.652s\n" +
+ EnumChatFormatting.GREEN + "Ice Spray: " + EnumChatFormatting.YELLOW + "1.429s";
+
+ String dungeonScoreText = " Secrets Found: " + EnumChatFormatting.GREEN + "100.0%\n" +
+ EnumChatFormatting.GOLD + "Skill:\n" +
+ EnumChatFormatting.GOLD + "Explore:\n" +
+ EnumChatFormatting.GOLD + "Speed:\n" +
+ EnumChatFormatting.GOLD + "Bonus:\n" +
+ EnumChatFormatting.GOLD + "Total:";
+ String dungeonScoreNums = "\n" +
+ EnumChatFormatting.GOLD + "100\n" +
+ EnumChatFormatting.GOLD + "100\n" +
+ EnumChatFormatting.GOLD + "100\n" +
+ EnumChatFormatting.GOLD + "5\n" +
+ EnumChatFormatting.GOLD + "305 " + EnumChatFormatting.GRAY + "(" + EnumChatFormatting.GOLD + "S+" + EnumChatFormatting.GRAY + ")";
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);
@@ -112,6 +130,8 @@ public class EditLocationsGui extends GuiScreen {
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);
+ dungeonScore = new LocationButton(MoveCommand.dungeonScoreXY[0], MoveCommand.dungeonScoreXY[1], ScaleCommand.dungeonScoreScale, dungeonScoreText, dungeonScoreNums, 80);
this.buttonList.add(coords);
this.buttonList.add(dungeonTimer);
@@ -125,6 +145,8 @@ public class EditLocationsGui extends GuiScreen {
this.buttonList.add(golemTimer);
this.buttonList.add(teammatesInRadius);
this.buttonList.add(giantHP);
+ this.buttonList.add(abilityCooldown);
+ this.buttonList.add(dungeonScore);
}
@Override
@@ -234,6 +256,17 @@ public class EditLocationsGui extends GuiScreen {
giantHP.xPosition = MoveCommand.giantHPXY[0];
giantHP.yPosition = MoveCommand.giantHPXY[1];
break;
+ case "abilityCooldown":
+ MoveCommand.abilityCooldownsXY[0] += xMoved;
+ MoveCommand.abilityCooldownsXY[1] += yMoved;
+ abilityCooldown.xPosition = MoveCommand.abilityCooldownsXY[0];
+ abilityCooldown.yPosition = MoveCommand.abilityCooldownsXY[1];
+ break;
+ case "dungeonScore":
+ MoveCommand.dungeonScoreXY[0] += xMoved;
+ MoveCommand.dungeonScoreXY[1] += yMoved;
+ dungeonScore.xPosition = MoveCommand.dungeonScoreXY[0];
+ dungeonScore.yPosition = MoveCommand.dungeonScoreXY[1];
}
this.buttonList.clear();
initGui();
@@ -270,6 +303,10 @@ public class EditLocationsGui extends GuiScreen {
moving = "teammatesInRadius";
} else if (button == giantHP) {
moving = "giantHP";
+ } else if (button == abilityCooldown) {
+ moving = "abilityCooldown";
+ } else if (button == dungeonScore) {
+ moving = "dungeonScore";
}
}
}
@@ -302,6 +339,10 @@ public class EditLocationsGui extends GuiScreen {
ConfigHandler.writeIntConfig("locations", "teammatesInRadiusY", MoveCommand.teammatesInRadiusXY[1]);
ConfigHandler.writeIntConfig("locations", "giantHPX", MoveCommand.giantHPXY[0]);
ConfigHandler.writeIntConfig("locations", "giantHPY", MoveCommand.giantHPXY[1]);
+ ConfigHandler.writeIntConfig("locations", "abilityCooldownsX", MoveCommand.abilityCooldownsXY[0]);
+ ConfigHandler.writeIntConfig("locations", "abilityCooldownsY", MoveCommand.abilityCooldownsXY[1]);
+ ConfigHandler.writeIntConfig("locations", "dungeonScoreX", MoveCommand.dungeonScoreXY[0]);
+ ConfigHandler.writeIntConfig("locations", "dungeonScoreY", MoveCommand.dungeonScoreXY[1]);
}
}
diff --git a/src/main/java/me/Danker/gui/ExperimentsGui.java b/src/main/java/me/Danker/gui/ExperimentsGui.java
index c3f4f47..53eb118 100644
--- a/src/main/java/me/Danker/gui/ExperimentsGui.java
+++ b/src/main/java/me/Danker/gui/ExperimentsGui.java
@@ -1,6 +1,5 @@
package me.Danker.gui;
-import me.Danker.DankersSkyblockMod;
import me.Danker.commands.ToggleCommand;
import me.Danker.handlers.ConfigHandler;
import me.Danker.utils.Utils;
@@ -52,7 +51,7 @@ public class ExperimentsGui extends GuiScreen {
@Override
public void actionPerformed(GuiButton button) {
if (button == goBack) {
- DankersSkyblockMod.guiToOpen = "dankergui1";
+ mc.displayGuiScreen(new DankerGui(1, ""));
} else if (button == ultrasequencer) {
ToggleCommand.ultrasequencerToggled = !ToggleCommand.ultrasequencerToggled;
ConfigHandler.writeBooleanConfig("toggles", "UltraSequencer", ToggleCommand.ultrasequencerToggled);
diff --git a/src/main/java/me/Danker/gui/OnlySlayerGui.java b/src/main/java/me/Danker/gui/OnlySlayerGui.java
new file mode 100644
index 0000000..c637ff9
--- /dev/null
+++ b/src/main/java/me/Danker/gui/OnlySlayerGui.java
@@ -0,0 +1,162 @@
+package me.Danker.gui;
+
+import me.Danker.features.BlockWrongSlayer;
+import me.Danker.handlers.ConfigHandler;
+import me.Danker.utils.RenderUtils;
+import net.minecraft.client.Minecraft;
+import net.minecraft.client.gui.GuiButton;
+import net.minecraft.client.gui.GuiScreen;
+import net.minecraft.client.gui.ScaledResolution;
+
+public class OnlySlayerGui extends GuiScreen {
+
+ private int onlyNumberInt = 4;
+ private String onlyName = "Revenant Horror";
+
+ private GuiButton goBack;
+ private GuiButton off;
+ private GuiButton zombie;
+ private GuiButton spider;
+ private GuiButton wolf;
+ private GuiButton enderman;
+ private GuiButton blaze;
+ private GuiButton one;
+ private GuiButton two;
+ private GuiButton three;
+ private GuiButton four;
+ private GuiButton five;
+
+ @Override
+ public boolean doesGuiPauseGame() {
+ return false;
+ }
+
+ @Override
+ public void initGui() {
+ super.initGui();
+
+ ScaledResolution sr = new ScaledResolution(Minecraft.getMinecraft());
+ int height = sr.getScaledHeight();
+ int width = sr.getScaledWidth();
+
+ onlyName = BlockWrongSlayer.onlySlayerName;
+ switch (BlockWrongSlayer.onlySlayerNumber) {
+ case "I":
+ onlyNumberInt = 1;
+ break;
+ case "II":
+ onlyNumberInt = 2;
+ break;
+ case "III":
+ onlyNumberInt = 3;
+ break;
+ case "IV":
+ default:
+ onlyNumberInt = 4;
+ break;
+ case "V":
+ onlyNumberInt = 5;
+ break;
+ }
+
+ goBack = new GuiButton(0, 2, height - 30, 100, 20, "Go Back");
+ off = new GuiButton(0, width / 2 - 100, (int) (height * 0.3), "Off");
+ zombie = new GuiButton(0, width / 2 - 270, (int) (height * 0.4), 100, 20, "Zombie");
+ spider = new GuiButton(0, width / 2 - 160, (int) (height * 0.4), 100, 20, "Spider");
+ wolf = new GuiButton(0, width / 2 - 50, (int) (height * 0.4), 100, 20, "Wolf");
+ enderman = new GuiButton(0, width / 2 + 60, (int) (height * 0.4), 100, 20, "Enderman");
+ blaze = new GuiButton(0, width / 2 + 170, (int) (height * 0.4), 100, 20, "Blaze");
+ one = new GuiButton(0, width / 2 - 190, (int) (height * 0.6), 60, 20, "I");
+ two = new GuiButton(0, width / 2 - 110, (int) (height * 0.6), 60, 20, "II");
+ three = new GuiButton(0, width / 2 - 30, (int) (height * 0.6), 60, 20, "III");
+ four = new GuiButton(0, width / 2 + 50, (int) (height * 0.6), 60, 20, "IV");
+ five = new GuiButton(0, width / 2 + 130, (int) (height * 0.6), 60, 20, "V");
+
+ this.buttonList.add(off);
+ this.buttonList.add(zombie);
+ this.buttonList.add(spider);
+ this.buttonList.add(wolf);
+ this.buttonList.add(enderman);
+ this.buttonList.add(blaze);
+ this.buttonList.add(one);
+ this.buttonList.add(two);
+ this.buttonList.add(three);
+ this.buttonList.add(four);
+ this.buttonList.add(five);
+ this.buttonList.add(goBack);
+ }
+
+ @Override
+ public void drawScreen(int mouseX, int mouseY, float partialTicks) {
+ this.drawDefaultBackground();
+
+ String displayText;
+ if (BlockWrongSlayer.onlySlayerName.equals("")) {
+ displayText = "Only Allow Slayer: Off";
+ } else {
+ displayText = "Only Allow Slayer: " + BlockWrongSlayer.onlySlayerName + " " + BlockWrongSlayer.onlySlayerNumber;
+ }
+ RenderUtils.drawCenteredText(displayText, width, 10, 1D);
+
+ super.drawScreen(mouseX, mouseY, partialTicks);
+ }
+
+ @Override
+ public void actionPerformed(GuiButton button) {
+ if (button == goBack) {
+ mc.displayGuiScreen(new DankerGui(1, ""));
+ return;
+ } else if (button == off) {
+ BlockWrongSlayer.onlySlayerName = "";
+ BlockWrongSlayer.onlySlayerNumber = "";
+ ConfigHandler.writeStringConfig("toggles", "BlockSlayer", "");
+ return;
+ } else if (button == zombie) {
+ onlyName = "Revenant Horror";
+ } else if (button == spider) {
+ onlyName = "Tarantula Broodfather";
+ } else if (button == wolf) {
+ onlyName = "Sven Packmaster";
+ } else if (button == enderman) {
+ onlyName = "Voidgloom Seraph";
+ } else if (button == blaze) {
+ onlyName = "Inferno Demonlord";
+ } else if (button == one) {
+ onlyNumberInt = 1;
+ } else if (button == two) {
+ onlyNumberInt = 2;
+ } else if (button == three) {
+ onlyNumberInt = 3;
+ } else if (button == four) {
+ onlyNumberInt = 4;
+ } else if (button == five) {
+ onlyNumberInt = 5;
+ }
+
+ String onlyNumber;
+ switch (onlyNumberInt) {
+ case 1:
+ onlyNumber = "I";
+ break;
+ case 2:
+ onlyNumber = "II";
+ break;
+ case 3:
+ onlyNumber = "III";
+ break;
+ case 4:
+ onlyNumber = "IV";
+ break;
+ case 5:
+ onlyNumber = "V";
+ break;
+ default:
+ onlyNumber = "IV";
+ }
+
+ BlockWrongSlayer.onlySlayerName = onlyName;
+ BlockWrongSlayer.onlySlayerNumber = onlyNumber;
+ ConfigHandler.writeStringConfig("toggles", "BlockSlayer", BlockWrongSlayer.onlySlayerName + " " + BlockWrongSlayer.onlySlayerNumber);
+ }
+
+}
diff --git a/src/main/java/me/Danker/gui/PuzzleSolversGui.java b/src/main/java/me/Danker/gui/PuzzleSolversGui.java
index 70cd982..2f87630 100644
--- a/src/main/java/me/Danker/gui/PuzzleSolversGui.java
+++ b/src/main/java/me/Danker/gui/PuzzleSolversGui.java
@@ -1,6 +1,5 @@
package me.Danker.gui;
-import me.Danker.DankersSkyblockMod;
import me.Danker.commands.ToggleCommand;
import me.Danker.handlers.ConfigHandler;
import me.Danker.utils.Utils;
@@ -20,6 +19,7 @@ public class PuzzleSolversGui extends GuiScreen {
private GuiButton trivia;
private GuiButton blaze;
private GuiButton creeper;
+ private GuiButton creeperLines;
private GuiButton water;
private GuiButton ticTacToe;
private GuiButton boulder;
@@ -28,6 +28,9 @@ public class PuzzleSolversGui extends GuiScreen {
private GuiButton startsWith;
private GuiButton selectAll;
private GuiButton clickOrder;
+ private GuiButton sameColour;
+ private GuiButton blockClicks;
+ private GuiButton itemFrameOnSeaLanterns;
public PuzzleSolversGui(int page) {
this.page = page;
@@ -55,35 +58,47 @@ public class PuzzleSolversGui extends GuiScreen {
trivia = new GuiButton(0, width / 2 - 100, (int) (height * 0.2), "Trivia Solver: " + Utils.getColouredBoolean(ToggleCommand.oruoToggled));
blaze = new GuiButton(0, width / 2 - 100, (int) (height * 0.3), "Blaze Solver: " + Utils.getColouredBoolean(ToggleCommand.blazeToggled));
creeper = new GuiButton(0, width / 2 - 100, (int) (height * 0.4), "Creeper Solver: " + Utils.getColouredBoolean(ToggleCommand.creeperToggled));
- water = new GuiButton(0, width / 2 - 100, (int) (height * 0.5), "Water Solver: " + Utils.getColouredBoolean(ToggleCommand.waterToggled));
- ticTacToe = new GuiButton(0, width / 2 - 100, (int) (height * 0.6), "Tic Tac Toe Solver: " + Utils.getColouredBoolean(ToggleCommand.ticTacToeToggled));
- boulder = new GuiButton(0, width / 2 - 100, (int) (height * 0.7), "Boulder Solver: " + Utils.getColouredBoolean(ToggleCommand.boulderToggled));
+ creeperLines = new GuiButton(0, width / 2 - 100, (int) (height * 0.5), "Lines In Creeper Solver: " + Utils.getColouredBoolean(ToggleCommand.creeperLinesToggled));
+ water = new GuiButton(0, width / 2 - 100, (int) (height * 0.6), "Water Solver: " + Utils.getColouredBoolean(ToggleCommand.waterToggled));
+ ticTacToe = new GuiButton(0, width / 2 - 100, (int) (height * 0.7), "Tic Tac Toe Solver: " + Utils.getColouredBoolean(ToggleCommand.ticTacToeToggled));
// Page 2
- silverfish = new GuiButton(0, width / 2 - 100, (int) (height * 0.1), "Silverfish Solver: " + Utils.getColouredBoolean(ToggleCommand.silverfishToggled));
- iceWalk = new GuiButton(0, width / 2 - 100, (int) (height * 0.2), "Ice Walk Solver: " + Utils.getColouredBoolean(ToggleCommand.iceWalkToggled));
- startsWith = new GuiButton(0, width / 2 - 100, (int) (height * 0.3), "Starts With Letter Terminal Solver: " + Utils.getColouredBoolean(ToggleCommand.startsWithToggled));
- selectAll = new GuiButton(0, width / 2 - 100, (int) (height * 0.4), "Select All Color Terminal Solver: " + Utils.getColouredBoolean(ToggleCommand.selectAllToggled));
- clickOrder = new GuiButton(0, width / 2 - 100, (int) (height * 0.5), "Click in Order Terminal Helper: " + Utils.getColouredBoolean(ToggleCommand.clickInOrderToggled));
-
+ boulder = new GuiButton(0, width / 2 - 100, (int) (height * 0.1), "Boulder Solver: " + Utils.getColouredBoolean(ToggleCommand.boulderToggled));
+ silverfish = new GuiButton(0, width / 2 - 100, (int) (height * 0.2), "Silverfish Solver: " + Utils.getColouredBoolean(ToggleCommand.silverfishToggled));
+ iceWalk = new GuiButton(0, width / 2 - 100, (int) (height * 0.3), "Ice Walk Solver: " + Utils.getColouredBoolean(ToggleCommand.iceWalkToggled));
+ startsWith = new GuiButton(0, width / 2 - 100, (int) (height * 0.4), "Starts With Letter Terminal Solver: " + Utils.getColouredBoolean(ToggleCommand.startsWithToggled));
+ selectAll = new GuiButton(0, width / 2 - 100, (int) (height * 0.5), "Select All Color Terminal Solver: " + Utils.getColouredBoolean(ToggleCommand.selectAllToggled));
+ clickOrder = new GuiButton(0, width / 2 - 100, (int) (height * 0.6), "Click in Order Terminal Helper: " + Utils.getColouredBoolean(ToggleCommand.clickInOrderToggled));
+ sameColour = new GuiButton(0, width / 2 - 100, (int) (height * 0.7), "Same Colour Terminal Solver: " + Utils.getColouredBoolean(ToggleCommand.sameColourToggled));
+ // Page 3
+ blockClicks = new GuiButton(0, width / 2 - 100, (int) (height * 0.1), "Block Wrong Clicks on Terminals: " + Utils.getColouredBoolean(ToggleCommand.blockWrongTerminalClicksToggled));
+ itemFrameOnSeaLanterns = new GuiButton(0, width / 2 - 100, (int) (height * 0.2), "Ignore Arrows On Sea Lanterns: " + Utils.getColouredBoolean(ToggleCommand.itemFrameOnSeaLanternsToggled));
+
switch (page) {
case 1:
this.buttonList.add(riddle);
this.buttonList.add(trivia);
this.buttonList.add(blaze);
this.buttonList.add(creeper);
+ this.buttonList.add(creeperLines);
this.buttonList.add(water);
this.buttonList.add(ticTacToe);
- this.buttonList.add(boulder);
this.buttonList.add(nextPage);
break;
case 2:
+ this.buttonList.add(boulder);
this.buttonList.add(silverfish);
this.buttonList.add(iceWalk);
this.buttonList.add(startsWith);
this.buttonList.add(selectAll);
this.buttonList.add(clickOrder);
+ this.buttonList.add(sameColour);
+ this.buttonList.add(nextPage);
this.buttonList.add(backPage);
break;
+ case 3:
+ this.buttonList.add(blockClicks);
+ this.buttonList.add(itemFrameOnSeaLanterns);
+ this.buttonList.add(backPage);
}
this.buttonList.add(goBack);
}
@@ -97,7 +112,7 @@ public class PuzzleSolversGui extends GuiScreen {
@Override
public void actionPerformed(GuiButton button) {
if (button == goBack) {
- DankersSkyblockMod.guiToOpen = "dankergui1";
+ mc.displayGuiScreen(new DankerGui(1, ""));
} else if (button == backPage) {
Minecraft.getMinecraft().displayGuiScreen(new PuzzleSolversGui(page - 1));
} else if (button == nextPage) {
@@ -118,6 +133,10 @@ public class PuzzleSolversGui extends GuiScreen {
ToggleCommand.creeperToggled = !ToggleCommand.creeperToggled;
ConfigHandler.writeBooleanConfig("toggles", "CreeperPuzzle", ToggleCommand.creeperToggled);
creeper.displayString = "Creeper Solver: " + Utils.getColouredBoolean(ToggleCommand.creeperToggled);
+ } else if (button == creeperLines) {
+ ToggleCommand.creeperLinesToggled = !ToggleCommand.creeperLinesToggled;
+ ConfigHandler.writeBooleanConfig("toggles", "CreeperLines", ToggleCommand.creeperLinesToggled);
+ creeperLines.displayString = "Lines In Creeper Solver: " + Utils.getColouredBoolean(ToggleCommand.creeperLinesToggled);
} else if (button == water) {
ToggleCommand.waterToggled = !ToggleCommand.waterToggled;
ConfigHandler.writeBooleanConfig("toggles", "WaterPuzzle", ToggleCommand.waterToggled);
@@ -150,6 +169,18 @@ public class PuzzleSolversGui extends GuiScreen {
ToggleCommand.clickInOrderToggled = !ToggleCommand.clickInOrderToggled;
ConfigHandler.writeBooleanConfig("toggles", "ClickInOrderTerminal", ToggleCommand.clickInOrderToggled);
clickOrder.displayString = "Click in Order Terminal Helper: " + Utils.getColouredBoolean(ToggleCommand.clickInOrderToggled);
+ } else if (button == blockClicks) {
+ ToggleCommand.blockWrongTerminalClicksToggled = !ToggleCommand.blockWrongTerminalClicksToggled;
+ ConfigHandler.writeBooleanConfig("toggles", "BlockWrongTerminalClicks", ToggleCommand.blockWrongTerminalClicksToggled);
+ blockClicks.displayString = "Block Wrong Clicks on Terminals: " + Utils.getColouredBoolean(ToggleCommand.blockWrongTerminalClicksToggled);
+ } else if (button == itemFrameOnSeaLanterns) {
+ ToggleCommand.itemFrameOnSeaLanternsToggled = !ToggleCommand.itemFrameOnSeaLanternsToggled;
+ ConfigHandler.writeBooleanConfig("toggles", "IgnoreItemFrameOnSeaLanterns", ToggleCommand.itemFrameOnSeaLanternsToggled);
+ itemFrameOnSeaLanterns.displayString = "Ignore Arrows On Sea Lanterns: " + Utils.getColouredBoolean(ToggleCommand.itemFrameOnSeaLanternsToggled);
+ } else if (button == sameColour) {
+ ToggleCommand.sameColourToggled = !ToggleCommand.sameColourToggled;
+ ConfigHandler.writeBooleanConfig("toggles", "SameColourTerminal", ToggleCommand.sameColourToggled);
+ sameColour.displayString = "Same Colour Terminal Solver: " + Utils.getColouredBoolean(ToggleCommand.sameColourToggled);
}
}
diff --git a/src/main/java/me/Danker/gui/SkillTrackerGui.java b/src/main/java/me/Danker/gui/SkillTrackerGui.java
index fb7a7c9..e77f785 100644
--- a/src/main/java/me/Danker/gui/SkillTrackerGui.java
+++ b/src/main/java/me/Danker/gui/SkillTrackerGui.java
@@ -1,9 +1,8 @@
package me.Danker.gui;
-import me.Danker.DankersSkyblockMod;
import me.Danker.features.SkillTracker;
import me.Danker.handlers.ConfigHandler;
-import me.Danker.handlers.TextRenderer;
+import me.Danker.utils.RenderUtils;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiButton;
import net.minecraft.client.gui.GuiScreen;
@@ -50,6 +49,7 @@ public class SkillTrackerGui extends GuiScreen {
@Override
public void drawScreen(int mouseX, int mouseY, float partialTicks) {
this.drawDefaultBackground();
+
String stateText = "";
if (SkillTracker.skillStopwatch.isStarted() && !SkillTracker.skillStopwatch.isSuspended()) {
stateText = "Timer: Running";
@@ -59,15 +59,15 @@ public class SkillTrackerGui extends GuiScreen {
if (!SkillTracker.showSkillTracker) {
stateText += " (Hidden)";
}
- int stateTextWidth = mc.fontRendererObj.getStringWidth(stateText);
- new TextRenderer(mc, stateText, width / 2 - stateTextWidth / 2, 10, 1D);
+ RenderUtils.drawCenteredText(stateText, width, 10, 1D);
+
super.drawScreen(mouseX, mouseY, partialTicks);
}
@Override
public void actionPerformed(GuiButton button) {
if (button == goBack) {
- DankersSkyblockMod.guiToOpen = "dankergui1";
+ mc.displayGuiScreen(new DankerGui(1, ""));
} else if (button == start) {
if (SkillTracker.skillStopwatch.isStarted() && SkillTracker.skillStopwatch.isSuspended()) {
SkillTracker.skillStopwatch.resume();
diff --git a/src/main/java/me/Danker/gui/WarningGui.java b/src/main/java/me/Danker/gui/WarningGui.java
index db0c21b..901b59e 100644
--- a/src/main/java/me/Danker/gui/WarningGui.java
+++ b/src/main/java/me/Danker/gui/WarningGui.java
@@ -1,10 +1,11 @@
package me.Danker.gui;
-import me.Danker.handlers.TextRenderer;
+import me.Danker.utils.RenderUtils;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiButton;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.client.gui.ScaledResolution;
+import net.minecraft.util.EnumChatFormatting;
public class WarningGui extends GuiScreen {
private GuiButton close;
@@ -34,15 +35,11 @@ public class WarningGui extends GuiScreen {
@Override
public void drawScreen(int mouseX, int mouseY, float partialTicks) {
this.drawDefaultBackground();
- String text0 = "§cWARNING!§0";
- int text0Width = mc.fontRendererObj.getStringWidth(text0);
- new TextRenderer(mc, text0, (int)(width * 0.45) - text0Width / 2, (int) (height * 0.1), 2 );
- String text1 = "You are using SpiderFrog's Old Animations mod.";
- int text1Width = mc.fontRendererObj.getStringWidth(text1);
- new TextRenderer(mc, text1, width / 2 - text1Width / 2, (int) (height * 0.3), 1D );
- String text2 = "This mod breaks Danker's Skyblock Mod.";
- int text2Width = mc.fontRendererObj.getStringWidth(text2);
- new TextRenderer(mc, text2, width / 2 - text2Width / 2, (int) (height * 0.4), 1D);
+
+ RenderUtils.drawCenteredText(EnumChatFormatting.RED + "WARNING!", (int) (width * 0.9), (int) (height * 0.1), 2D);
+ RenderUtils.drawCenteredText("You are using SpiderFrog's Old Animations mod.", width, (int) (height * 0.3), 1D);
+ RenderUtils.drawCenteredText("This mod breaks Danker's Skyblock Mod.", width, (int) (height * 0.4), 1D);
+
super.drawScreen(mouseX, mouseY, partialTicks);
}
diff --git a/src/main/java/me/Danker/gui/alerts/AlertActionGui.java b/src/main/java/me/Danker/gui/alerts/AlertActionGui.java
new file mode 100644
index 0000000..7a73f5a
--- /dev/null
+++ b/src/main/java/me/Danker/gui/alerts/AlertActionGui.java
@@ -0,0 +1,91 @@
+package me.Danker.gui.alerts;
+
+import me.Danker.features.Alerts;
+import me.Danker.handlers.TextRenderer;
+import me.Danker.utils.RenderUtils;
+import me.Danker.utils.Utils;
+import net.minecraft.client.Minecraft;
+import net.minecraft.client.gui.GuiButton;
+import net.minecraft.client.gui.GuiScreen;
+import net.minecraft.client.gui.ScaledResolution;
+import net.minecraft.util.EnumChatFormatting;
+
+public class AlertActionGui extends GuiScreen {
+
+ private final int id;
+
+ private GuiButton goBack;
+ private GuiButton toggle;
+ private GuiButton toggleDesktop;
+ private GuiButton edit;
+ private GuiButton delete;
+
+ public AlertActionGui(int id) {
+ this.id = id;
+ }
+
+ @Override
+ public boolean doesGuiPauseGame() {
+ return false;
+ }
+
+ @Override
+ public void initGui() {
+ super.initGui();
+
+ ScaledResolution sr = new ScaledResolution(Minecraft.getMinecraft());
+ int height = sr.getScaledHeight();
+ int width = sr.getScaledWidth();
+
+ Alerts.Alert alert = Alerts.alerts.get(id);
+
+ goBack = new GuiButton(0, 2, height - 30, 100, 20, "Go Back");
+ toggle = new GuiButton(0, width / 2 - 100, (int) (height * 0.1), "Enabled: " + Utils.getColouredBoolean(alert.toggled));
+ toggleDesktop = new GuiButton(0, width / 2 - 100, (int) (height * 0.2), "Desktop Notification: " + Utils.getColouredBoolean(alert.desktop));
+ edit = new GuiButton(0, width / 2 - 100, (int) (height * 0.3), "Edit >");
+ delete = new GuiButton(0, width / 2 - 100, (int) (height * 0.8), EnumChatFormatting.RED + "Delete Alert");
+
+ this.buttonList.add(toggle);
+ this.buttonList.add(toggleDesktop);
+ this.buttonList.add(edit);
+ this.buttonList.add(delete);
+ this.buttonList.add(goBack);
+ }
+
+ @Override
+ public void drawScreen(int mouseX, int mouseY, float partialTicks) {
+ this.drawDefaultBackground();
+ super.drawScreen(mouseX, mouseY, partialTicks);
+
+ Alerts.Alert alert = Alerts.alerts.get(id);
+
+ RenderUtils.drawCenteredText(alert.alert, width, 10, 1D);
+ String alertText = alert.alert;
+ int textWidth = mc.fontRendererObj.getStringWidth(alertText);
+ new TextRenderer(mc, alertText, width / 2 - textWidth / 2, 10, 1D);
+ }
+
+ @Override
+ public void actionPerformed(GuiButton button) {
+ Alerts.Alert alert = Alerts.alerts.get(id);
+ if (button == goBack) {
+ mc.displayGuiScreen(new AlertsGui(1));
+ } else if (button == toggle) {
+ alert.toggle();
+ toggle.displayString = "Enabled: " + Utils.getColouredBoolean(alert.toggled);
+ } else if (button == toggleDesktop) {
+ alert.toggleDesktop();
+ toggleDesktop.displayString = "Desktop Notification: " + Utils.getColouredBoolean(alert.desktop);
+ } else if (button == edit) {
+ mc.displayGuiScreen(new AlertAddGui(alert, id));
+ } else if (button == delete) {
+ Alerts.alerts.remove(id);
+ Alerts.saveToFile();
+ mc.displayGuiScreen(new AlertsGui(1));
+ return;
+ }
+ Alerts.alerts.set(id, alert);
+ Alerts.saveToFile();
+ }
+
+}
diff --git a/src/main/java/me/Danker/gui/alerts/AlertAddGui.java b/src/main/java/me/Danker/gui/alerts/AlertAddGui.java
new file mode 100644
index 0000000..5f01d6d
--- /dev/null
+++ b/src/main/java/me/Danker/gui/alerts/AlertAddGui.java
@@ -0,0 +1,154 @@
+package me.Danker.gui.alerts;
+
+import me.Danker.features.Alerts;
+import me.Danker.handlers.TextRenderer;
+import me.Danker.utils.RenderUtils;
+import net.minecraft.client.Minecraft;
+import net.minecraft.client.gui.GuiButton;
+import net.minecraft.client.gui.GuiScreen;
+import net.minecraft.client.gui.GuiTextField;
+import net.minecraft.client.gui.ScaledResolution;
+import net.minecraftforge.fml.client.config.GuiCheckBox;
+
+import java.io.IOException;
+
+public class AlertAddGui extends GuiScreen {
+
+ private boolean editing;
+ private Alerts.Alert base = null;
+ private int id;
+
+ private GuiButton cancel;
+
+ private String mode = "Contains";
+ private String location = "Skyblock";
+ private GuiButton startsWith;
+ private GuiButton contains;
+ private GuiButton endsWith;
+ private GuiButton everywhere;
+ private GuiButton skyblock;
+ private GuiButton dungeons;
+ private GuiTextField message;
+ private GuiTextField alert;
+ private GuiCheckBox desktop;
+ private GuiCheckBox toggled;
+ private GuiButton add;
+
+ public AlertAddGui() {}
+
+ public AlertAddGui(Alerts.Alert alert, int id) {
+ editing = true;
+ base = alert;
+ this.id = id;
+ }
+
+ @Override
+ public boolean doesGuiPauseGame() {
+ return false;
+ }
+
+ @Override
+ public void initGui() {
+ super.initGui();
+
+ ScaledResolution sr = new ScaledResolution(Minecraft.getMinecraft());
+ int height = sr.getScaledHeight();
+ int width = sr.getScaledWidth();
+
+ 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");
+ 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");
+ message = new GuiTextField(0, this.fontRendererObj, width / 2 - 100, (int) (height * 0.4), 200, 20);
+ alert = new GuiTextField(0, this.fontRendererObj, width / 2 - 100, (int) (height * 0.5), 200, 20);
+ desktop = new GuiCheckBox(0, width / 2 - 58, (int) (height * 0.6), "Desktop Notification", false);
+ toggled = new GuiCheckBox(0, width / 2 - 26, (int) (height * 0.65), "Toggled", true);
+ add = new GuiButton(0, width / 2 - 25, (int) (height * 0.8), 50, 20, "Add");
+
+ if (editing) {
+ mode = base.mode;
+ location = base.location;
+ message.setText(base.message);
+ alert.setText(base.alert);
+ desktop.setIsChecked(base.desktop);
+ toggled.setIsChecked(base.toggled);
+ }
+
+ message.setVisible(true);
+ message.setEnabled(true);
+ alert.setVisible(true);
+ alert.setEnabled(true);
+
+ this.buttonList.add(cancel);
+ this.buttonList.add(startsWith);
+ this.buttonList.add(contains);
+ this.buttonList.add(endsWith);
+ this.buttonList.add(everywhere);
+ this.buttonList.add(skyblock);
+ this.buttonList.add(dungeons);
+ this.buttonList.add(desktop);
+ this.buttonList.add(toggled);
+ this.buttonList.add(add);
+ }
+
+ @Override
+ public void drawScreen(int mouseX, int mouseY, float partialTicks) {
+ this.drawDefaultBackground();
+ super.drawScreen(mouseX, mouseY, partialTicks);
+
+ message.drawTextBox();
+ alert.drawTextBox();
+
+ RenderUtils.drawCenteredText("Mode: " + mode, width, (int) (height * 0.1), 1D);
+ RenderUtils.drawCenteredText("Location: " + location, width, (int) (height * 0.15), 1D);
+ new TextRenderer(mc, "Trigger:", width / 2 - 145, (int) (height * 0.42), 1D);
+ new TextRenderer(mc, "Alert Text:", width / 2 - 158, (int) (height * 0.52), 1D);
+ }
+
+ @Override
+ public void actionPerformed(GuiButton button) {
+ if (button == cancel) {
+ mc.displayGuiScreen(new AlertsGui(1));
+ } else if (button == startsWith) {
+ mode = "Starts With";
+ } else if (button == contains) {
+ mode = "Contains";
+ } else if (button == endsWith) {
+ mode = "Ends With";
+ } else if (button == everywhere) {
+ location = "Everywhere";
+ } else if (button == skyblock) {
+ location = "Skyblock";
+ } else if (button == dungeons) {
+ location = "Dungeons";
+ } else if (button == add) {
+ Alerts.Alert newAlert = new Alerts.Alert(mode, location, message.getText(), alert.getText(), desktop.isChecked(), toggled.isChecked());
+ if (editing) {
+ Alerts.alerts.set(id, newAlert);
+ } else {
+ Alerts.alerts.add(newAlert);
+ }
+ Alerts.saveToFile();
+ mc.displayGuiScreen(new AlertsGui(1));
+ }
+ }
+
+ @Override
+ protected void mouseClicked(int mouseX, int mouseY, int mouseButton) throws IOException {
+ super.mouseClicked(mouseX, mouseY, mouseButton);
+ message.mouseClicked(mouseX, mouseY, mouseButton);
+ alert.mouseClicked(mouseX, mouseY, mouseButton);
+ }
+
+ @Override
+ protected void keyTyped(char typedChar, int keyCode) throws IOException {
+ super.keyTyped(typedChar, keyCode);
+ message.textboxKeyTyped(typedChar, keyCode);
+ alert.textboxKeyTyped(typedChar, keyCode);
+ }
+
+}
diff --git a/src/main/java/me/Danker/gui/alerts/AlertsGui.java b/src/main/java/me/Danker/gui/alerts/AlertsGui.java
new file mode 100644
index 0000000..d73d56a
--- /dev/null
+++ b/src/main/java/me/Danker/gui/alerts/AlertsGui.java
@@ -0,0 +1,103 @@
+package me.Danker.gui.alerts;
+
+import me.Danker.commands.ToggleCommand;
+import me.Danker.features.Alerts;
+import me.Danker.gui.DankerGui;
+import me.Danker.gui.buttons.FeatureButton;
+import me.Danker.handlers.ConfigHandler;
+import me.Danker.utils.RenderUtils;
+import me.Danker.utils.Utils;
+import net.minecraft.client.Minecraft;
+import net.minecraft.client.gui.GuiButton;
+import net.minecraft.client.gui.GuiScreen;
+import net.minecraft.client.gui.ScaledResolution;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class AlertsGui extends GuiScreen {
+
+ private final int page;
+ private final List<GuiButton> allButtons = new ArrayList<>();
+
+ private GuiButton goBack;
+ private GuiButton backPage;
+ private GuiButton nextPage;
+ private GuiButton add;
+ private GuiButton alerts;
+
+ public AlertsGui(int page) {
+ this.page = page;
+ }
+
+ @Override
+ public void initGui() {
+ super.initGui();
+
+ ScaledResolution sr = new ScaledResolution(Minecraft.getMinecraft());
+ int height = sr.getScaledHeight();
+ int width = sr.getScaledWidth();
+
+ goBack = new GuiButton(0, 2, height - 30, 100, 20, "Go Back");
+ backPage = new GuiButton(0, width / 2 - 100, (int) (height * 0.8), 80, 20, "< Back");
+ nextPage = new GuiButton(0, width / 2 + 20, (int) (height * 0.8), 80, 20, "Next >");
+ alerts = new FeatureButton("Alerts: " + Utils.getColouredBoolean(ToggleCommand.alerts), "Sends custom alert when a message is recieved");
+ add = new GuiButton(0, 0, 0, "Add Alert");
+
+ allButtons.clear();
+ allButtons.add(alerts);
+ allButtons.add(add);
+ for (int i = 0; i < Alerts.alerts.size(); i++) {
+ Alerts.Alert alert = Alerts.alerts.get(i);
+ GuiButton button = new GuiButton(i, 0, 0, alert.alert + " >");
+ allButtons.add(button);
+ }
+
+ reInit();
+ }
+
+ public void reInit() {
+ this.buttonList.clear();
+
+ for (int i = (page - 1) * 7, iteration = 0; iteration < 7 && i < allButtons.size(); i++, iteration++) {
+ GuiButton button = allButtons.get(i);
+ button.xPosition = width / 2 - 100;
+ button.yPosition = (int) (height * (0.1 * (iteration + 1)));
+ this.buttonList.add(button);
+ }
+
+ if (page > 1) this.buttonList.add(backPage);
+ if (page < Math.ceil(allButtons.size() / 7D)) this.buttonList.add(nextPage);
+
+ this.buttonList.add(goBack);
+ }
+
+ @Override
+ public void drawScreen(int mouseX, int mouseY, float partialTicks) {
+ this.drawDefaultBackground();
+ super.drawScreen(mouseX, mouseY, partialTicks);
+
+ String pageText = "Page: " + page + "/" + (int) Math.ceil(allButtons.size() / 7D);
+ RenderUtils.drawCenteredText(pageText, width, 10, 1D);
+ }
+
+ @Override
+ public void actionPerformed(GuiButton button) {
+ if (button == goBack) {
+ mc.displayGuiScreen(new DankerGui(1, ""));
+ } else if (button == nextPage) {
+ mc.displayGuiScreen(new AlertsGui(page + 1));
+ } else if (button == backPage) {
+ mc.displayGuiScreen(new AlertsGui(page - 1));
+ } else if (button == add) {
+ mc.displayGuiScreen(new AlertAddGui());
+ } else if (button == alerts) {
+ ToggleCommand.alerts = !ToggleCommand.alerts;
+ ConfigHandler.writeBooleanConfig("toggles", "Alerts", ToggleCommand.alerts);
+ alerts.displayString = "Alerts: " + Utils.getColouredBoolean(ToggleCommand.alerts);
+ } else {
+ mc.displayGuiScreen(new AlertActionGui(button.id));
+ }
+ }
+
+}
diff --git a/src/main/java/me/Danker/gui/buttons/LocationButton.java b/src/main/java/me/Danker/gui/buttons/LocationButton.java
index f328c58..8da1ab9 100644
--- a/src/main/java/me/Danker/gui/buttons/LocationButton.java
+++ b/src/main/java/me/Danker/gui/buttons/LocationButton.java
@@ -40,24 +40,19 @@ public class LocationButton extends GuiButton {
}
this.longestText = longestText;
+ int offset = text2Offset == null ? 0 : text2Offset;
this.height = (int) ((splitText.length * 9 + 3) * scale);
- this.width = (int) ((this.longestText + 3) * scale);
+ this.width = (int) ((this.longestText + offset + 3) * scale);
}
@Override
public void drawButton(Minecraft mc, int mouseX, int mouseY) {
- if (text2 == null) {
- drawRect(x - 2, y - 2, x + width, y + height, 0x40D3D3D3);
- } else {
- drawRect(x - 2, y - 2, (int) (x + (longestText + text2Offset + 3) * scale), y + height, 0x40D3D3D3);
- new TextRenderer(mc, text2, (int) (x + (text2Offset * scale)), y, scale);
- }
+ drawRect(x - 2, y - 2, x + width, y + height, 0x40D3D3D3);
+ if (text2 != null) new TextRenderer(mc, text2, (int) (x + (text2Offset * scale)), y, scale);
new TextRenderer(mc, text, x, y, scale);
}
@Override
- public void playPressSound(SoundHandler soundHandler) {
-
- }
+ public void playPressSound(SoundHandler soundHandler) {}
}
diff --git a/src/main/java/me/Danker/gui/crystalhollowwaypoints/CrystalHollowAddWaypointGui.java b/src/main/java/me/Danker/gui/crystalhollowwaypoints/CrystalHollowAddWaypointGui.java
new file mode 100644
index 0000000..df91f04
--- /dev/null
+++ b/src/main/java/me/Danker/gui/crystalhollowwaypoints/CrystalHollowAddWaypointGui.java
@@ -0,0 +1,118 @@
+package me.Danker.gui.crystalhollowwaypoints;
+
+import me.Danker.features.CrystalHollowWaypoints;
+import me.Danker.handlers.TextRenderer;
+import net.minecraft.client.Minecraft;
+import net.minecraft.client.gui.GuiButton;
+import net.minecraft.client.gui.GuiScreen;
+import net.minecraft.client.gui.GuiTextField;
+import net.minecraft.client.gui.ScaledResolution;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.util.BlockPos;
+
+import java.io.IOException;
+
+public class CrystalHollowAddWaypointGui extends GuiScreen {
+
+ private GuiButton cancel;
+
+ private GuiTextField name;
+ private GuiButton curPos;
+ private GuiTextField x;
+ private GuiTextField y;
+ private GuiTextField z;
+ private GuiButton add;
+
+ @Override
+ public boolean doesGuiPauseGame() {
+ return false;
+ }
+
+ @Override
+ public void initGui() {
+ super.initGui();
+
+ ScaledResolution sr = new ScaledResolution(Minecraft.getMinecraft());
+ int height = sr.getScaledHeight();
+ int width = sr.getScaledWidth();
+
+ cancel = new GuiButton(0, 2, height - 30, 100, 20, "Cancel");
+
+ name = new GuiTextField(0, this.fontRendererObj, width / 2 - 100, (int) (height * 0.1), 200, 20);
+ curPos = new GuiButton(0, width / 2 - 50, (int) (height * 0.25), 100, 20, "Current Position");
+ x = new GuiTextField(0, this.fontRendererObj, width / 2 - 85, (int) (height * 0.4), 50, 20);
+ y = new GuiTextField(0, this.fontRendererObj, width / 2 - 25, (int) (height * 0.4), 50, 20);
+ z = new GuiTextField(0, this.fontRendererObj, width / 2 + 35, (int) (height * 0.4), 50, 20);
+ add = new GuiButton(0, width / 2 - 25, (int) (height * 0.6), 50, 20, "Add");
+
+ name.setVisible(true);
+ name.setEnabled(true);
+ x.setVisible(true);
+ x.setEnabled(true);
+ y.setVisible(true);
+ y.setEnabled(true);
+ z.setVisible(true);
+ z.setEnabled(true);
+
+ this.buttonList.add(cancel);
+ this.buttonList.add(curPos);
+ this.buttonList.add(add);
+ }
+
+ @Override
+ public void drawScreen(int mouseX, int mouseY, float partialTicks) {
+ this.drawDefaultBackground();
+ super.drawScreen(mouseX, mouseY, partialTicks);
+
+ name.drawTextBox();
+ x.drawTextBox();
+ y.drawTextBox();
+ z.drawTextBox();
+
+ new TextRenderer(mc, "X:", width / 2 - 85, (int) (height * 0.35), 1D);
+ new TextRenderer(mc, "Y:", width / 2 - 25, (int) (height * 0.35), 1D);
+ new TextRenderer(mc, "Z:", width / 2 + 35, (int) (height * 0.35), 1D);
+ }
+
+ @Override
+ public void actionPerformed(GuiButton button) {
+ EntityPlayer player = Minecraft.getMinecraft().thePlayer;
+
+ if (button == cancel) {
+ mc.displayGuiScreen(new CrystalHollowWaypointsGui(1));
+ } else if (button == curPos) {
+ x.setText(Integer.toString(player.getPosition().getX()));
+ y.setText(Integer.toString(player.getPosition().getY()));
+ z.setText(Integer.toString(player.getPosition().getZ()));
+ } else if (button == add) {
+ String loc = name.getText().length() == 0 ? Integer.toString(CrystalHollowWaypoints.waypoints.size()) : name.getText();
+ int xPos = x.getText().matches("[-]?\\d+") ? Integer.parseInt(x.getText()) : player.getPosition().getX();
+ int yPos = y.getText().matches("[-]?\\d+") ? Integer.parseInt(y.getText()) : player.getPosition().getY();
+ int zPos = z.getText().matches("[-]?\\d+") ? Integer.parseInt(z.getText()) : player.getPosition().getZ();
+
+ BlockPos pos = new BlockPos(xPos, yPos, zPos);
+ CrystalHollowWaypoints.waypoints.add(new CrystalHollowWaypoints.Waypoint(loc, pos));
+
+ mc.displayGuiScreen(new CrystalHollowWaypointsGui(1));
+ }
+ }
+
+ @Override
+ protected void mouseClicked(int mouseX, int mouseY, int mouseButton) throws IOException {
+ super.mouseClicked(mouseX, mouseY, mouseButton);
+ name.mouseClicked(mouseX, mouseY, mouseButton);
+ x.mouseClicked(mouseX, mouseY, mouseButton);
+ y.mouseClicked(mouseX, mouseY, mouseButton);
+ z.mouseClicked(mouseX, mouseY, mouseButton);
+ }
+
+ @Override
+ protected void keyTyped(char typedChar, int keyCode) throws IOException {
+ super.keyTyped(typedChar, keyCode);
+ name.textboxKeyTyped(typedChar, keyCode);
+ x.textboxKeyTyped(typedChar, keyCode);
+ y.textboxKeyTyped(typedChar, keyCode);
+ z.textboxKeyTyped(typedChar, keyCode);
+ }
+
+}
diff --git a/src/main/java/me/Danker/gui/crystalhollowwaypoints/CrystalHollowWaypointActionGui.java b/src/main/java/me/Danker/gui/crystalhollowwaypoints/CrystalHollowWaypointActionGui.java
new file mode 100644
index 0000000..8d6fa85
--- /dev/null
+++ b/src/main/java/me/Danker/gui/crystalhollowwaypoints/CrystalHollowWaypointActionGui.java
@@ -0,0 +1,93 @@
+package me.Danker.gui.crystalhollowwaypoints;
+
+import me.Danker.DankersSkyblockMod;
+import me.Danker.features.CrystalHollowWaypoints;
+import me.Danker.utils.RenderUtils;
+import me.Danker.utils.Utils;
+import net.minecraft.client.Minecraft;
+import net.minecraft.client.entity.EntityPlayerSP;
+import net.minecraft.client.gui.GuiButton;
+import net.minecraft.client.gui.GuiScreen;
+import net.minecraft.client.gui.ScaledResolution;
+import net.minecraft.util.EnumChatFormatting;
+
+public class CrystalHollowWaypointActionGui extends GuiScreen {
+
+ private int id;
+
+ private GuiButton goBack;
+ private GuiButton toggle;
+ private GuiButton sendNormal;
+ private GuiButton sendDSM;
+ private GuiButton sendSBE;
+ private GuiButton delete;
+
+ public CrystalHollowWaypointActionGui(int id) {
+ this.id = id;
+ }
+
+ @Override
+ public boolean doesGuiPauseGame() {
+ return false;
+ }
+
+ @Override
+ public void initGui() {
+ super.initGui();
+
+ ScaledResolution sr = new ScaledResolution(Minecraft.getMinecraft());
+ int height = sr.getScaledHeight();
+ int width = sr.getScaledWidth();
+
+ CrystalHollowWaypoints.Waypoint waypoint = CrystalHollowWaypoints.waypoints.get(id);
+
+ goBack = new GuiButton(0, 2, height - 30, 100, 20, "Go Back");
+ toggle = new GuiButton(0, width / 2 - 100, (int) (height * 0.1), "Set Visibility: " + Utils.getColouredBoolean(waypoint.toggled));
+ sendNormal = new GuiButton(0, width / 2 - 100, (int) (height * 0.2), "Send Location And Coordinates");
+ sendDSM = new GuiButton(0, width / 2 - 100, (int) (height * 0.3), "Send DSM Formatted Waypoint");
+ sendSBE = new GuiButton(0, width / 2 - 100, (int) (height * 0.4), "Send SBE Formatted Waypoint");
+ delete = new GuiButton(0, width / 2 - 100, (int) (height * 0.8), EnumChatFormatting.RED + "Delete Waypoint");
+
+ this.buttonList.add(toggle);
+ this.buttonList.add(sendNormal);
+ this.buttonList.add(sendDSM);
+ this.buttonList.add(sendSBE);
+ this.buttonList.add(delete);
+ this.buttonList.add(goBack);
+ }
+
+ @Override
+ public void drawScreen(int mouseX, int mouseY, float partialTicks) {
+ this.drawDefaultBackground();
+ super.drawScreen(mouseX, mouseY, partialTicks);
+
+ CrystalHollowWaypoints.Waypoint waypoint = CrystalHollowWaypoints.waypoints.get(id);
+
+ RenderUtils.drawCenteredText(waypoint.location + " @ " + waypoint.getPos(), width, 10, 1D);
+ }
+
+ @Override
+ public void actionPerformed(GuiButton button) {
+ CrystalHollowWaypoints.Waypoint waypoint = CrystalHollowWaypoints.waypoints.get(id);
+ EntityPlayerSP player = Minecraft.getMinecraft().thePlayer;
+ if (button == goBack) {
+ mc.displayGuiScreen(new CrystalHollowWaypointsGui(1));
+ DankersSkyblockMod.guiToOpen = "crystalwaypoints";
+ } else if (button == toggle) {
+ waypoint.toggle();
+ toggle.displayString = "Set Visibility: " + Utils.getColouredBoolean(waypoint.toggled);
+ } else if (button == sendNormal) {
+ player.sendChatMessage(waypoint.location + " @ " + waypoint.getPos());
+ } else if (button == sendDSM) {
+ player.sendChatMessage("$DSMCHWP:" + waypoint.getFormattedWaypoint());
+ } else if (button == sendSBE) {
+ player.sendChatMessage("$SBECHWP:" + waypoint.getFormattedWaypoint());
+ } else if (button == delete) {
+ CrystalHollowWaypoints.waypoints.remove(id);
+ mc.displayGuiScreen(new CrystalHollowWaypointsGui(1));
+ return;
+ }
+ CrystalHollowWaypoints.waypoints.set(id, waypoint);
+ }
+
+}
diff --git a/src/main/java/me/Danker/gui/crystalhollowwaypoints/CrystalHollowWaypointsGui.java b/src/main/java/me/Danker/gui/crystalhollowwaypoints/CrystalHollowWaypointsGui.java
new file mode 100644
index 0000000..6780542
--- /dev/null
+++ b/src/main/java/me/Danker/gui/crystalhollowwaypoints/CrystalHollowWaypointsGui.java
@@ -0,0 +1,150 @@
+package me.Danker.gui.crystalhollowwaypoints;
+
+import me.Danker.commands.ToggleCommand;
+import me.Danker.features.CrystalHollowWaypoints;
+import me.Danker.gui.DankerGui;
+import me.Danker.gui.buttons.FeatureButton;
+import me.Danker.handlers.ConfigHandler;
+import me.Danker.utils.RenderUtils;
+import me.Danker.utils.Utils;
+import net.minecraft.client.Minecraft;
+import net.minecraft.client.entity.EntityPlayerSP;
+import net.minecraft.client.gui.GuiButton;
+import net.minecraft.client.gui.GuiScreen;
+import net.minecraft.client.gui.ScaledResolution;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class CrystalHollowWaypointsGui extends GuiScreen {
+
+ private final int page;
+ private final List<GuiButton> allButtons = new ArrayList<>();
+
+ private GuiButton goBack;
+ private GuiButton backPage;
+ private GuiButton nextPage;
+ private GuiButton sendDSM;
+ private GuiButton sendSBE;
+ private GuiButton add;
+ private FeatureButton crystalHollowWaypoints;
+ private FeatureButton crystalAutoWaypoints;
+ private FeatureButton crystalAutoPlayerWaypoints;
+
+ public CrystalHollowWaypointsGui(int page) {
+ this.page = page;
+ }
+
+ @Override
+ public boolean doesGuiPauseGame() {
+ return false;
+ }
+
+ @Override
+ public void initGui() {
+ super.initGui();
+
+ ScaledResolution sr = new ScaledResolution(Minecraft.getMinecraft());
+ int height = sr.getScaledHeight();
+ int width = sr.getScaledWidth();
+
+ goBack = new GuiButton(0, 2, height - 30, 100, 20, "Go Back");
+ backPage = new GuiButton(0, width / 2 - 100, (int) (height * 0.8), 80, 20, "< Back");
+ nextPage = new GuiButton(0, width / 2 + 20, (int) (height * 0.8), 80, 20, "Next >");
+ sendDSM = new GuiButton(0, 2, 10, 175, 20, "Send DSM Formatted Waypoints");
+ sendSBE = new GuiButton(0, 2, 40, 175, 20, "Send SBE Formatted Waypoints");
+ add = new GuiButton(0, 0, 0, "Add Waypoint");
+ crystalHollowWaypoints = new FeatureButton("Crystal Hollows Waypoints: " + Utils.getColouredBoolean(ToggleCommand.crystalHollowWaypoints), "Shows waypoints to various places in the Crystal Hollows.");
+ crystalAutoWaypoints = new FeatureButton("Auto Waypoints: " + Utils.getColouredBoolean(ToggleCommand.crystalAutoWaypoints), "Automatically creates waypoints when you visit a special place in the Crystal Hollows.");
+ crystalAutoPlayerWaypoints = new FeatureButton("Auto Add Player Waypoints: " + Utils.getColouredBoolean(ToggleCommand.crystalAutoPlayerWaypoints), "Automatically adds waypoints sent from players.");
+
+ allButtons.clear();
+ allButtons.add(add);
+ allButtons.add(crystalHollowWaypoints);
+ allButtons.add(crystalAutoWaypoints);
+ allButtons.add(crystalAutoPlayerWaypoints);
+ for (int i = 0; i < CrystalHollowWaypoints.waypoints.size(); i++) {
+ CrystalHollowWaypoints.Waypoint waypoint = CrystalHollowWaypoints.waypoints.get(i);
+ GuiButton button = new GuiButton(i, 0, 0, waypoint.location + " >");
+ allButtons.add(button);
+ }
+
+ reInit();
+ }
+
+ public void reInit() {
+ this.buttonList.clear();
+
+ for (int i = (page - 1) * 7, iteration = 0; iteration < 7 && i < allButtons.size(); i++, iteration++) {
+ GuiButton button = allButtons.get(i);
+ button.xPosition = width / 2 - 100;
+ button.yPosition = (int) (height * (0.1 * (iteration + 1)));
+ this.buttonList.add(button);
+ }
+
+ if (page > 1) this.buttonList.add(backPage);
+ if (page < Math.ceil(allButtons.size() / 7D)) this.buttonList.add(nextPage);
+
+ this.buttonList.add(goBack);
+ this.buttonList.add(sendDSM);
+ this.buttonList.add(sendSBE);
+ }
+
+ @Override
+ public void drawScreen(int mouseX, int mouseY, float partialTicks) {
+ this.drawDefaultBackground();
+ super.drawScreen(mouseX, mouseY, partialTicks);
+
+ String pageText = "Page: " + page + "/" + (int) Math.ceil(allButtons.size() / 7D);
+ RenderUtils.drawCenteredText(pageText, width, 10, 1D);
+ }
+
+ @Override
+ public void actionPerformed(GuiButton button) {
+ EntityPlayerSP player = Minecraft.getMinecraft().thePlayer;
+ if (button == goBack) {
+ mc.displayGuiScreen(new DankerGui(1, ""));
+ } else if (button == nextPage) {
+ mc.displayGuiScreen(new CrystalHollowWaypointsGui(page + 1));
+ } else if (button == backPage) {
+ mc.displayGuiScreen(new CrystalHollowWaypointsGui(page - 1));
+ } else if (button == sendDSM) {
+ if (CrystalHollowWaypoints.waypoints.size() > 0) {
+ StringBuilder message = new StringBuilder();
+ for (CrystalHollowWaypoints.Waypoint waypoint : CrystalHollowWaypoints.waypoints) {
+ if (message.length() > 0) message.append("\\n");
+ message.append(waypoint.getFormattedWaypoint());
+ }
+ message.insert(0, "$DSMCHWP:");
+ player.sendChatMessage(message.toString());
+ }
+ } else if (button == sendSBE) {
+ if (CrystalHollowWaypoints.waypoints.size() > 0) {
+ StringBuilder message = new StringBuilder();
+ for (CrystalHollowWaypoints.Waypoint waypoint : CrystalHollowWaypoints.waypoints) {
+ if (message.length() > 0) message.append("\\n");
+ message.append(waypoint.getFormattedWaypoint());
+ }
+ message.insert(0, "$SBECHWP:");
+ player.sendChatMessage(message.toString());
+ }
+ } else if (button == add) {
+ mc.displayGuiScreen(new CrystalHollowAddWaypointGui());
+ } else if (button == crystalHollowWaypoints) {
+ ToggleCommand.crystalHollowWaypoints = !ToggleCommand.crystalHollowWaypoints;
+ ConfigHandler.writeBooleanConfig("toggles", "CrystalHollowWaypoints", ToggleCommand.crystalHollowWaypoints);
+ crystalHollowWaypoints.displayString = "Crystal Hollows Waypoints: " + Utils.getColouredBoolean(ToggleCommand.crystalHollowWaypoints);
+ } else if (button == crystalAutoWaypoints) {
+ ToggleCommand.crystalAutoWaypoints = !ToggleCommand.crystalAutoWaypoints;
+ ConfigHandler.writeBooleanConfig("toggles", "CrystalAutoWaypoints", ToggleCommand.crystalAutoWaypoints);
+ crystalAutoWaypoints.displayString = "Auto Waypoints: " + Utils.getColouredBoolean(ToggleCommand.crystalAutoWaypoints);
+ } else if (button == crystalAutoPlayerWaypoints) {
+ ToggleCommand.crystalAutoPlayerWaypoints = !ToggleCommand.crystalAutoPlayerWaypoints;
+ ConfigHandler.writeBooleanConfig("toggles", "CrystalAutoPlayerWaypoints", ToggleCommand.crystalAutoPlayerWaypoints);
+ crystalAutoPlayerWaypoints.displayString = "Auto Add Player Waypoints: " + Utils.getColouredBoolean(ToggleCommand.crystalAutoPlayerWaypoints);
+ } else {
+ mc.displayGuiScreen(new CrystalHollowWaypointActionGui(button.id));
+ }
+ }
+
+}