我想用一個簡單的方法檢查用戶是否有角色
let author = message.author.id
let guild = await client.guilds.fetch("guild")
let member = await guild.members.fetch(author)
member.roles.cache.has("role")
然而,有時它會回傳,false即使我只是給了那個成員一個角色。true在我洗掉他們的角色后它仍然回傳。只有在我重置機器人后它才能再次作業。
這是一個錯誤還是我需要再次快取整個成員?如果是這樣,我將如何去做以使其快速?
uj5u.com熱心網友回復:
看起來像是您面臨的快取問題...
我還沒有真正使用 discord api 進行開發,但是閱讀他們的檔案我覺得你應該使用:
await guild.members.fetch({ user: author/id, force: true });
force 標志指定不在查詢中使用快取——更多資訊在這里。顯然,禁用快取后,您可能會遇到性能下降。
此外,檔案指定了message.member可能已經為您執行此操作的物件,從而為您節省了一兩個查詢。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/355931.html
