我工作在一个不和谐的机器人,但我有一个问题,当我想知道如果用户谁点击按钮有一个角色
if (interaction.customId === "button_one") {
responseembed.description = `\u200b\n**${config.responses.response_1}**\n\u200b\n`
if (interaction.user.roles.cache.has(config.lspd_role_id)) {
const logchannel = interaction.guild.channels.cache.get(config.lspd_channel_id)
}else if (interaction.user.roles.cache.has(config.lssd_role_id)) {
const logchannel = interaction.guild.channels.cache.get(config.lssd_channel_id)
}
logchannel.send({ embeds: [PriseService], ephemeral: false })
// let invitecutie = new MessageButton()
// .setLabel("Invite Link")
// .setStyle("url")
// .setURL("Link")
// let buttonRow = new MessageActionRow()
// .addComponent(invitecutie)
//!If You Want Button in the Response remove // from the the Above 6 lines
return interaction.reply({ embeds: [responseembed], ephemeral: true })//If you want to send link button add ,component: buttonRow after the ephermeral: true declaration
}
但我有这个错误:
if(交互.用户.角色.缓存.has(配置.lspd_role_id)){ ^
TypeError:无法读取未定义的属性(阅读“缓存”)
2条答案
按热度按时间2hh7jdfx1#
User
在缓存中没有角色,只有GuildMember
具有角色。您不需要获取用户的角色,而是必须获取他作为guildmember(成员),然后在缓存中搜索他的角色。
b4qexyjb2#
必须从
GuildMember
对象访问角色。可以使用BaseInteraction#member
获取成员