aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorbowser0000 <bowser0000@gmail.com>2021-03-18 18:39:10 -0400
committerGitHub <noreply@github.com>2021-03-18 18:39:10 -0400
commit0208030006619bcd61362c2d73ee4f1f6e94f75d (patch)
tree3a526604c2015478bdc4c30abc518717e91cf783 /src
parent4effca575301c7be5a964b4869531c46cb273a4e (diff)
parent42449d4110853d43b40c50f96c2814b865d24f8d (diff)
downloadSkyblockMod-0208030006619bcd61362c2d73ee4f1f6e94f75d.tar.gz
SkyblockMod-0208030006619bcd61362c2d73ee4f1f6e94f75d.tar.bz2
SkyblockMod-0208030006619bcd61362c2d73ee4f1f6e94f75d.zip
Merge branch 'development' into InstallerFrame
Diffstat (limited to 'src')
-rw-r--r--src/main/java/me/Danker/DankersSkyblockMod.java64
-rw-r--r--src/main/java/me/Danker/commands/BlockSlayerCommand.java7
-rw-r--r--src/main/java/me/Danker/commands/CustomMusicCommand.java70
-rw-r--r--src/main/java/me/Danker/commands/DHelpCommand.java9
-rw-r--r--src/main/java/me/Danker/commands/DankerGuiCommand.java4
-rw-r--r--src/main/java/me/Danker/commands/LootCommand.java4
-rw-r--r--src/main/java/me/Danker/commands/ToggleCommand.java31
-rw-r--r--src/main/java/me/Danker/features/BlockPlacingFlowers.java (renamed from src/main/java/me/Danker/features/puzzlesolvers/BlockPlacingFlowers.java)2
-rw-r--r--src/main/java/me/Danker/features/CustomMusic.java117
-rw-r--r--src/main/java/me/Danker/features/loot/LootDisplay.java8
-rw-r--r--src/main/java/me/Danker/features/loot/LootTracker.java22
-rw-r--r--src/main/java/me/Danker/features/puzzlesolvers/IceWalkSolver.java287
-rw-r--r--src/main/java/me/Danker/features/puzzlesolvers/SilverfishSolver.java5
-rw-r--r--src/main/java/me/Danker/gui/DankerGui.java38
-rw-r--r--src/main/java/me/Danker/gui/OnlySlayerGui.java33
-rw-r--r--src/main/java/me/Danker/gui/PuzzleSolversGui.java17
-rw-r--r--src/main/java/me/Danker/handlers/ConfigHandler.java6
-rw-r--r--src/main/java/me/Danker/utils/IceWalkUtils.java99
18 files changed, 754 insertions, 69 deletions
diff --git a/src/main/java/me/Danker/DankersSkyblockMod.java b/src/main/java/me/Danker/DankersSkyblockMod.java
index c8fa109..a7c440b 100644
--- a/src/main/java/me/Danker/DankersSkyblockMod.java
+++ b/src/main/java/me/Danker/DankersSkyblockMod.java
@@ -53,13 +53,16 @@ import net.minecraftforge.fml.common.network.FMLNetworkEvent.ClientConnectedToSe
import org.lwjgl.input.Keyboard;
import org.lwjgl.input.Mouse;
+import javax.sound.sampled.LineUnavailableException;
+import javax.sound.sampled.UnsupportedAudioFileException;
+import java.io.IOException;
import java.util.List;
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-beta2";
+ public static final String VERSION = "1.8.6-beta3";
public static int titleTimer = -1;
public static boolean showTitle = false;
public static String titleText = "";
@@ -70,6 +73,7 @@ public class DankersSkyblockMod {
static boolean OAMWarning = false;
public static String guiToOpen = null;
public static boolean firstLaunch = false;
+ public static String configDirectory;
public static String MAIN_COLOUR;
public static String SECONDARY_COLOUR;
@@ -98,6 +102,7 @@ public class DankersSkyblockMod {
MinecraftForge.EVENT_BUS.register(new ChronomatronSolver());
MinecraftForge.EVENT_BUS.register(new ClickInOrderSolver());
MinecraftForge.EVENT_BUS.register(new CreeperSolver());
+ MinecraftForge.EVENT_BUS.register(new CustomMusic());
MinecraftForge.EVENT_BUS.register(new DungeonTimer());
MinecraftForge.EVENT_BUS.register(new ExpertiseLore());
MinecraftForge.EVENT_BUS.register(new FasterMaddoxCalling());
@@ -105,6 +110,7 @@ public class DankersSkyblockMod {
MinecraftForge.EVENT_BUS.register(new GolemSpawningAlert());
MinecraftForge.EVENT_BUS.register(new GpartyNotifications());
MinecraftForge.EVENT_BUS.register(new HideTooltipsInExperiments());
+ MinecraftForge.EVENT_BUS.register(new IceWalkSolver());
MinecraftForge.EVENT_BUS.register(new LividSolver());
MinecraftForge.EVENT_BUS.register(new LootDisplay());
MinecraftForge.EVENT_BUS.register(new LootTracker());
@@ -146,32 +152,36 @@ public class DankersSkyblockMod {
}
@EventHandler
- public void preInit(final FMLPreInitializationEvent event) {
- ClientCommandHandler.instance.registerCommand(new ToggleCommand());
- ClientCommandHandler.instance.registerCommand(new SetkeyCommand());
- ClientCommandHandler.instance.registerCommand(new GetkeyCommand());
- ClientCommandHandler.instance.registerCommand(new LootCommand());
- ClientCommandHandler.instance.registerCommand(new ReloadConfigCommand());
- ClientCommandHandler.instance.registerCommand(new DisplayCommand());
- ClientCommandHandler.instance.registerCommand(new MoveCommand());
- ClientCommandHandler.instance.registerCommand(new SlayerCommand());
- ClientCommandHandler.instance.registerCommand(new SkillsCommand());
- ClientCommandHandler.instance.registerCommand(new GuildOfCommand());
- ClientCommandHandler.instance.registerCommand(new DHelpCommand());
- ClientCommandHandler.instance.registerCommand(new PetsCommand());
- ClientCommandHandler.instance.registerCommand(new BankCommand());
- ClientCommandHandler.instance.registerCommand(new ArmourCommand());
- ClientCommandHandler.instance.registerCommand(new ImportFishingCommand());
- ClientCommandHandler.instance.registerCommand(new ResetLootCommand());
- ClientCommandHandler.instance.registerCommand(new ScaleCommand());
- ClientCommandHandler.instance.registerCommand(new SkyblockPlayersCommand());
- ClientCommandHandler.instance.registerCommand(new BlockSlayerCommand());
- ClientCommandHandler.instance.registerCommand(new DungeonsCommand());
- ClientCommandHandler.instance.registerCommand(new LobbySkillsCommand());
- ClientCommandHandler.instance.registerCommand(new DankerGuiCommand());
- ClientCommandHandler.instance.registerCommand(new SkillTrackerCommand());
- ClientCommandHandler.instance.registerCommand(new FairySoulsCommand());
- ClientCommandHandler.instance.registerCommand(new LobbyBankCommand());
+ public void preInit(final FMLPreInitializationEvent event) throws UnsupportedAudioFileException, IOException, LineUnavailableException {
+ ClientCommandHandler.instance.registerCommand(new ArmourCommand());
+ ClientCommandHandler.instance.registerCommand(new BankCommand());
+ ClientCommandHandler.instance.registerCommand(new BlockSlayerCommand());
+ ClientCommandHandler.instance.registerCommand(new CustomMusicCommand());
+ 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 GetkeyCommand());
+ ClientCommandHandler.instance.registerCommand(new GuildOfCommand());
+ ClientCommandHandler.instance.registerCommand(new ImportFishingCommand());
+ ClientCommandHandler.instance.registerCommand(new LobbyBankCommand());
+ ClientCommandHandler.instance.registerCommand(new LobbySkillsCommand());
+ ClientCommandHandler.instance.registerCommand(new LootCommand());
+ ClientCommandHandler.instance.registerCommand(new MoveCommand());
+ ClientCommandHandler.instance.registerCommand(new PetsCommand());
+ ClientCommandHandler.instance.registerCommand(new ReloadConfigCommand());
+ ClientCommandHandler.instance.registerCommand(new ResetLootCommand());
+ ClientCommandHandler.instance.registerCommand(new ScaleCommand());
+ ClientCommandHandler.instance.registerCommand(new SetkeyCommand());
+ ClientCommandHandler.instance.registerCommand(new SkillTrackerCommand());
+ ClientCommandHandler.instance.registerCommand(new SkillsCommand());
+ ClientCommandHandler.instance.registerCommand(new SkyblockPlayersCommand());
+ ClientCommandHandler.instance.registerCommand(new SlayerCommand());
+ ClientCommandHandler.instance.registerCommand(new ToggleCommand());
+
+ configDirectory = event.getModConfigurationDirectory().toString();
+ CustomMusic.init(configDirectory);
}
@EventHandler
diff --git a/src/main/java/me/Danker/commands/BlockSlayerCommand.java b/src/main/java/me/Danker/commands/BlockSlayerCommand.java
index c0beb42..09da5d6 100644
--- a/src/main/java/me/Danker/commands/BlockSlayerCommand.java
+++ b/src/main/java/me/Danker/commands/BlockSlayerCommand.java
@@ -21,7 +21,7 @@ public class BlockSlayerCommand extends CommandBase {
@Override
public String getCommandUsage(ICommandSender arg0) {
- return "/" + getCommandName() + " <zombie/spider/wolf> <1/2/3/4>";
+ return "/" + getCommandName() + " <zombie/spider/wolf> <1/2/3/4/5>";
}
@Override
@@ -34,7 +34,7 @@ public class BlockSlayerCommand extends CommandBase {
if (args.length == 1) {
return getListOfStringsMatchingLastWord(args, "zombie", "spider", "wolf");
} else if (args.length == 2) {
- return getListOfStringsMatchingLastWord(args, "1", "2", "3", "4");
+ return getListOfStringsMatchingLastWord(args, "1", "2", "3", "4", "5");
}
return null;
}
@@ -84,6 +84,9 @@ public class BlockSlayerCommand extends CommandBase {
case 4:
BlockWrongSlayer.onlySlayerNumber = "IV";
break;
+ case 5:
+ BlockWrongSlayer.onlySlayerNumber = "V";
+ break;
default:
BlockWrongSlayer.onlySlayerName = "";
BlockWrongSlayer.onlySlayerNumber = "";
diff --git a/src/main/java/me/Danker/commands/CustomMusicCommand.java b/src/main/java/me/Danker/commands/CustomMusicCommand.java
new file mode 100644
index 0000000..5364930
--- /dev/null
+++ b/src/main/java/me/Danker/commands/CustomMusicCommand.java
@@ -0,0 +1,70 @@
+package me.Danker.commands;
+
+import me.Danker.DankersSkyblockMod;
+import me.Danker.features.CustomMusic;
+import net.minecraft.command.CommandBase;
+import net.minecraft.command.CommandException;
+import net.minecraft.command.ICommandSender;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.util.BlockPos;
+import net.minecraft.util.ChatComponentText;
+
+import javax.sound.sampled.LineUnavailableException;
+import javax.sound.sampled.UnsupportedAudioFileException;
+import java.io.IOException;
+import java.util.List;
+
+public class CustomMusicCommand extends CommandBase {
+
+ @Override
+ public String getCommandName() {
+ return "dsmmusic";
+ }
+
+ @Override
+ public String getCommandUsage(ICommandSender arg0) {
+ return "/" + getCommandName() + " <stop/reload>";
+ }
+
+ @Override
+ public int getRequiredPermissionLevel() {
+ return 0;
+ }
+
+ @Override
+ public List<String> addTabCompletionOptions(ICommandSender sender, String[] args, BlockPos pos) {
+ if (args.length == 1) {
+ return getListOfStringsMatchingLastWord(args, "stop", "reload");
+ }
+ return null;
+ }
+
+ @Override
+ public void processCommand(ICommandSender arg0, String[] arg1) throws CommandException {
+ final EntityPlayer player = (EntityPlayer)arg0;
+
+ if (arg1.length == 0) {
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.ERROR_COLOUR + "Usage: " + getCommandUsage(arg0)));
+ return;
+ }
+
+ switch (arg1[0].toLowerCase()) {
+ case "stop":
+ if (CustomMusic.dungeonboss != null) CustomMusic.dungeonboss.stop();
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Stopped custom music."));
+ break;
+ case "reload":
+ try {
+ CustomMusic.init(DankersSkyblockMod.configDirectory);
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Reloaded custom music."));
+ } catch (IOException | LineUnavailableException | UnsupportedAudioFileException e) {
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.ERROR_COLOUR + "An error occurred while trying to reload music."));
+ e.printStackTrace();
+ }
+ break;
+ default:
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.ERROR_COLOUR + "Usage: " + getCommandUsage(arg0)));
+ }
+ }
+
+}
diff --git a/src/main/java/me/Danker/commands/DHelpCommand.java b/src/main/java/me/Danker/commands/DHelpCommand.java
index 844bb91..34f85f3 100644
--- a/src/main/java/me/Danker/commands/DHelpCommand.java
+++ b/src/main/java/me/Danker/commands/DHelpCommand.java
@@ -34,7 +34,7 @@ public class DHelpCommand extends CommandBase {
EnumChatFormatting.GOLD + " Commands, " + EnumChatFormatting.GREEN + " Keybinds.\n" +
EnumChatFormatting.GOLD + " /dhelp" + EnumChatFormatting.AQUA + " - Returns this message.\n" +
EnumChatFormatting.GOLD + " /dsm" + EnumChatFormatting.AQUA + " - Opens the GUI for Danker's Skyblock Mod.\n" +
- EnumChatFormatting.GOLD + " /toggle <gparty/coords/golden/slayercount/rngesusalerts/splitfishing/chatmaddox/spiritbearalerts/aotd/lividdagger/flowerweapons/sceptremessages/midasstaffmessages/implosionmessages/healmessages/cooldownmessages/manamessages/killcombomessages/petcolors/dungeontimer/golemalerts/expertiselore/skill50display/outlinetext/caketimer/lowhealthnotify/lividsolver/stopsalvagestarred/notifyslayerslain/autoskilltracker/necronnotifications/bonzotimer/threemanpuzzle/oruopuzzle/blazepuzzle/creeperpuzzle/waterpuzzle/tictactoepuzzle/boulderpuzzle/silverfishpuzzle/watchermessage/startswithterminal/selectallterminal/clickinorderterminal/blockwrongterminalclicks/itemframeonsealanterns/ultrasequencer/chronomatron/superpairs/hidetooltipsinaddons/pickblock/list>" + EnumChatFormatting.AQUA + " - Toggles features. /toggle list returns values of every toggle.\n" +
+ EnumChatFormatting.GOLD + " /toggle <gparty/coords/golden/slayercount/rngesusalerts/splitfishing/chatmaddox/spiritbearalerts/aotd/lividdagger/flowerweapons/sceptremessages/midasstaffmessages/implosionmessages/healmessages/cooldownmessages/manamessages/killcombomessages/petcolors/dungeontimer/golemalerts/expertiselore/skill50display/outlinetext/caketimer/lowhealthnotify/lividsolver/stopsalvagestarred/notifyslayerslain/autoskilltracker/necronnotifications/bonzotimer/threemanpuzzle/oruopuzzle/blazepuzzle/creeperpuzzle/waterpuzzle/tictactoepuzzle/boulderpuzzle/silverfishpuzzle/icewalkpuzzle/watchermessage/startswithterminal/selectallterminal/clickinorderterminal/blockwrongterminalclicks/itemframeonsealanterns/ultrasequencer/chronomatron/superpairs/hidetooltipsinaddons/pickblock/dungeonbossmusic/list>" + EnumChatFormatting.AQUA + " - Toggles features. /toggle list returns values of every toggle.\n" +
EnumChatFormatting.GOLD + " /setkey <key>" + EnumChatFormatting.AQUA + " - Sets API key.\n" +
EnumChatFormatting.GOLD + " /getkey" + EnumChatFormatting.AQUA + " - Returns key set with /setkey and copies it to your clipboard.\n" +
EnumChatFormatting.GOLD + " /loot <zombie/spider/wolf/fishing/catacombs/mythological/> [winter/festival/spooky/f(1-7)/session]" + EnumChatFormatting.AQUA + " - Returns loot received from slayer quests or fishing stats. /loot fishing winter returns winter sea creatures instead.\n" +
@@ -52,10 +52,11 @@ public class DHelpCommand extends CommandBase {
EnumChatFormatting.GOLD + " /dungeons [player] " + EnumChatFormatting.AQUA + " - Uses API to get dungeon levels of a person. If no name is provided, it checks yours.\n" +
EnumChatFormatting.GOLD + " /importfishing" + EnumChatFormatting.AQUA + " - Imports your fishing stats from your latest profile to your fishing tracker using the API.\n" +
EnumChatFormatting.GOLD + " /sbplayers" + EnumChatFormatting.AQUA + " - Uses API to find how many players are on each Skyblock island.\n" +
- EnumChatFormatting.GOLD + " /onlyslayer <zombie/spider/wolf> <1/2/3/4>" + EnumChatFormatting.AQUA + " - Stops you from starting a slayer quest other than the one specified.\n" +
+ EnumChatFormatting.GOLD + " /onlyslayer <zombie/spider/wolf> <1/2/3/4/5>" + EnumChatFormatting.AQUA + " - Stops you from starting a slayer quest other than the one specified.\n" +
EnumChatFormatting.GOLD + " /skilltracker <start/stop/reset>" + EnumChatFormatting.AQUA + " - Text display for skill xp/hour.\n" +
- EnumChatFormatting.GOLD + " /reparty " + EnumChatFormatting.AQUA + " - Disbands and reparties all members in the party.\n" +
- EnumChatFormatting.GOLD + " /lobbybank " + EnumChatFormatting.AQUA + " - Uses API to find the average bank total of the lobby, as well the three players with the highest total money in the bank(and purse).\n" +
+ EnumChatFormatting.GOLD + " /lobbybank " + EnumChatFormatting.AQUA + " - Uses API to find the average bank total of the lobby, as well the three players with the highest total money in the bank(and purse).\n" +
+ EnumChatFormatting.GOLD + " /reparty" + EnumChatFormatting.AQUA + " - Disbands and reparties all members in the party.\n" +
+ EnumChatFormatting.GOLD + " /dsmmusic <stop/reload>" + EnumChatFormatting.AQUA + " - Stops or reloads the custom music.\n" +
EnumChatFormatting.GREEN + " Open Maddox Menu" + EnumChatFormatting.AQUA + " - M by default.\n" +
EnumChatFormatting.GREEN + " Start/Stop Skill Tracker" + EnumChatFormatting.AQUA + " - Numpad 5 by default.\n"));
}
diff --git a/src/main/java/me/Danker/commands/DankerGuiCommand.java b/src/main/java/me/Danker/commands/DankerGuiCommand.java
index fdd8196..79ab3e3 100644
--- a/src/main/java/me/Danker/commands/DankerGuiCommand.java
+++ b/src/main/java/me/Danker/commands/DankerGuiCommand.java
@@ -77,6 +77,7 @@ public class DankerGuiCommand extends CommandBase {
debug.append("[tictactoepuzzle][").append(ToggleCommand.ticTacToeToggled).append("]\n");
debug.append("[boulderpuzzle][").append(ToggleCommand.boulderToggled).append("]\n");
debug.append("[silverfishpuzzle][").append(ToggleCommand.silverfishToggled).append("]\n");
+ debug.append("[icewalkpuzzle][").append(ToggleCommand.iceWalkToggled).append("]\n");
debug.append("[watchermessage][").append(ToggleCommand.watcherReadyToggled).append("]\n");
debug.append("[startswithterminal][").append(ToggleCommand.startsWithToggled).append("]\n");
debug.append("[selectallterminal][").append(ToggleCommand.selectAllToggled).append("]\n");
@@ -91,6 +92,7 @@ public class DankerGuiCommand extends CommandBase {
debug.append("[shadowFuryAbility][").append(ToggleCommand.shadowFuryToggled).append("]\n");
debug.append("[specialhoe][").append(ToggleCommand.specialHoeRightClick).append("]\n");
debug.append("[melodyTooltips][").append(ToggleCommand.melodyTooltips).append("]\n");
+ debug.append("[dungeonbossmusic][").append(ToggleCommand.dungeonBossMusic).append("]\n");
debug.append("# Locations\n");
debug.append("[coords][").append(MoveCommand.coordsXY[0]).append(", ").append(MoveCommand.coordsXY[1]).append("]\n");
debug.append("[display][").append(MoveCommand.displayXY[0]).append(", ").append(MoveCommand.displayXY[1]).append("]\n");
@@ -112,7 +114,7 @@ public class DankerGuiCommand extends CommandBase {
debug.append("<None>\n");
} else {
for (ResourcePackRepository.Entry resource : Minecraft.getMinecraft().getResourcePackRepository().getRepositoryEntries()) {
- debug.append("< ").append(StringUtils.stripControlCodes(resource.getResourcePackName())).append(" >\n");
+ debug.append("<").append(StringUtils.stripControlCodes(resource.getResourcePackName())).append(">\n");
}
}
debug.append("```");
diff --git a/src/main/java/me/Danker/commands/LootCommand.java b/src/main/java/me/Danker/commands/LootCommand.java
index 3dba27d..5502068 100644
--- a/src/main/java/me/Danker/commands/LootCommand.java
+++ b/src/main/java/me/Danker/commands/LootCommand.java
@@ -227,6 +227,8 @@ public class LootCommand extends CommandBase {
EnumChatFormatting.RED + " Revenant Catalysts: " + LootTracker.zombieRevCatasSession + "\n" +
EnumChatFormatting.DARK_GREEN + " Snake Runes: " + LootTracker.zombieSnakesSession + "\n" +
EnumChatFormatting.GOLD + " Scythe Blades: " + LootTracker.zombieScythesSession + "\n" +
+ EnumChatFormatting.RED + " Shard of the Shreddeds: " + LootTracker.zombieShardsSession + "\n" +
+ EnumChatFormatting.RED + " Warden Hearts: " + LootTracker.zombieWardenHeartsSession + "\n" +
EnumChatFormatting.AQUA + " Time Since RNG: " + timeBetween + "\n" +
EnumChatFormatting.AQUA + " Bosses Since RNG: " + bossesBetween + "\n" +
EnumChatFormatting.GREEN + EnumChatFormatting.BOLD + " -------------------"));
@@ -261,6 +263,8 @@ public class LootCommand extends CommandBase {
EnumChatFormatting.RED + " Revenant Catalysts: " + LootTracker.zombieRevCatas + "\n" +
EnumChatFormatting.DARK_GREEN + " Snake Runes: " + LootTracker.zombieSnakes + "\n" +
EnumChatFormatting.GOLD + " Scythe Blades: " + LootTracker.zombieScythes + "\n" +
+ EnumChatFormatting.RED + " Shard of the Shreddeds: " + LootTracker.zombieShards + "\n" +
+ EnumChatFormatting.RED + " Warden Hearts: " + LootTracker.zombieWardenHearts + "\n" +
EnumChatFormatting.AQUA + " Time Since RNG: " + timeBetween + "\n" +
EnumChatFormatting.AQUA + " Bosses Since RNG: " + bossesBetween + "\n" +
EnumChatFormatting.GREEN + EnumChatFormatting.BOLD + " -------------------"));
diff --git a/src/main/java/me/Danker/commands/ToggleCommand.java b/src/main/java/me/Danker/commands/ToggleCommand.java
index c4f3ca4..fc6b4f3 100644
--- a/src/main/java/me/Danker/commands/ToggleCommand.java
+++ b/src/main/java/me/Danker/commands/ToggleCommand.java
@@ -1,6 +1,7 @@
package me.Danker.commands;
import me.Danker.DankersSkyblockMod;
+import me.Danker.features.CustomMusic;
import me.Danker.handlers.ConfigHandler;
import net.minecraft.command.CommandBase;
import net.minecraft.command.CommandException;
@@ -63,6 +64,7 @@ public class ToggleCommand extends CommandBase implements ICommand {
public static boolean ticTacToeToggled;
public static boolean boulderToggled;
public static boolean silverfishToggled;
+ public static boolean iceWalkToggled;
// Terminal Helpers
public static boolean startsWithToggled;
public static boolean selectAllToggled;
@@ -76,6 +78,8 @@ public class ToggleCommand extends CommandBase implements ICommand {
public static boolean hideTooltipsInExperimentAddonsToggled;
public static boolean specialHoeRightClick;
public static boolean melodyTooltips;
+ // Custom Music
+ public static boolean dungeonBossMusic;
@Override
public String getCommandName() {
@@ -90,10 +94,10 @@ public class ToggleCommand extends CommandBase implements ICommand {
"skill50display/outlinetext/midasstaffmessages/implosionmessages/healmessages/cooldownmessages/" +
"manamessages/killcombomessages/caketimer/lowhealthnotify/lividsolver/stopsalvagestarred/" +
"notifyslayerslain/necronnotifications/bonzotimer/threemanpuzzle/oruopuzzle/blazepuzzle/" +
- "creeperpuzzle/waterpuzzle/tictactoepuzzle/boulderpuzzle/silverfishpuzzle/watchermessage/" +
+ "creeperpuzzle/waterpuzzle/tictactoepuzzle/boulderpuzzle/silverfishpuzzle/icewalkpuzzle/watchermessage/" +
"startswithterminal/selectallterminal/clickinorderterminal/blockwrongterminalclicks/" +
"itemframeonsealanterns/ultrasequencer/chronomatron/superpairs/hidetooltipsinaddons/pickblock/ " +
- "/specialhoe/melodytooltips/highlightslayers/highlightArachne/,list>";
+ "/specialhoe/melodytooltips/highlightslayers/highlightArachne/dungeonbossmusic/list>";
}
@Override
@@ -113,10 +117,10 @@ public class ToggleCommand extends CommandBase implements ICommand {
"stopsalvagestarred", "notifyslayerslain", "necronnotifications",
"bonzotimer", "threemanpuzzle", "oruopuzzle", "blazepuzzle",
"creeperpuzzle", "waterpuzzle", "tictactoepuzzle", "boulderpuzzle",
- "silverfishpuzzle", "watchermessage", "startswithterminal",
+ "silverfishpuzzle", "icewalkpuzzle", "watchermessage", "startswithterminal",
"selectallterminal", "clickinorderterminal", "blockwrongterminalclicks",
"itemframeonsealanterns", "ultrasequencer", "chronomatron", "superpairs",
- "hidetooltipsinaddons", "pickblock", "specialhoe", "melodytooltips", "highlightslayers", "list");
+ "hidetooltipsinaddons", "pickblock", "specialhoe", "melodytooltips", "highlightslayers", "dungeonbossmusic", "list");
}
return null;
}
@@ -347,6 +351,11 @@ public class ToggleCommand extends CommandBase implements ICommand {
ConfigHandler.writeBooleanConfig("toggles", "SilverfishPuzzle", silverfishToggled);
player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Silverfish puzzle solver has been set to " + DankersSkyblockMod.SECONDARY_COLOUR + silverfishToggled + DankersSkyblockMod.MAIN_COLOUR + "."));
break;
+ case "icewalkpuzzle":
+ iceWalkToggled = !iceWalkToggled;
+ ConfigHandler.writeBooleanConfig("toggles", "IceWalkPuzzle", iceWalkToggled);
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Ice walk puzzle solver has been set to " + DankersSkyblockMod.SECONDARY_COLOUR + iceWalkToggled + DankersSkyblockMod.MAIN_COLOUR + "."));
+ break;
case "watchermessage":
watcherReadyToggled = !watcherReadyToggled;
ConfigHandler.writeBooleanConfig("toggles", "WatcherReadyMessage", watcherReadyToggled);
@@ -421,6 +430,17 @@ public class ToggleCommand extends CommandBase implements ICommand {
highlightArachne = !highlightArachne;
ConfigHandler.writeBooleanConfig("toggles", "HighlightArachne", highlightArachne);
player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Highlight Arachne " + DankersSkyblockMod.SECONDARY_COLOUR + highlightArachne + DankersSkyblockMod.MAIN_COLOUR + "."));
+ case "dungeonbossmusic":
+ dungeonBossMusic = !dungeonBossMusic;
+ if (CustomMusic.dungeonboss != null) {
+ if (dungeonBossMusic) {
+ CustomMusic.start();
+ } else {
+ CustomMusic.dungeonboss.stop();
+ }
+ }
+ ConfigHandler.writeBooleanConfig("toggles", "DungeonBossMusic", dungeonBossMusic);
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.MAIN_COLOUR + "Custom dungeon boss music has been set to " + DankersSkyblockMod.SECONDARY_COLOUR + dungeonBossMusic + DankersSkyblockMod.MAIN_COLOUR + "."));
break;
case "list":
player.addChatMessage(new ChatComponentText(DankersSkyblockMod.TYPE_COLOUR + "Guild party notifications: " + DankersSkyblockMod.VALUE_COLOUR + gpartyToggled + "\n" +
@@ -458,6 +478,7 @@ public class ToggleCommand extends CommandBase implements ICommand {
DankersSkyblockMod.TYPE_COLOUR + " Tic tac toe puzzle solver: " + DankersSkyblockMod.VALUE_COLOUR + ticTacToeToggled + "\n" +
DankersSkyblockMod.TYPE_COLOUR + " Boulder puzzle solver: " + DankersSkyblockMod.VALUE_COLOUR + boulderToggled + "\n" +
DankersSkyblockMod.TYPE_COLOUR + " Silverfish puzzle solver: " + DankersSkyblockMod.VALUE_COLOUR + silverfishToggled + "\n" +
+ DankersSkyblockMod.TYPE_COLOUR + " Ice walk puzzle solver: " + DankersSkyblockMod.VALUE_COLOUR + iceWalkToggled + "\n" +
DankersSkyblockMod.TYPE_COLOUR + " Watcher ready message: " + DankersSkyblockMod.VALUE_COLOUR + watcherReadyToggled + "\n" +
DankersSkyblockMod.TYPE_COLOUR + " Starts with letter terminal solver: " + DankersSkyblockMod.VALUE_COLOUR + startsWithToggled + "\n" +
DankersSkyblockMod.TYPE_COLOUR + " Select all color items terminal solver: " + DankersSkyblockMod.VALUE_COLOUR + selectAllToggled + "\n" +
@@ -471,7 +492,7 @@ public class ToggleCommand extends CommandBase implements ICommand {
DankersSkyblockMod.TYPE_COLOUR + " Hide tooltips in Melody's Harp " + DankersSkyblockMod.VALUE_COLOUR + melodyTooltips + "\n" +
DankersSkyblockMod.TYPE_COLOUR + " Highlight Slayer Bosses " + DankersSkyblockMod.VALUE_COLOUR + highlightSlayers + "\n" +
DankersSkyblockMod.TYPE_COLOUR + " Highlight Arachne Boss " + DankersSkyblockMod.VALUE_COLOUR + highlightArachne
-
+ DankersSkyblockMod.TYPE_COLOUR + " Custom dungeon boss music: " + DankersSkyblockMod.VALUE_COLOUR + dungeonBossMusic
));
break;
default:
diff --git a/src/main/java/me/Danker/features/puzzlesolvers/BlockPlacingFlowers.java b/src/main/java/me/Danker/features/BlockPlacingFlowers.java
index fe89fef..9bfc986 100644
--- a/src/main/java/me/Danker/features/puzzlesolvers/BlockPlacingFlowers.java
+++ b/src/main/java/me/Danker/features/BlockPlacingFlowers.java
@@ -1,4 +1,4 @@
-package me.Danker.features.puzzlesolvers;
+package me.Danker.features;
import me.Danker.commands.ToggleCommand;
import me.Danker.utils.Utils;
diff --git a/src/main/java/me/Danker/features/CustomMusic.java b/src/main/java/me/Danker/features/CustomMusic.java
new file mode 100644
index 0000000..8617e7b
--- /dev/null
+++ b/src/main/java/me/Danker/features/CustomMusic.java
@@ -0,0 +1,117 @@
+package me.Danker.features;
+
+import me.Danker.DankersSkyblockMod;
+import me.Danker.commands.ToggleCommand;
+import me.Danker.handlers.ScoreboardHandler;
+import me.Danker.utils.Utils;
+import net.minecraft.client.Minecraft;
+import net.minecraft.client.entity.EntityPlayerSP;
+import net.minecraft.util.StringUtils;
+import net.minecraft.world.World;
+import net.minecraftforge.client.event.ClientChatReceivedEvent;
+import net.minecraftforge.client.event.sound.PlaySoundEvent;
+import net.minecraftforge.event.world.WorldEvent;
+import net.minecraftforge.fml.common.eventhandler.EventPriority;
+import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
+import net.minecraftforge.fml.common.gameevent.TickEvent;
+
+import javax.sound.sampled.*;
+import java.io.File;
+import java.io.IOException;
+import java.util.List;
+
+public class CustomMusic {
+
+ static boolean prevInDungeonBossRoom = false;
+ static boolean inDungeonBossRoom = false;
+ public static Clip dungeonboss;
+
+ @SubscribeEvent
+ public void onWorldChange(WorldEvent.Load event) {
+ reset();
+ }
+
+ @SubscribeEvent(priority = EventPriority.LOW)
+ public void onTick(TickEvent.ClientTickEvent event) {
+ if (event.phase != TickEvent.Phase.START) return;
+
+ Minecraft mc = Minecraft.getMinecraft();
+ EntityPlayerSP player = mc.thePlayer;
+ World world = mc.theWorld;
+ if (DankersSkyblockMod.tickAmount % 10 == 0) {
+ if (ToggleCommand.dungeonBossMusic && Utils.inDungeons && world != null && player != null) {
+ prevInDungeonBossRoom = inDungeonBossRoom;
+ List<String> scoreboard = ScoreboardHandler.getSidebarLines();
+ if (scoreboard.size() > 2) {
+ String firstLine = ScoreboardHandler.cleanSB(scoreboard.get(scoreboard.size() - 1));
+ String secondLine = ScoreboardHandler.cleanSB(scoreboard.get(scoreboard.size() - 2));
+ if (firstLine.contains("30,30") || // F1
+ firstLine.contains("30,125") || // F2
+ firstLine.contains("30,225") || // F3
+ secondLine.contains("- Healthy") || // F3
+ firstLine.contains("30,344") || // F4
+ firstLine.contains("livid") || // F5
+ firstLine.contains("sadan") || // F6
+ firstLine.contains("necron")) { // F7
+
+ inDungeonBossRoom = true;
+ if (!prevInDungeonBossRoom && dungeonboss != null) {
+ start();
+ }
+ } else {
+ reset();
+ }
+ }
+ }
+ }
+ }
+
+ @SubscribeEvent
+ public void onChat(ClientChatReceivedEvent event) {
+ if (!Utils.inDungeons) return;
+ String message = StringUtils.stripControlCodes(event.message.getUnformattedText());
+
+ if (message.contains("EXTRA STATS ")) {
+ if (dungeonboss != null) dungeonboss.stop();
+ }
+ }
+
+ @SubscribeEvent
+ public void onSound(PlaySoundEvent event) {
+ if (ToggleCommand.dungeonBossMusic && Utils.inDungeons && inDungeonBossRoom) {
+ if (event.name.startsWith("note.")) event.setCanceled(true);
+ }
+ }
+
+ public static void init(String configDirectory) throws IOException, LineUnavailableException, UnsupportedAudioFileException {
+ if (configDirectory == null) return;
+ File directory = new File(configDirectory + "\\dsmmusic");
+ if (!directory.exists()) directory.mkdir();
+
+ reset();
+
+ dungeonboss = AudioSystem.getClip();
+ File dungeonBossFile = new File(configDirectory + "\\dsmmusic\\dungeonboss.wav");
+ if (dungeonBossFile.exists()) {
+ AudioInputStream ais = AudioSystem.getAudioInputStream(dungeonBossFile);
+ dungeonboss.open(ais);
+
+ FloatControl volume = (FloatControl) dungeonboss.getControl(FloatControl.Type.MASTER_GAIN);
+ volume.setValue(-20F);
+ }
+ }
+
+ static void reset() {
+ inDungeonBossRoom = false;
+ if (dungeonboss != null) dungeonboss.stop();
+ }
+
+ public static void start() {
+ if (dungeonboss != null && inDungeonBossRoom) {
+ dungeonboss.setMicrosecondPosition(0);
+ dungeonboss.start();
+ dungeonboss.loop(Clip.LOOP_CONTINUOUSLY);
+ }
+ }
+
+}
diff --git a/src/main/java/me/Danker/features/loot/LootDisplay.java b/src/main/java/me/Danker/features/loot/LootDisplay.java
index e3f43e8..cd34da7 100644
--- a/src/main/java/me/Danker/features/loot/LootDisplay.java
+++ b/src/main/java/me/Danker/features/loot/LootDisplay.java
@@ -221,6 +221,8 @@ public class LootDisplay {
EnumChatFormatting.RED + "Revenant Catalysts:\n" +
EnumChatFormatting.DARK_GREEN + "Snake Runes:\n" +
EnumChatFormatting.GOLD + "Scythe Blades:\n" +
+ EnumChatFormatting.RED + "Shard of Shreddeds:\n" +
+ EnumChatFormatting.RED + "Warden Hearts:\n" +
EnumChatFormatting.AQUA + "Time Since RNG:\n" +
EnumChatFormatting.AQUA + "Bosses Since RNG:";
countText = EnumChatFormatting.GOLD + nf.format(LootTracker.zombieRevs) + "\n" +
@@ -233,6 +235,8 @@ public class LootDisplay {
EnumChatFormatting.RED + LootTracker.zombieRevCatas + "\n" +
EnumChatFormatting.DARK_GREEN + LootTracker.zombieSnakes + "\n" +
EnumChatFormatting.GOLD + LootTracker.zombieScythes + "\n" +
+ EnumChatFormatting.RED + LootTracker.zombieShards + "\n" +
+ EnumChatFormatting.RED + LootTracker.zombieWardenHearts + "\n" +
EnumChatFormatting.AQUA + timeBetween + "\n" +
EnumChatFormatting.AQUA + bossesBetween;
break;
@@ -263,6 +267,8 @@ public class LootDisplay {
EnumChatFormatting.RED + "Revenant Catalysts:\n" +
EnumChatFormatting.DARK_GREEN + "Snake Runes:\n" +
EnumChatFormatting.GOLD + "Scythe Blades:\n" +
+ EnumChatFormatting.RED + "Shard of Shreddeds:\n" +
+ EnumChatFormatting.RED + "Warden Hearts:\n" +
EnumChatFormatting.AQUA + "Time Since RNG:\n" +
EnumChatFormatting.AQUA + "Bosses Since RNG:";
countText = EnumChatFormatting.GOLD + nf.format(LootTracker.zombieRevsSession) + "\n" +
@@ -275,6 +281,8 @@ public class LootDisplay {
EnumChatFormatting.RED + LootTracker.zombieRevCatasSession + "\n" +
EnumChatFormatting.DARK_GREEN + LootTracker.zombieSnakesSession + "