Así que tengo este comando de patada que he codificado y funciona perfectamente bien. Mi pregunta es, ¿cómo puedo cambiar el comando para obtener una respuesta que diga como ejemplo "No puede expulsar a este usuario ya que no está en este servidor" más o menos.
Aquí está mi código:
const { Client, CommandInteraction, MessageEmbed } = require("discord.js"); module.exports = { name: "kick", description: "Kick a member", userPermission: ["KICK_MEMBERS"], options: [ { name: "target", description: "target to kick", type: "USER", required: true }, { name: "reason", description: "reason for this kick", type: "STRING", required: false, } ], /** * * @param {Client} client * @param {CommandInteraction} interaction * @param {String} args */ execute: async(interaction, client, args) => { const { options, member, guild } = interaction; const target = options.getMember("target"); const reason = options.getString("reason") || "No reason provided"; if(!target.roles.highest.position >= member.roles.highest.position) return interaction.reply({content: "You can't take action on this user as their role is higher than yours!", }); await target.send({embeds: [new MessageEmbed().setColor("AQUA").setTitle("🚪 Kicked").setAuthor(target.user.tag, target.user.avatarURL({dynamic: true, size: 512})).setDescription(`You have been kicked from **${guild.name}**!\nReason: \`${reason}\``).setFooter(`ID: ${target.user.id}`)]}); target.kick(reason); interaction.reply({embeds: [new MessageEmbed().setColor("GREEN").setTitle("🚪 Kick").setAuthor(target.user.tag, target.user.avatarURL({dynamic: true, size: 512})).setDescription(`**${target.user.tag}** has successfully been kicked from **${guild.name}**!\n**Reason:** \`${reason}\``).setFooter(`ID: ${target.user.id}`)]}); }, };Porque este es un comando de barra y requiere un USER aquí:
name: "target", description: "target to kick", type: "USER", required: trueEntonces nunca puede existir la posibilidad de que este comando se ejecute sin que el usuario esté en el gremio. El comando fallaría antes de enviarse.
Editar:
También tu línea
const target = options.getMember("target");Debiera ser
const target = options.getUser("target"); Necesitaría obtener al member usando lo siguiente:
const targetMember = guild.members.cache.find(member => member.id === target) Luego, cada línea debajo de donde se usa el target cambia a targetMember
Edite la pregunta de respuesta en los comentarios:
Para patear/prohibir a alguien que no está en el gremio
const targetMember = guild.members.cache.find(member => member.id === target) if (targetMember = undefined) { // code to kick/ban } else { // normal code }