无法读取未定义Discord.js的属性“角色”

时间:2018-08-18 19:48:35

标签: bots roles discord

我的discord机器人有一个问题,它将成为一个棋盘游戏机器人(我希望如此)。因此,我尝试将角色编号分配给用户,例如第一个玩家将扮演“ Player 1”角色,等等……但是我总是遇到相同的问题:

let role = message.guild.roles.find("480091776468647936");
                         ^
  

TypeError:无法读取未定义的属性“角色”       在客户处。 (C:\ Users \ alant \ Desktop \ Informatique-Développement\ Shadow Bot \ shadow_bot.js:54:32)
      在emitOne(events.js:121:20)
      在Client.emit(events.js:211:7)
      在MessageCreateHandler.handle(C:\ node_modules \ discord.js \ src \ client \ websocket \ packets \ handlers \ MessageCreate.js:9:34)
      在WebSocketPacketManager.handle(C:\ node_modules \ discord.js \ src \ client \ websocket \ packets \ WebSocketPacketManager.js:103:65)
      在WebSocketConnection.onPacket上(C:\ node_modules \ discord.js \ src \ client \ websocket \ WebSocketConnection.js:330:35)
      在WebSocketConnection.onMessage(C:\ node_modules \ discord.js \ src \ client \ websocket \ WebSocketConnection.js:293:17)
      在WebSocket.onMessage(C:\ node_modules \ ws \ lib \ EventTarget.js:99:16)
      在emitOne(events.js:116:13)
      在WebSocket.emit(events.js:211:7)

我已经尝试过自己在Google上进行搜索,但是我将此机器人作为一种爱好,并且还没有JavaScript的深入知识,因此希望能对您有所帮助。 (对不起,如果我的英语不好,我不是来自英语国家的人)

bot.on('message', function(message) {
    var message = message.content;
    if (message === "joueur  1") {
        membre = message.author;
        let role = message.guild.role.find("480091776468647936");
        membre.addRole(role);
        message.channel.send("Vous etas doreavant le joueur 1 ! ")
    }
})

2 个答案:

答案 0 :(得分:1)

首先,您必须定义myRole,

  // get role by ID
let myRole = message.guild.roles.get("264410914592129025");

// get role by name
let myRole = message.guild.roles.find("name", "Moderators");

选择其中之一。

if (command === "addroletome") {

// Add the role!
  message.author.addRole(role).catch(console.error);
message.channel.send("Successfully assigned the role! ")
}

奖金:您可以轻松地对其进行修改以删除角色

// Remove a role!
message.author.removeRole(role).catch(console.error);

答案 1 :(得分:1)

尝试一下:

let myRole = message.guild.roles.find(x => x.name === "Moderators");