aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/me/Danker/DankersSkyblockMod.java106
-rw-r--r--src/main/java/me/Danker/commands/CrystalHollowWaypointCommand.java50
-rw-r--r--src/main/java/me/Danker/commands/CustomMusicCommand.java94
-rw-r--r--src/main/java/me/Danker/commands/DHelpCommand.java4
-rw-r--r--src/main/java/me/Danker/commands/DankerGuiCommand.java24
-rw-r--r--src/main/java/me/Danker/commands/DisplayCommand.java11
-rw-r--r--src/main/java/me/Danker/commands/DungeonsCommand.java63
-rw-r--r--src/main/java/me/Danker/commands/FarmLengthCommand.java50
-rw-r--r--src/main/java/me/Danker/commands/LootCommand.java92
-rw-r--r--src/main/java/me/Danker/commands/MoveCommand.java22
-rw-r--r--src/main/java/me/Danker/commands/PlayerCommand.java258
-rw-r--r--src/main/java/me/Danker/commands/ReloadRepoCommand.java42
-rw-r--r--src/main/java/me/Danker/commands/ResetLootCommand.java36
-rw-r--r--src/main/java/me/Danker/commands/ScaleCommand.java18
-rw-r--r--src/main/java/me/Danker/commands/SkillsCommand.java2
-rw-r--r--src/main/java/me/Danker/commands/SkyblockPlayersCommand.java5
-rw-r--r--src/main/java/me/Danker/commands/SlayerCommand.java10
-rw-r--r--src/main/java/me/Danker/commands/ToggleCommand.java218
-rw-r--r--src/main/java/me/Danker/commands/WeightCommand.java105
-rw-r--r--src/main/java/me/Danker/features/ArachneESP.java11
-rw-r--r--src/main/java/me/Danker/features/AutoAcceptReparty.java33
-rw-r--r--src/main/java/me/Danker/features/AutoDisplay.java14
-rw-r--r--src/main/java/me/Danker/features/ColouredNames.java119
-rw-r--r--src/main/java/me/Danker/features/CrystalHollowWaypoints.java193
-rw-r--r--src/main/java/me/Danker/features/CustomMusic.java193
-rw-r--r--src/main/java/me/Danker/features/EndOfFarmAlert.java40
-rw-r--r--src/main/java/me/Danker/features/GemstonesLore.java77
-rw-r--r--src/main/java/me/Danker/features/GiantHPDisplay.java73
-rw-r--r--src/main/java/me/Danker/features/HidePetCandy.java26
-rw-r--r--src/main/java/me/Danker/features/HighlightSkeletonMasters.java42
-rw-r--r--src/main/java/me/Danker/features/Skill50Display.java56
-rw-r--r--src/main/java/me/Danker/features/SkillTracker.java179
-rw-r--r--src/main/java/me/Danker/features/SlayerESP.java14
-rw-r--r--src/main/java/me/Danker/features/TetherDisplay.java60
-rw-r--r--src/main/java/me/Danker/features/loot/LootDisplay.java124
-rw-r--r--src/main/java/me/Danker/features/loot/LootTracker.java217
-rw-r--r--src/main/java/me/Danker/features/puzzlesolvers/BlazeSolver.java76
-rw-r--r--src/main/java/me/Danker/features/puzzlesolvers/CreeperSolver.java8
-rw-r--r--src/main/java/me/Danker/features/puzzlesolvers/LividSolver.java14
-rw-r--r--src/main/java/me/Danker/features/puzzlesolvers/ThreeManSolver.java71
-rw-r--r--src/main/java/me/Danker/features/puzzlesolvers/TriviaSolver.java99
-rw-r--r--src/main/java/me/Danker/gui/CrystalHollowWaypointActionGui.java87
-rw-r--r--src/main/java/me/Danker/gui/CrystalHollowWaypointsGui.java139
-rw-r--r--src/main/java/me/Danker/gui/CustomMusicGui.java130
-rw-r--r--src/main/java/me/Danker/gui/DankerGui.java140
-rw-r--r--src/main/java/me/Danker/gui/DisplayGui.java11
-rw-r--r--src/main/java/me/Danker/gui/EditLocationsGui.java58
-rw-r--r--src/main/java/me/Danker/gui/PuzzleSolversGui.java25
-rw-r--r--src/main/java/me/Danker/gui/buttons/FeatureButton.java17
-rw-r--r--src/main/java/me/Danker/gui/buttons/LocationButton.java36
-rw-r--r--src/main/java/me/Danker/handlers/APIHandler.java3
-rw-r--r--src/main/java/me/Danker/handlers/ConfigHandler.java101
-rw-r--r--src/main/java/me/Danker/utils/Utils.java264
53 files changed, 3538 insertions, 422 deletions
diff --git a/src/main/java/me/Danker/DankersSkyblockMod.java b/src/main/java/me/Danker/DankersSkyblockMod.java
index ee24b84..100db96 100644
--- a/src/main/java/me/Danker/DankersSkyblockMod.java
+++ b/src/main/java/me/Danker/DankersSkyblockMod.java
@@ -1,5 +1,6 @@
package me.Danker;
+import com.google.gson.JsonObject;
import me.Danker.commands.*;
import me.Danker.events.ChestSlotClickedEvent;
import me.Danker.events.GuiChestBackgroundDrawnEvent;
@@ -57,16 +58,18 @@ import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.UnsupportedAudioFileException;
import java.io.IOException;
import java.util.List;
+import java.util.Locale;
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.6";
+ public static final String VERSION = "1.8.7-beta4";
public static int titleTimer = -1;
public static boolean showTitle = false;
public static String titleText = "";
public static int tickAmount = 1;
+ public static int repoTickAmount = 1;
public static KeyBinding[] keyBindings = new KeyBinding[3];
public static boolean usingLabymod = false;
public static boolean usingOAM = false;
@@ -74,6 +77,16 @@ public class DankersSkyblockMod {
public static String guiToOpen = null;
public static boolean firstLaunch = false;
public static String configDirectory;
+ public static JsonObject data = null;
+
+ public static int farmingLevel;
+ public static int miningLevel;
+ public static int combatLevel;
+ public static int foragingLevel;
+ public static int fishingLevel;
+ public static int enchantingLevel;
+ public static int alchemyLevel;
+ public static int carpentryLevel;
public static String MAIN_COLOUR;
public static String SECONDARY_COLOUR;
@@ -88,6 +101,7 @@ public class DankersSkyblockMod {
public void init(FMLInitializationEvent event) throws UnsupportedAudioFileException, IOException, LineUnavailableException {
MinecraftForge.EVENT_BUS.register(this);
MinecraftForge.EVENT_BUS.register(new ArachneESP());
+ MinecraftForge.EVENT_BUS.register(new AutoAcceptReparty());
MinecraftForge.EVENT_BUS.register(new AutoDisplay());
MinecraftForge.EVENT_BUS.register(new AutoSwapToPickBlock());
MinecraftForge.EVENT_BUS.register(new BlazeSolver());
@@ -96,15 +110,22 @@ public class DankersSkyblockMod {
MinecraftForge.EVENT_BUS.register(new CakeTimer());
MinecraftForge.EVENT_BUS.register(new ChronomatronSolver());
MinecraftForge.EVENT_BUS.register(new ClickInOrderSolver());
+ MinecraftForge.EVENT_BUS.register(new ColouredNames());
MinecraftForge.EVENT_BUS.register(new CreeperSolver());
+ MinecraftForge.EVENT_BUS.register(new CrystalHollowWaypoints());
MinecraftForge.EVENT_BUS.register(new CustomMusic());
MinecraftForge.EVENT_BUS.register(new DungeonTimer());
+ MinecraftForge.EVENT_BUS.register(new EndOfFarmAlert());
MinecraftForge.EVENT_BUS.register(new ExpertiseLore());
MinecraftForge.EVENT_BUS.register(new FasterMaddoxCalling());
+ MinecraftForge.EVENT_BUS.register(new GemstonesLore());
+ MinecraftForge.EVENT_BUS.register(new GiantHPDisplay());
MinecraftForge.EVENT_BUS.register(new GoldenEnchants());
MinecraftForge.EVENT_BUS.register(new GolemSpawningAlert());
MinecraftForge.EVENT_BUS.register(new GpartyNotifications());
+ MinecraftForge.EVENT_BUS.register(new HidePetCandy());
MinecraftForge.EVENT_BUS.register(new HideTooltipsInExperiments());
+ MinecraftForge.EVENT_BUS.register(new HighlightSkeletonMasters());
MinecraftForge.EVENT_BUS.register(new IceWalkSolver());
MinecraftForge.EVENT_BUS.register(new LividSolver());
MinecraftForge.EVENT_BUS.register(new LootDisplay());
@@ -125,6 +146,7 @@ public class DankersSkyblockMod {
MinecraftForge.EVENT_BUS.register(new StartsWithSolver());
MinecraftForge.EVENT_BUS.register(new StopSalvagingStarredItems());
MinecraftForge.EVENT_BUS.register(new SuperpairsSolver());
+ MinecraftForge.EVENT_BUS.register(new TetherDisplay());
MinecraftForge.EVENT_BUS.register(new ThreeManSolver());
MinecraftForge.EVENT_BUS.register(new TicTacToeSolver());
MinecraftForge.EVENT_BUS.register(new TriviaSolver());
@@ -137,6 +159,7 @@ public class DankersSkyblockMod {
GoldenEnchants.init();
TriviaSolver.init();
CustomMusic.init(configDirectory);
+ GemstonesLore.init();
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");
@@ -145,6 +168,8 @@ public class DankersSkyblockMod {
for (KeyBinding keyBinding : keyBindings) {
ClientRegistry.registerKeyBinding(keyBinding);
}
+
+ new Thread(Utils::refreshRepo).start();
}
@EventHandler
@@ -152,11 +177,13 @@ public class DankersSkyblockMod {
ClientCommandHandler.instance.registerCommand(new ArmourCommand());
ClientCommandHandler.instance.registerCommand(new BankCommand());
ClientCommandHandler.instance.registerCommand(new CustomMusicCommand());
+ ClientCommandHandler.instance.registerCommand(new CrystalHollowWaypointCommand());
ClientCommandHandler.instance.registerCommand(new DHelpCommand());
ClientCommandHandler.instance.registerCommand(new DankerGuiCommand());
ClientCommandHandler.instance.registerCommand(new DisplayCommand());
ClientCommandHandler.instance.registerCommand(new DungeonsCommand());
ClientCommandHandler.instance.registerCommand(new FairySoulsCommand());
+ ClientCommandHandler.instance.registerCommand(new FarmLengthCommand());
ClientCommandHandler.instance.registerCommand(new GetkeyCommand());
ClientCommandHandler.instance.registerCommand(new GuildOfCommand());
ClientCommandHandler.instance.registerCommand(new ImportFishingCommand());
@@ -165,7 +192,9 @@ public class DankersSkyblockMod {
ClientCommandHandler.instance.registerCommand(new LootCommand());
ClientCommandHandler.instance.registerCommand(new MoveCommand());
ClientCommandHandler.instance.registerCommand(new PetsCommand());
+ ClientCommandHandler.instance.registerCommand(new PlayerCommand());
ClientCommandHandler.instance.registerCommand(new ReloadConfigCommand());
+ ClientCommandHandler.instance.registerCommand(new ReloadRepoCommand());
ClientCommandHandler.instance.registerCommand(new ResetLootCommand());
ClientCommandHandler.instance.registerCommand(new ScaleCommand());
ClientCommandHandler.instance.registerCommand(new SetkeyCommand());
@@ -174,6 +203,7 @@ public class DankersSkyblockMod {
ClientCommandHandler.instance.registerCommand(new SkyblockPlayersCommand());
ClientCommandHandler.instance.registerCommand(new SlayerCommand());
ClientCommandHandler.instance.registerCommand(new ToggleCommand());
+ ClientCommandHandler.instance.registerCommand(new WeightCommand());
configDirectory = event.getModConfigurationDirectory().toString();
}
@@ -248,12 +278,47 @@ public class DankersSkyblockMod {
@SubscribeEvent
public void onChat(ClientChatReceivedEvent event) {
- String message = StringUtils.stripControlCodes(event.message.getUnformattedText());
+ String message = StringUtils.stripControlCodes(event.message.getUnformattedText());
if (message.startsWith("Your new API key is ") && Utils.isOnHypixel()) {
String apiKey = event.message.getSiblings().get(0).getChatStyle().getChatClickEvent().getValue();
ConfigHandler.writeStringConfig("api", "APIKey", apiKey);
Minecraft.getMinecraft().thePlayer.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Set API key to " + DankersSkyblockMod.SECONDARY_COLOUR + apiKey));
+ } else if (Utils.inSkyblock && !message.contains(":") && message.contains(" SKILL LEVEL UP ")) {
+ // Handle skill level ups
+ String skill = message.substring(message.indexOf("UP") + 3, message.lastIndexOf(" "));
+ int level = Utils.getIntFromString(message.substring(message.indexOf("➜") + 1), true);
+
+ switch (skill) {
+ case "Farming":
+ DankersSkyblockMod.farmingLevel = level;
+ break;
+ case "Mining":
+ DankersSkyblockMod.miningLevel = level;
+ break;
+ case "Combat":
+ DankersSkyblockMod.combatLevel = level;
+ break;
+ case "Foraging":
+ DankersSkyblockMod.foragingLevel = level;
+ break;
+ case "Fishing":
+ DankersSkyblockMod.fishingLevel = level;
+ break;
+ case "Enchanting":
+ DankersSkyblockMod.enchantingLevel = level;
+ break;
+ case "Alchemy":
+ DankersSkyblockMod.alchemyLevel = level;
+ break;
+ case "Carpentry":
+ DankersSkyblockMod.carpentryLevel = level;
+ break;
+ default:
+ System.err.println("Unknown skill leveled up.");
+ }
+
+ ConfigHandler.writeIntConfig("skills", skill.toLowerCase(Locale.US), level);
}
}
@@ -286,24 +351,54 @@ public class DankersSkyblockMod {
public void onTick(TickEvent.ClientTickEvent event) {
if (event.phase != Phase.START) return;
- EntityPlayerSP player = Minecraft.getMinecraft().thePlayer;
+ Minecraft mc = Minecraft.getMinecraft();
+ EntityPlayerSP player = mc.thePlayer;
tickAmount++;
if (tickAmount % 20 == 0) {
+ repoTickAmount++;
if (player != null) {
Utils.checkForSkyblock();
Utils.checkForDungeons();
+ Utils.checkTabLocation();
}
tickAmount = 0;
}
+ if (repoTickAmount % 3601 == 0) {
+ // I didn't want to change everything so I just made a new tick variable
+ new Thread(Utils::refreshRepo).start();
+ repoTickAmount = 1;
+ }
+
if (titleTimer >= 0) {
if (titleTimer == 0) {
showTitle = false;
}
titleTimer--;
}
+
+ // New skill level detection
+ if (mc.currentScreen instanceof GuiChest && tickAmount % 5 == 0 && player != null) {
+ ContainerChest chest = (ContainerChest) player.openContainer;
+ String chestName = chest.getLowerChestInventory().getDisplayName().getUnformattedText().trim();
+
+ if (chestName.equals("Your Skills")) {
+ List<Slot> invSlots = ((GuiChest) mc.currentScreen).inventorySlots.inventorySlots;
+
+ farmingLevel = Utils.initializeSkill(invSlots.get(19).getStack(), "farming");
+ miningLevel = Utils.initializeSkill(invSlots.get(20).getStack(), "mining");
+ combatLevel = Utils.initializeSkill(invSlots.get(21).getStack(), "combat");
+ foragingLevel = Utils.initializeSkill(invSlots.get(22).getStack(), "foraging");
+ fishingLevel = Utils.initializeSkill(invSlots.get(23).getStack(), "fishing");
+ enchantingLevel = Utils.initializeSkill(invSlots.get(24).getStack(), "enchanting");
+ alchemyLevel = Utils.initializeSkill(invSlots.get(25).getStack(), "alchemy");
+ carpentryLevel = Utils.initializeSkill(invSlots.get(29).getStack(), "carpentry");
+
+ System.out.println("Updated skill levels.");
+ }
+ }
}
// Delay GUI by 1 tick
@@ -332,7 +427,10 @@ public class DankersSkyblockMod {
mc.displayGuiScreen(new SkillTrackerGui());
break;
case "custommusic":
- mc.displayGuiScreen(new CustomMusicGui());
+ mc.displayGuiScreen(new CustomMusicGui(1));
+ break;
+ case "crystalwaypoints":
+ mc.displayGuiScreen(new CrystalHollowWaypointsGui(1));
break;
}
}
diff --git a/src/main/java/me/Danker/commands/CrystalHollowWaypointCommand.java b/src/main/java/me/Danker/commands/CrystalHollowWaypointCommand.java
new file mode 100644
index 0000000..c545447
--- /dev/null
+++ b/src/main/java/me/Danker/commands/CrystalHollowWaypointCommand.java
@@ -0,0 +1,50 @@
+package me.Danker.commands;
+
+import me.Danker.DankersSkyblockMod;
+import me.Danker.features.CrystalHollowWaypoints;
+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;
+
+public class CrystalHollowWaypointCommand extends CommandBase {
+
+ @Override
+ public String getCommandName() {
+ return "dsmaddcrystalhollowwaypoints";
+ }
+
+ @Override
+ public String getCommandUsage(ICommandSender arg0) {
+ return "/" + getCommandName() + " <formatted waypoint>";
+ }
+
+ @Override
+ public int getRequiredPermissionLevel() {
+ return 0;
+ }
+
+ @Override
+ public void processCommand(ICommandSender arg0, String[] arg1) throws CommandException {
+ EntityPlayer player = (EntityPlayer) arg0;
+
+ if (arg1.length == 0) return;
+
+ String[] waypoints = String.join(" ", arg1).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);
+
+ CrystalHollowWaypoints.waypoints.add(newWaypoint);
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Added " + newWaypoint.location + " @ " + newWaypoint.getPos()));
+ }
+ }
+
+}
diff --git a/src/main/java/me/Danker/commands/CustomMusicCommand.java b/src/main/java/me/Danker/commands/CustomMusicCommand.java
index 0e80dd3..c07ab45 100644
--- a/src/main/java/me/Danker/commands/CustomMusicCommand.java
+++ b/src/main/java/me/Danker/commands/CustomMusicCommand.java
@@ -24,7 +24,8 @@ public class CustomMusicCommand extends CommandBase {
@Override
public String getCommandUsage(ICommandSender arg0) {
- return "/" + getCommandName() + " <stop/reload/volume> [dungeonboss/bloodroom/dungeon] [1-100]";
+ return "/" + getCommandName() + " <stop/reload/volume> [dungeonboss/bloodroom/dungeon/hub/island/dungeonhub/farmingislands/" +
+ "goldmine/deepcaverns/dwarvenmines/crystalhollows/spidersden/blazingfortress/end/park] [1-100]";
}
public static String usage(ICommandSender arg0) {
@@ -41,7 +42,8 @@ public class CustomMusicCommand extends CommandBase {
if (args.length == 1) {
return getListOfStringsMatchingLastWord(args, "stop", "reload", "volume");
} else if (args.length == 2) {
- return getListOfStringsMatchingLastWord(args, "dungeonboss", "bloodroom", "dungeon");
+ return getListOfStringsMatchingLastWord(args, "dungeonboss", "bloodroom", "dungeon", "hub", "island", "dungeonhub", "farmingislands", "goldmine",
+ "deepcaverns", "dwarvenmines", "crystalhollows", "spidersden", "blazingfortress", "end", "park");
}
return null;
}
@@ -76,36 +78,98 @@ public class CustomMusicCommand extends CommandBase {
}
int volume = Integer.parseInt(arg1[2]);
- boolean success;
switch (arg1[1].toLowerCase()) {
case "dungeonboss":
- success = CustomMusic.dungeonboss.setVolume(volume);
- if (!success) {
- return;
- }
+ if (!CustomMusic.dungeonboss.setVolume(volume)) return;
CustomMusic.dungeonbossVolume = volume;
ConfigHandler.writeIntConfig("music", "DungeonBossVolume", volume);
break;
case "bloodroom":
- success = CustomMusic.bloodroom.setVolume(volume);
- if (!success) {
- return;
- }
+ if (!CustomMusic.bloodroom.setVolume(volume)) return;
CustomMusic.bloodroomVolume = volume;
ConfigHandler.writeIntConfig("music", "BloodRoomVolume", volume);
break;
case "dungeon":
- success = CustomMusic.dungeon.setVolume(volume);
- if (!success) {
- return;
- }
+ if (!CustomMusic.dungeon.setVolume(volume)) return;
CustomMusic.dungeonVolume = volume;
ConfigHandler.writeIntConfig("music", "DungeonVolume", volume);
break;
+ case "hub":
+ if (!CustomMusic.hub.setVolume(volume)) return;
+
+ CustomMusic.hubVolume = volume;
+ ConfigHandler.writeIntConfig("music", "HubVolume", volume);
+ break;
+ case "island":
+ if (!CustomMusic.island.setVolume(volume)) return;
+
+ CustomMusic.islandVolume = volume;
+ ConfigHandler.writeIntConfig("music", "IslandVolume", volume);
+ break;
+ case "dungeonhub":
+ if (!CustomMusic.dungeonHub.setVolume(volume)) return;
+
+ CustomMusic.dungeonHubVolume = volume;
+ ConfigHandler.writeIntConfig("music", "DungeonHubVolume", volume);
+ break;
+ case "farmingislands":
+ if (!CustomMusic.farmingIslands.setVolume(volume)) return;
+
+ CustomMusic.farmingIslandsVolume = volume;
+ ConfigHandler.writeIntConfig("music", "FarmingIslandsVolume", volume);
+ break;
+ case "goldmine":
+ if (!CustomMusic.goldMine.setVolume(volume)) return;
+
+ CustomMusic.goldMineVolume = volume;
+ ConfigHandler.writeIntConfig("music", "GoldMineVolume", volume);
+ break;
+ case "deepcaverns":
+ if (!CustomMusic.deepCaverns.setVolume(volume)) return;
+
+ CustomMusic.deepCavernsVolume = volume;
+ ConfigHandler.writeIntConfig("music", "DeepCavernsVolume", volume);
+ break;
+ case "dwarvenmines":
+ if (!CustomMusic.dwarvenMines.setVolume(volume)) return;
+
+ CustomMusic.dwarvenMinesVolume = volume;
+ ConfigHandler.writeIntConfig("music", "DwarvenMinesVolume", volume);
+ break;
+ case "crystalhollows":
+ if (!CustomMusic.crystalHollows.setVolume(volume)) return;
+
+ CustomMusic.crystalHollowsVolume = volume;
+ ConfigHandler.writeIntConfig("music", "CrystalHollowsVolume", volume);
+ break;
+ case "spidersden":
+ if (!CustomMusic.spidersDen.setVolume(volume)) return;
+
+ CustomMusic.spidersDenVolume = volume;
+ ConfigHandler.writeIntConfig("music", "SpidersDenVolume", volume);
+ break;
+ case "blazingfortress":
+ if (!CustomMusic.blazingFortress.setVolume(volume)) return;
+
+ CustomMusic.blazingFortressVolume = volume;
+ ConfigHandler.writeIntConfig("music", "BlazingFortressVolume", volume);
+ break;
+ case "end":
+ if (!CustomMusic.end.setVolume(volume)) return;
+
+ CustomMusic.endVolume = volume;
+ ConfigHandler.writeIntConfig("music", "EndVolume", volume);
+ break;
+ case "park":
+ if (!CustomMusic.park.setVolume(volume)) return;
+
+