javascript - Discord.js 检查消息中的用户提及
问题描述
我有这个代码:
const args = message.content.split(" ");
args.shift();
var mention = message.mentions.users.first()
const subject = args[0];
if (!subject) {
return message.say(`*you wand projects a stream of water*`)
} else if (subject === mention) {
return message.say(`*Your wand projects a stream of water at ${mention} and they are now soaked*`)
我试图让它拾取mention.users.first()
名为的变量mention
,以便人们可以指定向某人发射咒语。我不太清楚如何检查它。我尝试了几件事,例如:
} else if (subject === mention) {
} else if (subject === 'mention') {
} else if (subject === {mention}) {
我知道这个可能行不通,但我试过了:
} else if (subject === ${mention}) {
我不知道我的措辞是否正确,或者这完全是错误的做法。任何指针或想法将不胜感激。
解决方案
那么角色提及<Message>.content
将采用 的形式<@&ID>
,它将是一个字符串,discord.js 已经具有验证角色提及所需的正则表达式的静态属性,即:/<@&(\d{17,19})>/g
,所以现在您只需要测试字符串是否通过:
const regex = /<@&(\d{17,19})>/g;
if(regex.test(subject)) {
}
就像我说的,你可以通过静态属性 https://discord.js.org/#/docs/main/v12/class/MessageMentions?scrollTo=s-ROLES_PATTERN获得这个正则表达式
const {MessageMentions} = require("discord.js");
const regex = MessageMentions.ROLES_PATTERN;
推荐阅读
- ssis - SSIS 将 ValidateExternalMetadata 设置为 false 是个好主意吗?
- selenium - Selenium 也使用值通过 xpath 查找元素
- python - 在 arcgis 工具箱中传递参数
- python-3.x - 通过 json 文件的 LSTM 输入形状
- openssl - Mosquitto - 证书中的客户端代理启用网桥不提供证书
- javascript - 通过 HTML5 Canvas 上的一组坐标移动对象
- sql-server - 在哪里可以找到 ANSI SQL 关键字/函数的列表?
- node.js - 找不到模块“joi-objectid”的声明文件
- c# - 如何针对嵌入式 XSD 验证 XML 文档?
- sql - 如何将图像数据类型转换为可读文本