Refactoring, comments & overall improvements

This commit is contained in:
deytenit committed 2024-01-30 14:31:15 +03:00
1 parent d7421251ba
commit 3144dd69b7
60 files changed
+1106 -708

No files matched your search

+49
View File
@@ -0,0 +1,49 @@
import { ChatInputCommandInteraction, SlashCommandBuilder } from "discord.js";
import Client from "$lib/client.js";
import logger from "$lib/logger.js";
import replies from "../lib/replies.js";
import { LoopOption } from "../lib/types.js";
import { controller } from "../module.js";
async function execute(client: Client, interaction: ChatInputCommandInteraction) {
if (!interaction.isChatInputCommand() || !interaction.inCachedGuild() || !interaction.channel) {
logger.warn("Interaction rejected.", { interaction });
return;
}
const option = interaction.options.getString("option", true) as LoopOption;
const player = controller.get(interaction.guild, interaction.channel);
if (!player) {
await interaction.reply(replies.notExists());
return;
}
player.queue.loop = option;
await interaction.reply(replies.looped(option));
}
const data = new SlashCommandBuilder()
.setName("loop")
.setDescription("Select player's loop mode.")
.addStringOption((option) =>
option
.setName("option")
.setDescription("Loop option.")
.setChoices(
{ name: "Loop queue", value: "LOOP" },
{ name: "Loop single track", value: "SONG" },
{ name: "Drop on final", value: "NONE" },
{ name: "Random", value: "AUTO" }
)
.setRequired(true)
)
.setDMPermission(false);
export { data, execute };