我的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 ! ")
}
})
答案 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");