/* eslint-disable no-inner-declarations */ import Command from '../../base/Command'; import { ChatInputCommandInteraction, EmbedBuilder, PermissionsBitField, SlashCommandBuilder } from 'discord.js'; import IData from '../../utils/IData'; import { selectChannelMenu } from '../../utils/InteractionUtils'; const commandconfig = { name: 'setupeconomy', description: 'This is a command!', enabled: true, guildOnly: true, aliases: [], memberPermissions: [], botPermissions: [PermissionsBitField.Flags.SendMessages, PermissionsBitField.Flags.EmbedLinks], nsfw: false, ownerOnly: false, cooldown: 1000, }; export default class Setupeconomy extends Command { constructor(client) { super(client, { slashData: new SlashCommandBuilder().setName(commandconfig.name).setDescription(commandconfig.description), description: commandconfig.description, name: commandconfig.name, dirname: __dirname, enabled: commandconfig.enabled, guildOnly: commandconfig.guildOnly, memberPermissions: commandconfig.memberPermissions, botPermissions: commandconfig.botPermissions, nsfw: commandconfig.nsfw, ownerOnly: commandconfig.ownerOnly, cooldown: commandconfig.cooldown, }); } /** * @param {ChatInputCommandInteraction } interaction - The interaction object * @param { IData } data - The mongodb data object */ async run(interaction: ChatInputCommandInteraction, data: IData) { await interaction.deferReply(); if (!interaction.inCachedGuild()) return interaction.editReply('Der Command kann hier nicht ausgeführt werden.'); if (!data.guild) data.guild = await this.client.findOrCreateGuild(interaction.guild.id); if (!data.guild.economy) data.guild.economy = {}; if (!data.guild.economy.startChannel) { const channel = await selectChannelMenu(this.client, interaction, data, { afterUpdate: { content: '', }, selectMenu: { content: 'Wähle einen Channel aus, an dem die Startnachricht erscheinen soll.', }, componentCustomId: 'economyStartChannel', selectMessage: { embeds: [ new EmbedBuilder() .setTitle('Economy Setup | Start Channel') .setDescription( 'Bitte antworte auf diese Nachricht mit dem Kanal welcher für die Start Nachricht verwendet werden soll', ), ], }, }); console.log(channel); } return interaction.deferred ? interaction.editReply('Das Setup wurde abgeschlossen.') : interaction.reply('Das Setup wurde abgeschlossen.'); } }