如何在 DiscordJS v13 上向用户添加角色?
Posted
技术标签:
【中文标题】如何在 DiscordJS v13 上向用户添加角色?【英文标题】:How can I add a role to a user on DiscordJS v13? 【发布时间】:2021-12-21 19:20:24 【问题描述】:我在使用 DiscordJS v13 向用户添加角色时遇到问题。有什么办法吗?每当我添加它们时,它们都没有定义。这是我要添加添加角色的代码。我是 discord.js 的初学者,所以请耐心等待。谢谢!
else if (commandName === 'verification')
let code1 = 'A96B2UUH'
const code = options.getString('code')
if(code === code1)
interaction.reply(
content: 'The code has been accepted. Welcome to the hub!',
ephemeral: true,
)
let role = message.guild.roles.cache.some(role => role.name === 'Equitability')
message.member.roles.add(role)
else
interaction.reply(
content: 'You entered the wrong code. Please contact the administrators to gain access.',
ephemeral: true,
)
)
编辑:我修好了!我改变了一些东西,不知何故它起作用了。这是代码。
bot.on('interactionCreate', async interaction =>
if(!interaction.isCommand()) return
const options = interaction
if(interaction.commandName === 'verification')
let code1 = 'A96B2UUH'
const code = options.getString('code')
if(code === code1)
await interaction.reply(
content: 'You entered the correct code. Welcome to the hub!',
ephemeral: true,
)
var guild = bot.guilds.cache.get('907259574342537236')
const member = await guild.members.fetch(interaction.user.id)
const role = await guild.roles.fetch('907261775622328352')
member.roles.add(role)
else
await interaction.reply(
content: 'The code you entered is incorrect. Contact the administrators to gain access the server.',
ephemeral: true,
)
)
【问题讨论】:
【参考方案1】:在 Discord.js v13 中获取角色需要缓存它们,因此添加已知角色的最佳方法就是通过 ID。
要获取角色的 ID,请打开“服务器设置”>“角色”>“右键单击”>“复制 ID”
那么你可以简单地做
message.member.roles.add("roleId");
如果您不能完全确定某个角色是否存在(即通过用户输入),您可以获取所有服务器角色(不同于.cache.get
),然后是用户.filter
,但这似乎不是您的'这样做我不会包含它
【讨论】:
【参考方案2】:您正在使用.some()
,它返回Boolean
(true
/false
)。您需要角色对象,因此您使用.find()
,它采用相同的参数,但返回角色对象。另外,如果角色没有被缓存,可以使用RoleManager.fetch()
从API中获取
await message.guild.roles.fetch() //optional - put it if the role is valid, but is not cached
let role = message.guild.roles.cache.find(role => role.name === 'Equitability')
message.member.roles.add(role)
【讨论】:
感谢您提供的信息,但我已经修复了! :) 如果这有帮助,您可以考虑投票/接受以上是关于如何在 DiscordJS v13 上向用户添加角色?的主要内容,如果未能解决你的问题,请参考以下文章
尝试从 youtube 视频流式传输音频时,DiscordJS v13 AudioPlayer 卡在缓冲上
如何在我的网站上向 Google 地图小部件添加用户输入标记,并从中获取纬度和经度数据?