javascript - 给消息作者一个角色 - Discord.js
问题描述
我开始制作命令,消息作者在输入命令后应该获得角色。但我总是收到“无法读取未定义的‘添加’属性”的错误。
代码:
case 'ticket':
if(!message.channel.id === "757221433335218216") return;
if (message.channel.id === "757221433335218216"){
var randomRole = Math.random()
const person = message.author
var roleCreator = message.guild.roles.create({
data: {
name: randomRole.toLocaleString(),
color: "#ff0000",
permissions: 0
}
}).then(role => {
person.roles.add(roleCreator)
});
break;
解决方案
- 要使用
.add()
,您需要 GuildMember 而不是用户 - 要添加角色,您应该传递角色而不是角色创建者。
case 'ticket':
if(!message.channel.id === "757221433335218216") return;
if (message.channel.id === "757221433335218216"){
var randomRole = Math.random()
const person = message.member //<< Here, get the author as an GuildMember instead of getting author as an User
var roleCreator = message.guild.roles.create({
data: {
name: randomRole.toLocaleString(),
color: "#ff0000",
permissions: 0
}
}).then(role => {
person.roles.add(role) // <<Here, passing role instead of roleceator
});
break;
推荐阅读
- c - 如果语句为真,我如何只显示 printf 语句?
- ruby-on-rails - 正确提交参数时验证失败
- java - 引起:java.lang.IllegalArgumentException:未知实体:xxx
- mysql - MySQL:启用 LOAD DATA LOCAL INFILE 重置
- angular - 如何在 Angular Unviersal 项目的服务器上进行预渲染?
- azure - 没有免费/共享服务计划的选项
- python - 动态构建字典时的Python“关键错误”(动态)
- r - 如何动态访问数据框列表中的特定属性
- amazon-web-services - 将 CloudFront 分配与 Route 53 域相关联时出现问题
- android - 应用程序更新后,预加载应用程序的 android 清单“persistent=true”是否仍然适用?