簡體   English   中英

為消息添加反應所需的 Discord 特定角色

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM