Только упоминание бота - PullRequest
0 голосов
/ 28 мая 2020

Код, который я предоставил ниже, на 100% рабочий. Однако, если есть сообщение до и после упоминания, он все равно отправляет сообщение. Я не совсем уверен, как бот это проигнорирует. Этот запрос может быть слишком большим, но если бы вы могли исправить код, я был бы очень признателен.

   client.on('message', async message => {
      let a = await db.fetch(`prefix_${message.guild.id}`)
      if (message.author.bot) return;
      if (!message.guild) return;

      if(message.content.match(`${client.user.id}`))
         message.channel.send(`My prefix is this server is: \`${a}\``);
    });

1 Ответ

0 голосов
/ 28 мая 2020

Это потому, что вы говорите боту отправить префикс, если сообщение включает его упоминание (или его идентификатор), в то время как вы действительно хотите увидеть, начинается ли оно с с упоминанием.
Для этого вы можете либо проверить его с помощью .startsWith(), а затем создать упоминание, чтобы оно работало как ваш префикс; Более простой способ - увидеть, включает ли первое «слово» сообщения ваш идентификатор.
Вы также хотите убедиться, что первое «слово» на самом деле единственное.

if (message.content.split(' ')[0].includes(client.user.id) && message.content.split(' ').length == 1) {
  // The message was "@YourBot", you can do your stuff
}
...