Как добавить "причину", чтобы запретить команду - PullRequest
0 голосов
/ 12 апреля 2019

Я программирую диссон-бота в node.js (не master) и работаю над командой kick and ban.Я пытаюсь заставить БОТ написать журнал бана пользователя.как + бан @ причина пользователя.Я сделал + бан @ пользователь, но я не могу понять причину.

  if (!message.member.hasPermission("BAN_MEMBERS")) return;

  if (message.content.startsWith('+ban')) {
    const user = message.mentions.users.first();
    if (user) {
      const member = message.guild.member(user);
      if (member) {
        member.ban({
          reason: 'reason',
        }).then(() => {
          message.channel.send(`${user.tag} BAN!`);
        }).catch(err => {
          message.channel.send('Bu çar çok güçlü, banlayamıyorum! ');
          console.error(err);
        });
      } else {
        message.channel.send('Kullanıcı sunucuda değil.');
      }
    } else {
      message.channel.send('Adını ver banlayayım, sahip.');
    }
  }
});```

1 Ответ

0 голосов
/ 12 апреля 2019

Просто используйте member.ban('reason here'). Используйте объект, если вам нужно удалить предыдущие сообщения и указать причину, например:

member.ban({days: 2, reason: 'bad'});

Теперь просто используйте эту настройку с указанием причины пользователя. Используйте переменную для причины как нарезанную версию массива аргументов, объединенную с пробелами.

Редактировать: Отображение контекста ...

if (message.content.toLowerCase().startsWith('+ban')) { // changed to case insensitive command
  const member = message.mentions.members.first(); // keep in mind it isn't the best practice to use message.mentions to retrieve an argument
  if (!member) return message.channel.send('no member mentioned');
  let reason = args.slice(2).join(' '); // arguments should already be defined
  member.ban(reason)
  .then(message.channel.send('success'))
  .catch(err => {
    message.channel.send('something went wrong');
    console.error();
  });
}
...