繁体   English   中英

我试图制作一个 discord 机器人,主要是为了好玩,但我似乎无法让我的 kick 命令中使用的 if else 语句正常工作

[英]Im trying to make a discord bot mostly just for fun but i cant seem to get the if else statements used in my kick command to work properly

命令的踢脚部分正常工作,然后正确发送消息说它已经踢了提到的人。 但是,我希望机器人发送一条消息,说如果没有提及用户,您需要提及用户。 如果尝试使用机器人的玩家没有适当的权限踢某人,或者如果机器人无法踢出用户试图使用机器人踢的人,我还希望机器人发送消息。

这是我正在尝试做的代码。

Crashbot.on('message', message => {
  if (message.member.hasPermission("KICK_MEMBERS")) {
    if (message.content.startsWith(prefix + 'kick')) {
      const user = message.mentions.users.first();
      if (user) {
        const member = message.guild.member(user);
        if (member) {
          member.kick('optional reason that will display in the audit logs')
            .then(() => {
              // We let the message author know we were able to kick the person
              message.reply(`Successfully kicked ${user.tag}`);
            })
            .catch(err => {
              message.reply('I was unable to kick that user');
              console.error(err);
            });
        } else {
          message.reply("You need to mention a user to kick");
        }
      }
    }
  }
});

那是我使用的那个。 它会检查您是否首先提到了任何内容,如果找不到用户,它会向您发出警告消息,如果您没有踢人的权限并且无法踢人,它将不起作用它会告诉你他不能踢他。 另外,您可以提供一个可选的踢后理由。

用法示例: !kick @Apolko24 坏词用法

const kUser = message.guild.member(message.mentions.users.first());
if (!args[0]) return message.channel.send('Please mention someone');
if (!kUser) return message.channel.send(`I can't find ${args[0]}`);
if (!message.member.hasPermission('KICK_MEMBERS')) return message.channel.send("You can't kick users");
if (kUser.hasPermission('MANAGE_GUILD')) return message.channel.send("That user can't be kicked");

const kReason = args.join(" ").slice(22);
if (kReason) {
  const kickEmbed = new MessageEmbed()
  .setTitle("Kick")
  .setColor(0xbbffff)
  .addField("Kicked user:", `${kUser}`)
  .addField("Kicked by:", `${message.author}`)
  .addField("Reason", kReason)

  message.guild.member(kUser).kick();
  message.channel.send(kickEmbed);
} else {
  const kickEmbed = new MessageEmbed()
  .setTitle("Kick")
  .setColor(0xbbffff)
  .addField("Kicked user:", `${kUser}`)
  .addField("Kicked by:", `${message.author}`)

  message.guild.member(kUser).kick();
  message.channel.send(kickEmbed);
}

(你必须把它放到你的 if (message.content.startsWith(prefix + 'kick')) 语句中)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM