Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Discord.js 如何在DIscord bot中基于DM消息向用户添加角色_Discord.js - Fatal编程技术网

Discord.js 如何在DIscord bot中基于DM消息向用户添加角色

Discord.js 如何在DIscord bot中基于DM消息向用户添加角色,discord.js,Discord.js,我想写一个不和谐机器人。当用户将DM分配给bot时,此bot会将角色分配给用户。代码如下所示。但是message.member为空 bot.on('message', async msg => { if (msg.channel.type != "dm") { return; } let message = msg.content; if (message.substring(0, 1) == '!') { var args = message.substring(1).s

我想写一个不和谐机器人。当用户将DM分配给bot时,此bot会将角色分配给用户。代码如下所示。但是message.member为空

bot.on('message', async msg => {
if (msg.channel.type != "dm") {
    return;
}
let message = msg.content;
if (message.substring(0, 1) == '!') {
    var args = message.substring(1).split(' ');
    var cmd = args[0];

    switch (cmd) {
        case 'role':                          
           const guildMember = message.member; (message.member is null)
           guildMember.addRole('<@&439191493169643521>');
    }
}
bot.on('message',async msg=>{
如果(msg.channel.type!=“dm”){
返回;
}
让message=msg.content;
if(message.substring(0,1)='!'){
var args=message.substring(1.split)(“”);
var cmd=args[0];
开关(cmd){
案例“角色”:
const guildMember=message.member;(message.member为空)
guildMember.addRole(“”);
}
}

您的第一个问题是使用了错误的
消息
。您将
消息
声明为一个变量,与
msg.content
相等,因此我相信您将其误认为是
msg

其次,该方法接受一个ID或雪花。因此,您只需将角色的ID粘贴到方法内的引号中即可

即使你进行了这些更改,你仍然会得到一个错误。为什么?因为你的机器人正在读取
DM
频道,而不是
Guild
频道。所以这样做是行不通的

const guildMember=msg.member;
guildMember.addRole(“”);
我对你的switch语句做了一些调整,使它能够工作

开关(cmd){
案例“角色”:
const guild=client.guilds.get('guild_ID');
//获取向bot发送消息的用户的id
var dmUser=msg.author.id;
//这将在公会中查找用户id
var isMember=guild.members.get(dmUser)
//如果是真的
如果(isMember){
//然后添加角色
isMember.addRole('ROLE_ID');
}否则{
//如果不正确,则向用户发送此消息
msg.reply('你不是帮会的成员')
}
}