import SlashCommands from '../../Structure/SlashCommands.js'; import { SlashCommandBuilder, PermissionFlagsBits, EmbedBuilder } from 'discord.js'; import Roblox from '../../Utils/Classes/getData.js'; const data = new Roblox() export default class extends SlashCommands { constructor(client) { super(client, { deferReply: true, //isPrivate: true, data: new SlashCommandBuilder() .setName('kick') .setDescription('〔👑 Moderação〕Expulsa o jogador do servidor do Roblox.') //.setDefaultMemberPermissions(PermissionFlagsBits.Administrator) <-- aparece apenas para usuários que tem a permissão administrador --> .addStringOption(option => option.setName("identifier") .setDescription("〔👑 Moderação〕Qual o usuário que será kikado?") .setRequired(true) ) .addStringOption(option => option.setName("motivo") .setDescription("〔👑 Moderação〕Qual o motivo do kick?") .setRequired(true) ) }); } run = async (interaction) => { const search = interaction.options.getString("identifier") try { const str = interaction.options.getString("motivo") const user = await data.getUserIdByUsername(search) const findUser = await this.mongo.get(`bandb.users.${user.id}`) if (!findUser) { const embed = new EmbedBuilder() .setColor('#2ecc70') .setTitle('Jogador Expulso') .setDescription(`**Nome de Exibição**\n${user.name}\n**Nome de Usuário**\n${user.displayName}\n**ID**\n${user.id}\n**Motivo**\n${str}\n**Administrador**\n${interaction.user.username} `) const aviso = new EmbedBuilder() .setTitle('Aviso') .setColor('#349cdc') .setDescription(`Eu não tenho mensagens de resposta caso o jogador não esteja no jogo. Certifique-se de que o jogador está no jogo antes de usar o comando.`) await this.mongo.set(`bandb.users.${user.id}`, { userid: user.id, username: user.name, reason: str, admin: interaction.user.username }, 10) await interaction.editReply({ embeds: [aviso, embed] }).then(() => setTimeout(async () => await this.mongo.delete(`bandb.users.${user.id}`), 10000)) return; } else { await interaction.editReply({ embeds: [ new EmbedBuilder() .setTitle('Erro') .setColor('#db523f') .setDescription(`Aguarde um momento antes de usar o comando novamente.`) ] }) return; } } catch(err) { await interaction.editReply({ embeds: [ new EmbedBuilder() .setTitle('Erro') .setColor('#db523f') .setDescription(`O usuário \`${search}\` não existe.`) ] }) return; } } }