summaryrefslogtreecommitdiff
path: root/src/handlers/volumeCommand.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/handlers/volumeCommand.js')
-rw-r--r--src/handlers/volumeCommand.js28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/handlers/volumeCommand.js b/src/handlers/volumeCommand.js
new file mode 100644
index 0000000..dbd99de
--- /dev/null
+++ b/src/handlers/volumeCommand.js
@@ -0,0 +1,28 @@
+const { setQueueVolume } = require('../utils/player');
+const { getQueueOrReply } = require('../utils/helpers');
+
+function handleVolume(interaction, queues) {
+ const queue = getQueueOrReply(interaction, queues, 'Nothing is playing!');
+ if (!queue) return;
+
+ const subcommand = interaction.options.getSubcommand();
+
+ if (subcommand === 'set') {
+ const value = interaction.options.getInteger('value');
+ if (value < 0 || value > 100) {
+ return interaction.reply('Volume must be between 0 and 100!');
+ }
+ setQueueVolume(queue, value);
+ interaction.reply(`Volume set to ${value}%`);
+ } else if (subcommand === 'inc') {
+ const amount = interaction.options.getInteger('amount') || 10;
+ const newVolume = setQueueVolume(queue, queue.volume + amount);
+ interaction.reply(`Volume increased to ${newVolume}%`);
+ } else if (subcommand === 'dec') {
+ const amount = interaction.options.getInteger('amount') || 10;
+ const newVolume = setQueueVolume(queue, queue.volume - amount);
+ interaction.reply(`Volume decreased to ${newVolume}%`);
+ }
+}
+
+module.exports = { handleVolume };