Discort JS бот отправляет сообщение обратно на канал с указанием c пользователя - PullRequest
0 голосов
/ 06 апреля 2020

Я построил это сообщение на js. И я хочу добавить условие, если вы пометите пользователя ботом, чтобы добавить сообщение + пометить этого человека, в противном случае просто отправить обычное сообщение.

У меня проблема в том, какая переменная является правильной для user_mention. Я нашел разные способы, но не смог заставить его работать.

DiscordClient.on('message', message => {
  const msg = message.content.toLowerCase();
  const mention = message.mentions.users;

  if (msg === "yubnub") {
    if (mention == null){
      message.channel.send('YUB NUB!! YUB NUB!! Grrrrr!!');
    } else {
      message.channel.send('YUB NUB!! YUB NUB!! Grrrrr!! ' + ${@user_mention})
    }
  }

});

Ответы [ 3 ]

1 голос
/ 06 апреля 2020

Спасибо, @boris и @Adrian. Окончательный код выглядит следующим образом:

if (msg.startsWith("yubjub")) {
const mention = message.mentions.members;

if (mention.size === 0){

  message.channel.send('YUB NUB!! YUB NUB!! Grrrrr!!);

} else {
    const mentionUser = mention.first().user;

    message.channel.send('YUB NUB!! YUB NUB!! Stab Stab Stab <@' + mentionUser.id + '> !!');

}

}

0 голосов
/ 06 апреля 2020

Попробуйте:

const mention = message.mentions.users.first();

Источник: https://anidiots.guide/first-bot/command-with-arguments#grabbing -помощи

0 голосов
/ 06 апреля 2020

Я думаю mention - это массив пользователей . Так что вы можете сделать:

for (const user of mention) {
    message.channel.send('YUB NUB!! YUB NUB!! Grrrrr!! @' + user.username)
}
...