我有一个问题与我的不和机器人,这将是一个棋盘游戏机器人(我希望)。所以,我试着给用户分配他们的玩家号码,比如第一个玩家会有角色‘玩家1’等等。但我总是有同样的问题:
let role = message.guild.roles.find("480091776468647936");
^
TypeError:无法读取客户端未定义得属性“roles”。(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\packethandlers\messageCreate.js:9:34)
位于
我已经试过自己在谷歌上搜索了,但是我做这个机器人只是一个爱好,对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 ! ")
}
})
请尝试以下操作:
let myRole = message.guild.roles.find(x => x.name === "Moderators");
编辑:如果您处于discord.jsv12中,请使用以下命令:
let role = message.guild.roles.cache.find("480091776468647936");
首先,你必须定义我的角色,
// 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);