Discord.js 检查 args 中的提及
Discord.js checking for mention in args
嘿,所以我正在制作一个不和谐的机器人,当我用它来检查提及时:message.mentions.members.first();
它会在用户发送的整个消息中寻找提及。我正在尝试解决这个问题,因为如果用户发送消息 ?ban bla bla bla @user 它将起作用。我只想检查 args[0]
中的提及。那可能吗?我正在使用不和谐 v12。谢谢!
USERS_PATTERN
使用 RegEx 检查 string
是否提到了 User
。如果 string
与它 returns true
的模式匹配,否则 returns false
.
const { MessageMentions: { USERS_PATTERN } } = require('discord.js');
...
if (!args[0].match(USERS_PATTERN)) return message.channel.send("Please mention a user");
...
这就是我发现的工作...
if(args[0].slice(2).slice(0, -1) !== message.mentions.users.first()?.id) {
return message.reply("Please start with a user...")
}
args[0].slice(2).slice(0, -1)
如果提及...将是第一次提及的 id...如果提及是第一个 arg,它也将是第一次提及。所以我所做的是获取第一个提及的 ID 并将其与切片的 args[0] 进行比较以查看它们是否匹配,否则它将 return 告诉他们请从用户开始......确保保留message.mentions.users.first()?.id
中的?
只是在消息中没有提及的情况下,不会导致流程出错,也会return请以用户消息开头。
嘿,所以我正在制作一个不和谐的机器人,当我用它来检查提及时:message.mentions.members.first();
它会在用户发送的整个消息中寻找提及。我正在尝试解决这个问题,因为如果用户发送消息 ?ban bla bla bla @user 它将起作用。我只想检查 args[0]
中的提及。那可能吗?我正在使用不和谐 v12。谢谢!
USERS_PATTERN
使用 RegEx 检查 string
是否提到了 User
。如果 string
与它 returns true
的模式匹配,否则 returns false
.
const { MessageMentions: { USERS_PATTERN } } = require('discord.js');
...
if (!args[0].match(USERS_PATTERN)) return message.channel.send("Please mention a user");
...
这就是我发现的工作...
if(args[0].slice(2).slice(0, -1) !== message.mentions.users.first()?.id) {
return message.reply("Please start with a user...")
}
args[0].slice(2).slice(0, -1)
如果提及...将是第一次提及的 id...如果提及是第一个 arg,它也将是第一次提及。所以我所做的是获取第一个提及的 ID 并将其与切片的 args[0] 进行比较以查看它们是否匹配,否则它将 return 告诉他们请从用户开始......确保保留message.mentions.users.first()?.id
中的?
只是在消息中没有提及的情况下,不会导致流程出错,也会return请以用户消息开头。