簡體   English   中英

Discord.js 提及,用戶未定義

[英]Discord.js Mention, User Undefined

編輯:我自己找到了解決方案,謝謝所有看到這篇文章的人:解決方案是:

/// SIMPLY ADD || message.member
const taggedUser = message.mentions.members.first() || message.guild.members.cache.get(args[1]) || message.member

這就是這個問題的解決方案,它與 message.author 不一樣,但至少它現在可以工作了!

原文:我的腳本有點問題! 任何幫助將不勝感激!

問題是:這是第一個腳本,這個腳本沒有任何問題,一切都很順利,除了這個腳本發送消息而不是更改let ,它會讓我創建多個嵌入。 但是在這個例子中,它使用了一個簡單的 message.send 代替

    if(command === 'test'){
/// ALL OF THIS WORKS
        const taggedUser = message.mentions.members.first() || message.guild.members.cache.get(args[1])
        if(!taggedUser){
            if(message.member.roles.cache.has('745227998893965322')){
                message.channel.send('Yes, you have that role #1')
            }else{
                message.channel.send('No, you don\'t have that role #1')
            }
        }
        if(taggedUser.user.id === message.author.id){
            if(message.member.roles.cache.has('745227998893965322')){
                message.channel.send('Yes, you have that role #2')
            }else{
                message.channel.send('No, you don\'t have that role #2')
            }
        }
        if(taggedUser.user.id != message.author.id){
            if(taggedUser.roles.cache.has('745227998893965322')){
                message.channel.send('Yes, that user have that role')
            }else{
                message.channel.send('No, that user doesn\'t have that role')
            }
        }
    }

另一方面,在這個腳本中,它在提及用戶時有效,在我們提及自己時有效 如果我們沒有添加任何提及,日志會說User is undefined 我使用let名稱的原因是我可以輕松更改那里的文本而不是創建多個嵌入

    if(command === 'test2'){
        const taggedUser = message.mentions.members.first() || message.guild.members.cache.get(args[1])

        let name
        if(!taggedUser){ /// THE PROBLEM IS RIGHT HERE, WHEN NO MENTION, USER IS UNDEFINED
            if(message.member.roles.cache.has('745227998893965322')){
                name = 'Yes, you have that role #1'
            }else{
                name = 'No, you don\'t have that role #1'
            }
        }
/// THE REST OF THIS WORKS FOR SOME REASON
        if(taggedUser.user.id === message.author.id){
            if(message.member.roles.cache.has('745227998893965322')){
                name = 'Yes, you have that role #2'
            }else{
                name = 'No, you don\'t have that role #2'
            }
        }
        if(taggedUser.user.id != message.author.id){
            if(taggedUser.roles.cache.has('745227998893965322')){
                name = 'Yes, that user have that role'
            }else{
                name = 'No, that user doesn\'t have that role'
            }
        }

        message.channel.send(`${name}`)
    }

有什么解決辦法嗎? 我嘗試了一種不同的方法,但它只是給了我多個新錯誤。 謝謝您閱讀此篇

很抱歉,這是一個遲到的回復,但如果有人和我有同樣的問題,這就是解決方案:

/// SIMPLY ADD || message.member const taggedUser = message.mentions.members.first() || message.guild.members.cache.get(args[1]) || message.member

您只需添加 message.member,它的行為與 message.author 不同,但如果您可以正確編輯它,它就可以正常工作!

您可以使用此腳本查找已在您的服務器上設置的成員用戶名,並檢查您提到的成員是否具有角色!

特別感謝看到這篇文章的人,希望對你有幫助! 感謝 Jytesh 建議我將其作為答案感謝 a2br 建議我也將其作為答案

很抱歉,我是 Stackoverflow 的新手,但我會盡力幫助你!

暫無
暫無

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

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