这是我的第一个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');
答案 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`)