我正在 Discord BOT 中處理一些新命令,并且試圖確定具有管理員角色的用戶和具有創始人和管理員角色的用戶之間的區別。如果用戶角色僅包含管理員而不包含創始人,則它們被歸類為“CheckUserIsAdminOnly”。我使用下面的代碼當前檢查命令的用戶是否是管理員,因此我現在嘗試對此進行調整以說明用戶是否具有“管理員”角色但不包含“創始人”角色。我覺得我在這里錯過了一些簡單的東西,但我無法弄清楚我的錯誤return (fullContextUser.Roles.Where(x => x.Name == "Admin" || x.Name == "Head Recruiter" && x.Name != "Founder").Count() > 0);當用戶具有名為“Admin”和“Founder”的角色時,此代碼仍然返回 true
2 回答

慕森王
TA貢獻1777條經驗 獲得超3個贊
Roles是角色列表。您不能僅通過查看各個角色及其姓名來對列表做出聲明。
中的表達式Where將應用于列表中的每個單獨角色。
檢查角色是否存在,然后合并該信息。
bool hasAdminRole = fullContextUser.Roles.Any(x => x.Name == "Admin");
bool hasFounderRole = fullContextUser.Roles.Any(x => x.Name == "Founder");
bool isAdminButNotFounder = hasAdminRole && !hasFounderRole;

天涯盡頭無女友
TA貢獻1831條經驗 獲得超9個贊
你缺少括號:
return (fullContextUser.Roles.Where(x =>
(x.Name == "Admin" ||
x.Name == "Head Recruiter") &&
x.Name != "Founder").Count() > 0);
- 2 回答
- 0 關注
- 142 瀏覽
添加回答
舉報
0/150
提交
取消