javascript - 每次使用该命令时输出都会增加

标签 javascript discord discord.js

我尝试在discord.js 中制作一个kick Members 脚本。我的错误是,每次我发送 !kick 命令时,该消息都会再次显示。例如,如果我第一次发送!kick,它将发送以下响应:“请指定用户!”。如果我第二次发送它,它会发送该消息两次,依此类推。我的代码:

const Discord = require("discord.js")

exports.run = async(client, msg, args) => {
    msg.delete();
    if(!msg.member.hasPermission('KICK_MEMBERS')) return msg.reply('you don\'t have permission to use this command!')


    const user = msg.mentions.users.first() || msg.guild.members.cache.get(args[0]);
    if(!user) return msg.reply(`please specify a user you wish to be punished.`).then(msg => msg.delete({timeout: 5000}));

    let member;
    try {
        member = await msg.guild.members.fetch(user)
    } catch(err) {
        member = null;
    }
    if(member){
        if(member.hasPermission('MANAGE_MESSAGES')) return msg.reply('that user is too cool to be banned.').then(msg => msg.delete({timeout: 5000}));
    }

    let reason = args.slice(1).join(' ');
    if(!reason) return msg.reply('please specify a reason.').then(msg => msg.delete({timeout: 5000}));

    let channel = msg.guild.channels.cache.find(c => name.name === '📁┊discord_logs');

    let log = new Discord.MessageEmbed()
    .setColor('#0088FF')
    .setDescription(`${user} has been kicked by ${msg.author} for ${reason}`)
    channel.send(log);

    let userLog = new Discord.MessageEmbed()
    .setColor('#0088FF')
    .setDescription(`You have been kicked from Scratta for: ${reason}`)
    try {
        await user.send(userLog);
    } catch(err) {
        console.warn(err);
    }
    member.kick(reason)

    let confir = new Discord.MessageEmbed()
    .setColor('#0088FF')
    .setDescription(`${user} has been kicked from Scratta.`)
    msg.channel.send(confir);
    
    msg.delete();
}

最佳答案

您在 module.exports 顶部缺少这一行:

if (msg.author.bot) return;

这将确保机器人不会对自己的消息使用react

关于javascript - 每次使用该命令时输出都会增加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67877719/

相关文章:

javascript - 为什么对象原型(prototype)方法在 oop 中没有调用者,这与过程式编程不同

node.js - Discord.js 音乐机器人停止播放

javascript - 如何将 channel /服务器 ID 转换为其名称?

discord.js - TypeError : message. member.roles.some不是一个函数

javascript - 如何使用 userinfo 命令获取用户 ID(discord 机器人)

PHP 嵌入 JavaScript

javascript - 我们如何在 java 脚本中获取相对于他的父元素的选定文本开始集?

javascript - Discord.js 获取 channel 中所有消息的数组

javascript - 路由获取参数和应用逻辑

javascript - messageDeleted 事件未被触发