簡體   English   中英

Discord.js 檢查消息中的用戶提及

[英]Discord.js check for a user mention inside a message

我有這個代碼:

        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*`)
    

我試圖讓它獲取名為mentionmention.users.first()變量,以便人們可以指定向某人發射咒語。 我不太清楚如何檢查它。 我嘗試了幾件事,例如:

} else if (subject === mention) {
        } else if (subject === 'mention') {
        } else if (subject === {mention}) {

我知道這個可能行不通,但我試過了:

        } else if (subject === ${mention}) {

我不知道我的措辭是否正確,或者這完全是錯誤的做法。 任何指針或想法將不勝感激。

<Message>.content中的角色提及將采用<@&ID>的形式,它將是一個字符串,discord.js 已經具有驗證角色提及所需的正則表達式的 static 屬性,即: /<@&(\d{17,19})>/g ,所以現在您只需要測試字符串是否通過:

const regex = /<@&(\d{17,19})>/g;
if(regex.test(subject)) {

}

就像我說的,你可以通過 static 屬性https://discord.js.org/#/docs/main/v12/class/MessageMentions?scrollTo=s-ROLES_PATTERN獲得這個正則表達式

const {MessageMentions} = require("discord.js");
const regex = MessageMentions.ROLES_PATTERN;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM