首页 > 解决方案 > 如何通过 node.js 运行机器人的 Kick 命令?

问题描述

我试着发出命令踢一个成员,但是在mons discord中测试后,没有任何消息出现,并且该成员没有被踢。

所以这是针对与 Node.js 的不和谐的机器人。我试图通过网站和视频(对于 kick 命令)重新制作命令,编辑器没有给我任何错误,但机器人没有响应有问题的命令

client.on('message', message => {
    let args = message.content.substring(PREFIX.length).split(" ");

    switch (args[0]) {
      case 'kick' :
        if(!args[1]) message.channel.send('Vous devez spécifier la personne.')

        const user = message.mentions.users.first();

        if(user){
          const member = member.guild.member(user);

          if(member){
            member.kick('Vous avez été expulsé du serveur !').then(() =>{
              message.reply('Le joueur suivant a été expulsé : ${user.tag}');
            }).catch(err =>{
              message.reply('I was unable to kick the member')
              console.log(err);
            });
          } else
            message.reply("Le membre n'est pas dans la guilde.")
          }

        }


  })

因此,我可能会知道为什么这个命令不起作用。尽管我认为我应该回答你的问题。提前感谢所有帮助!

标签: node.jsdiscorddiscord.js

解决方案


您可以尝试使用命令处理程序,您可以使用本指南 ,然后在该文件夹中为命令创建一个文件夹,您可以创建 kick.js 用于 kick 命令然后执行此操作

let kUser = message.guild.member(message.mentions.users.first() || message.guild.members.get(args[0]));
if(!kUser) return message.channel.send("Please mention a user to kick!")
let kReason = args.join(" ").slice(22);
if(!kReason) return message.channel.send ("Please specify some reasons for the kick")
message.guild.member(kUser).kick(kReason);
message.channel.send(`${kUser} has been kicked from the server`);

请记住还要检查权限,以便确保他们在踢成员之前拥有权限,并且您可以决定在用户​​被点击后将踢球记录到机器人发送消息的频道中

// this will look for logchannel so if you don't have that channel you can create or let logchannel = message.guild.channels.find(c => c.name === "logchannel");
logchannel.send(`${kUser} has been kicked from the server`);

推荐阅读