refactor(util): use getter instead (#432)

This commit is contained in:
Ayyan
2021-01-21 22:47:46 +04:00
committed by GitHub
parent 8fc6089386
commit 8d5803c82a
+13 -10
View File
@@ -52,19 +52,22 @@ export async function botHasPermission(
guildID: string, guildID: string,
permissions: Permission[], permissions: Permission[],
) { ) {
const guild = await cacheHandlers.get("guilds", guildID); const member = await cacheHandlers.get("members", botID);
if (!guild) return false;
// Check if the bot is the owner of the guild, if it is, returns true
if (guild.ownerID === botID) return true;
const member = (await cacheHandlers.get("members", botID))?.guilds.get(
guildID,
);
if (!member) return false; if (!member) return false;
const guild = member.guild(guildID);
if (!guild) return false;
// The owner of a guild has all permissions, therefore, if the bot is the owner of the guild, permissions do not need to be inspected.
if (guild.ownerID === botID) return true;
const guildMember = member.guilds.get(
guildID,
);
if (!guildMember) return false;
// The everyone role is not in member.roles // The everyone role is not in member.roles
const permissionBits = [...member.roles, guild.id] const permissionBits = [...guildMember.roles, guild.id]
.map((id) => guild.roles.get(id)!) .map((id) => guild.roles.get(id)!)
// Remove any edge case undefined // Remove any edge case undefined
.filter((r) => r) .filter((r) => r)