Команда запрета / удара вылетает при использовании - PullRequest
0 голосов
/ 01 марта 2019

Итак, я делаю публичного бота разногласий, но у меня проблемы с одной частью моего сценария.Мои команды удара / запрета должны быть выполнены $ban @user Это должно быть выполнено в пинге.Так как это публично, я действительно хочу это исправить.Я не хочу, чтобы один человек все испортил и рухнул, чтобы он рухнул на всех серверах.Если кто-то делает $ban user не в пинге, он вылетает из бота.Вот мой код:

client.on("message", (message) => {
  if (message.content.startsWith("$kick")) {
    if (!message.member.roles.find("name", "MODS"))
      return;
    // Easy way to get member object though mentions.
    var member = message.mentions.members.first();
    // Kick
    member.kick().then((member) => {
      // Successmessage
      message.channel.send(":wave: " + member.displayName + " has been successfully kicked :point_right: ");
    }).catch(() => {
      // Failmessage
      message.channel.send("Access Denied");
    });
  }
});

Я не хочу, чтобы мой бот продолжал падать, чтобы разрушить использование для других, кто-нибудь может помочь?

Ответы [ 2 ]

0 голосов
/ 01 марта 2019

Ваш код потерпел неудачу, когда вы не упомянули, потому что вы не уловили этот вариант использования.

Добавление простого улова с возвратом, например, должно работать для вас:

client.on("message", (message) => {
    if (message.content.startsWith("$kick")) {
        if(!message.member.roles.find("name", "MODS"))
            return;
        // Easy way to get member object though mentions.
        var member= message.mentions.members.first();

        // No mentions catch
        if (member === undefined) return;

        // Kick
        member.kick().then((member) => {
            // Successmessage
            message.channel.send(":wave: " + member.displayName + " has been successfully kicked :point_right: ");
        }).catch(() => {
             // Failmessage
            message.channel.send("Access Denied");
        });
    }
});
0 голосов
/ 01 марта 2019

Я думаю, что происходит, когда вы набираете $ban user (что не упоминается), а позже, когда вы назначаете var member = message.mentions.members.first();, это дает вам ноль (потому что никто не был упомянут).Постарайтесь убедиться, что message.mentions.members не пусто.

Приветствия:)

...