我在下面提供的代码可以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}\``);
});
答案 0 :(得分:0)
这是因为您要告诉机器人如果消息包含它的提及(或ID),则该机器人要发送前缀,而您真正想要的是看看它是否以< / strong>并提及。
为此,您可以使用.startsWith()
对其进行检查,然后建立一个提及,这样它就可以像您的前缀一样工作;更简单的方法是查看邮件的第一个“单词” 是否包含您的ID。
您还想确保第一个“单词”实际上是唯一一个。
if (message.content.split(' ')[0].includes(client.user.id) && message.content.split(' ').length == 1) {
// The message was "@YourBot", you can do your stuff
}