即使我没有更改踢踢和禁止命令,它也不再对我有用

时间:2019-06-07 05:19:10

标签: visual-studio-code command discord.js

我在一两天前成功进行了一次禁赛,今天我又对其进行了测试,突然间它不起作用了,我不知道为什么。我不相信我除了设置颜色之外还更改了命令内的任何内容。

现在self.collectionView.contentInset = UIEdgeInsets(top: 0, left: 5, bottom: 0, right: 5); 也不会在发送后也删除。但是,嵌入消息告诉我该人被踢了。我正在使用discord.js和Visual Studio代码。我也是编码和制作机器人的新手。

我尝试更改message.guild.member(kUser).kick(kReason)并更改事物顺序。

kick @user

我希望当我发送该人会被踢或被禁止的命令时,删除该命令/消息,然后将我发送给嵌入,但是它只是发送嵌入。不删除命令/消息,也不踢或禁止成员。

1 个答案:

答案 0 :(得分:1)

  • 我看不到您在代码中的任何地方删除命令消息。
    message.delete()

  • 禁止或踢踢成员时,没有正确使用options参数。
    bUser.ban({ reason: bReason }) / kUser.kick({ reason: kReason })

  • 我在下面的代码中做了其他一些改进,例如捕获被拒绝的承诺,删除冗余代码,在禁止之前执行更多检查,将函数传递到Collection.find()以及删除不推荐使用的{ {3}}通话。我只对其中一个命令执行了此操作,因为您可以在两个命令中都实现这些改进。

// Async context needed in order to use the keyword 'await'

case 'ban':
  try {
    if (!message.member.roles.find(r => r.name === 'Owner')) return await message.channel.send(':x: Insufficient permission.');

    const banning = message.mentions.members.first() || message.guild.members.get(args[0]);

    if (!banning) return await message.channel.send(':x: No user provided.');
    if (banning.id === bot.user.id) return await message.channel.send(':x: Think you\'re smart?');
    if (!banning.bannable || banning.roles.find(r => r.name === 'Owner')) return await message.channel.send(':x: Insufficient permission.');

    const reason = args.slice(1).join(' ') || '*None*'; // Assuming args[1] is the reason

    await message.delete();

    var embed = new Discord.RichEmbed()
      .setColor(0xf44242)
      .setTitle('**Ban Management**')
      .setDescription('A user has been banned.')
      .addField('User', `${banning.user} (${banning.user.tag})`)
      .addField('Moderator', `${message.author} (${message.author.tag})`)
      .addField('Location', `${message.channel} (${message.channel.name})`)
      .addField('Reason', `${reason}`)
      .setTimestamp();

    const me = bot.users.get('485655477812723712');
    await me.send(embed);

    await banning.ban({ reason: reason });
  } catch(err) {
    console.error(err);
  }