首页 > 解决方案 > 查看用户是否是具有 hasPermission 和提及的管理员

问题描述

我最近一直在尝试制作一个 Discord Bot,但我已经在这部分停留了一段时间。我基本上是在尝试制作一个嵌入来发送玩家的个人资料,该玩家的个人资料被 ping 过不同的信息,例如他的姓名/ID/他在哪个语音频道等。问题是,我不知道如何制作我创建的“isAdmin”变量得到了认可。

随着console.log()我将问题缩小到 1 部分;message.mentions.members.first()未定义但未读取,它只是跳过命令,就像从未输入过一样。这是我的来源:

case "profile":
    var isAdmin = "undefined";
    let profileMentionned = message.mentions.members.first();
    if (!profileMentionned) return message.channel.send("some error message")
    if (profileMentionned.hasPermission("MANAGE_MESSAGES"))
    {
        return isAdmin = "Admin boi";
    }else{
        return isAdmin = "Member pleb";
    }
    var embed = new Discord.RichEmbed()
    Embed values....

感谢您回答 <3 :)

标签: javascriptnode.jsembeddiscord.js

解决方案


哦,我刚刚注意到:

if (profileMentionned.hasPermission("MANAGE_MESSAGES"))
{
    return isAdmin = "Admin boi";
//  ^^^^^^  
} else {
    return isAdmin = "Member pleb";
//  ^^^^^^  
}

如果这样做,您将无法获得回报,因为它只会停止其余的工作。
而只是做isAdmin = "Admin boi";,所以这样的事情会起作用:

var isAdmin = "undefined";
let profileMentionned = message.mentions.members.first();
if (!profileMentionned) return message.channel.send("some error message")
if (profileMentionned.hasPermission("MANAGE_MESSAGES")) {
    isAdmin = "Admin boi";
} else {
    isAdmin = "Member pleb";
}
var embed = new Discord.RichEmbed()
//...

推荐阅读