[英]Discord specific roles required for adding a reaction to a message
client.on('messageReactionAdd', async (reaction, user) => {
const role = guild.roles.cache.find((role) => role.name === 'specific role')
if (reaction.emoji.id == '759643335043448834' && reaction.author.roles.has(role.id))
return
else await reaction.message.delete({timeout:2500})
});
所以現在這給了我一個錯誤,說公會沒有定義。 當用戶沒有特定角色時,我希望它刪除特定的自定義表情符號我有點困惑有人知道這個問題該怎么辦?
有兩個問題。 顯然,第一個是guild
沒有定義。 幸運的是,MessageReaction
有一個message
屬性,它有一個guild
屬性。
const role = reaction.message.guild.roles.cache.find(
(role) => role.name === 'specific role'
);
首先, reaction
沒有author
屬性。 即使這樣做了,它也會返回一個User
對象,您無法從中訪問角色。 閱讀此答案以查看差異。 相反,您應該使用Guild.member()
函數。
client.on('messageReactionAdd', async (reaction, user) => {
const guild = reaction.message.guild;
const role = guild.roles.cache.find((role) => role.name === 'specific role');
if (
reaction.emoji.id == '759643335043448834' &&
guild.member(user).roles.has(role.id)
)
return;
reaction.message.delete({ timeout: 2500 });
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.