aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/Danker/commands
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/me/Danker/commands')
-rw-r--r--src/main/java/me/Danker/commands/CustomMusicCommand.java38
1 files changed, 36 insertions, 2 deletions
diff --git a/src/main/java/me/Danker/commands/CustomMusicCommand.java b/src/main/java/me/Danker/commands/CustomMusicCommand.java
index 0279ee8..8e389ac 100644
--- a/src/main/java/me/Danker/commands/CustomMusicCommand.java
+++ b/src/main/java/me/Danker/commands/CustomMusicCommand.java
@@ -2,6 +2,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;
import net.minecraft.command.ICommandSender;
@@ -9,6 +10,8 @@ import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.util.BlockPos;
import net.minecraft.util.ChatComponentText;
+import javax.sound.sampled.Clip;
+import javax.sound.sampled.FloatControl;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.UnsupportedAudioFileException;
import java.io.IOException;
@@ -23,7 +26,7 @@ public class CustomMusicCommand extends CommandBase {
@Override
public String getCommandUsage(ICommandSender arg0) {
- return "/" + getCommandName() + " <stop/reload>";
+ return "/" + getCommandName() + " <stop/reload/volume> [dungeonboss] [#]";
}
public static String usage(ICommandSender arg0) {
@@ -38,7 +41,9 @@ public class CustomMusicCommand extends CommandBase {
@Override
public List<String> addTabCompletionOptions(ICommandSender sender, String[] args, BlockPos pos) {
if (args.length == 1) {
- return getListOfStringsMatchingLastWord(args, "stop", "reload");
+ return getListOfStringsMatchingLastWord(args, "stop", "reload", "volume");
+ } else if (args.length == 2) {
+ return getListOfStringsMatchingLastWord(args, "dungeonboss");
}
return null;
}
@@ -66,6 +71,35 @@ public class CustomMusicCommand extends CommandBase {
e.printStackTrace();
}
break;
+ case "volume":
+ if (arg1.length < 3) {
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.ERROR_COLOUR + "Usage: " + getCommandUsage(arg0)));
+ return;
+ }
+
+ switch (arg1[1].toLowerCase()) {
+ case "dungeonboss":
+ try {
+ float volume = Float.parseFloat(arg1[2]);
+
+ FloatControl bounds = (FloatControl) CustomMusic.dungeonboss.getControl(FloatControl.Type.MASTER_GAIN);
+ if (volume <= bounds.getMinimum() || volume >= bounds.getMaximum()) {
+ player.addChatMessage(new ChatComponentText(DankersSkyblockMod.ERROR_COLOUR + "Volume can only be set between " + bounds.getMinimum() + " and " + bounds.getMaximum() + "."));
+ return;
+ }
+
+ CustomMusic.dungeonbossDecibels = volume;
+ ConfigHandler.writeIntConfig("music", "DungeonBossDecibels", (int) volume);
+ CustomMusic.init(DankersSkyblockMod.configDirectory);
+ } 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)));
+ }
+ break;
default:
player.addChatMessage(new ChatComponentText(DankersSkyblockMod.ERROR_COLOUR + "Usage: " + getCommandUsage(arg0)));
}