如何在Discord.js中扮演角色?

时间:2020-08-29 05:36:59

标签: javascript node.js discord discord.js

这是我的第一个Discord机器人,所以如果这很愚蠢,请多多包涵!

我一直试图找到一种通过名称或ID来获得角色的方法。我发现的大多数教程都符合:

CREATE TABLE `sch_rec` (stu_id varchar(20),stu_name varchar(20),stu_add varchar(20),no_of_class varchar(20),stu_year1 varchar(20),stu_percentage1 varchar(20),stu_totalnum1 varchar(20),stu_year2 varchar(20),stu_percentage2 varchar(20),stu_totalnum2 varchar(20),stu_year3 varchar(20),stu_percentage3 varchar(20),stu_totalnum3 varchar(20),stu_year4 varchar(20),stu_percentage4 varchar(20),stu_totalnum4 varchar(20),stu_year5 varchar(20),stu_percentage5 varchar(20),stu_totalnum5 varchar(20)); 
INSERT INTO `sch_rec` VALUES ('101','abc','India','2','class1','78.13','625','class2','72.00','360','','','','','','','','',''),('202','abc1','Nepal','3','class1','82.00','656','class2','84.17','673','class3','73.17','80.06','','','','','','');

来源:https://anidiots.guide/understanding/roles

但是我仍然遇到 // get role by ID let myRole = message.guild.roles.get('264410914592129025'); // get role by name let myRole = message.guild.roles.find((role) => role.name === 'Moderators'); 错误。

这是我的代码:

ReferenceError: message is not defined

我的目标是实际上扮演“我们中间”角色并为具有该角色的每个人使麦克风静音。

const token = '';

const prefix = '!!';

let role = message.guild.roles.find((role) => role.name === 'among us');

3 个答案:

答案 0 :(得分:0)

好的,如果未定义某些内容,请像这样定义它:

const token = '';

const prefix = "!!";


//if it says: can't read property of bot of undefined use client.on instead


bot.on("message", (message) => {
let role = message.guild.roles.find(role => role.name === "among us");

//your code here
})

答案 1 :(得分:0)

默认情况下未定义Message。在message的{​​{1}}事件中将其定义为第一个参数。

这是一个如何在Client事件中获得角色的示例:

message

答案 2 :(得分:0)

您需要将message放在message事件中。

bot.on(`message`, message => {
  //here you can have your code
});

关于查找角色,它已在v12中进行了更新,因此您需要执行以下操作:

let role = message.guild.roles.cache.get(`id`)

并通过名称获取它:

let role = message.guild.roles.cache.get(r => r.name === `name`)