【问题标题】:Discord bot gives me a false message and I dont know how to fix itDiscord bot 给了我一条错误消息,我不知道如何解决它
【发布时间】:2021-05-09 14:16:00
【问题描述】:

我正在制作我的第一个不和谐机器人,我让我的朋友测试踢/禁止命令,我开玩笑地尝试禁止他,现在他有管理员权限所以他不能被禁止但机器人仍然发送消息确认禁令,我们俩都很困惑,我想解决这个问题,这样我以后就不会收到这个消息了。

module.exports = {
    name: "kick",
    description: "kick command",
    execute(message, args) {
        if (!message.member.hasPermission("KICK_MEMBERS")) {
            message.channel.send("You do not have the permission to execute this command");
            return;
        }
        const member = message.mentions.users.first();
        if (member) {
            const memberTarger = message.guild.members.cache.get(member.id);
            memberTarger.kick();
            message.channel.send("User has been kicked!");
        } else {
            message.channel.send("You could not kick that member");
        }
    },
};

【问题讨论】:

    标签: javascript node.js discord discord.js


    【解决方案1】:

    替换

    const memberTarger = message.guild.members.cache.get(member.id);
    memberTarger.kick();
    message.channel.send("User has been kicked!");
    

    const memberTarger = message.guild.members.cache.get(member.id);
    if(!memberTarger.hasPermission('KICK_MEMBERS')){
      memberTarger.kick();
      message.channel.send("User has been kicked!");
    }
    

    【讨论】:

      【解决方案2】:

      您可以使用GuildMember.kickable.bannable 属性检查机器人是否可以踢/禁止成员。

      请参阅下面的示例并尝试一下:

      const memberToKick; // Should hold the value of the GuildMember you want to kick.
      
      if (memberToKick.kickable) {
        memberToKick.kick()
          .then(() => {
            message.channel.send('Member successfully kicked!');
          }).catch((e) => {
            message.channel.send(`I couldn't kick the member for some reason. Here is the error: ${e}`);
          });
      } else {
        message.channel.send('Sorry, I don\'t have permission to kick this member...');
      }
      

      【讨论】:

        【解决方案3】:

        您的代码并不完美,但应该可以工作

        如果您访问 discord 开发者门户,请转到 OAuth2,然后单击 bot 并向下滚动并选择管理员或踢成员 然后踢机器人并再次邀请它 这是为了确保您的机器人有权踢 最后转到您的服务器设置并确保您的机器人角色高于您想要踢的角色(我总是喜欢那个)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-12-26
          • 2020-12-31
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多