javascript - 在 Discord.js 中接收 TypeError(不是角色/雪花)
问题描述
我见过/尝试过的一些东西:
- https://www.reddit.com/r/Discord_Bots/comments/dezi5f/supplied_parameter_was_neither_a_role_nor_a/
- “.addRole”的 Discord.js 问题
我正在尝试在我的机器人中创建一个装饰角色部分。我目前的代码是:
var role = message.guild.roles.find( r => r.name === args[0].join(" "));
member.addRole(role).catch(console.log);
除了没有 .join(" ") 之外,我之前的代码是相同的。我收到以下错误:
TypeError: Supplied parameter was neither a Role nor a Snowflake.
at GuildMember.addRole (/home/discord/node_modules/discord.js/src/structures/GuildMember.js:454:38)
at Client.client.on.message (/home/discord/Desktop/channel.js:76:10)
at Client.emit (events.js:194:15)
at MessageCreateHandler.handle (/home/discord/node_modules/discord.js/src/client/websocket/packets/handlers/MessageCreate.js:9:34)
at WebSocketPacketManager.handle (/home/discord/node_modules/discord.js/src/client/websocket/packets/WebSocketPacketManager.js:105:65)
at WebSocketConnection.onPacket (/home/discord/node_modules/discord.js/src/client/websocket/WebSocketConnection.js:333:35)
at WebSocketConnection.onMessage (/home/discord/node_modules/discord.js/src/client/websocket/WebSocketConnection.js:296:17)
at WebSocket.onMessage (/home/discord/node_modules/ws/lib/event-target.js:120:16)
at WebSocket.emit (events.js:189:13)
at Receiver.receiverOnMessage (/home/discord/node_modules/ws/lib/websocket.js:789:20)
Created new role with name test and color 16777215
“创建的新角色”来自创建它的行。请注意,此消息是在我的角色创建脚本中使用 .then 发送的。我怎样才能让它工作?请注意,它可以很好地创建我的角色,只是无法将其添加到执行命令的用户中。使用 await 不起作用,因为 addRole 不是异步函数。
更新:我已经想出了如何做到这一点:使用第二个 .then 来传递 role.id。谢谢你的建议!
解决方案
是否定义了成员,或者应该是:
message.member.addRole(role).catch(console.log);
编辑:
尝试使用:
if(!member.roles.has(role.id)) await member.addRole(role.id).catch(console.log);
推荐阅读
- c - C 和 ASCII 代码:如果 128 的范围是从 -128 到 127,它怎么能代表一个字符?
- google-app-engine - 在 GCP 中,是否有从 API 抓取数据的规范方法?
- android - 如何检测软件键盘在 Android 电视(消防电视)上是否可见?
- ios - 如何默认扩展 iOS Today Widget?
- java - Android Studio 3.2.1 上的“无法访问 org.json.JSONStringer.Scope”
- c++ - 作为参数传递给函数模板时如何隐式转换类模板对象?
- dynamics-crm - 将社交窗格中的活动配置为默认“进行中”
- c# - 如果布尔值标记为 false,Selenium C# 显示自定义异常?
- javascript - 修改 href 选择器以排除锚标记
- javascript - Firebase 使用 Javascript 查询数组或对象