Skip to content

Commit

Permalink
[PATCH] check invite perms before fetching
Browse files Browse the repository at this point in the history
  • Loading branch information
Larsundso committed Dec 29, 2023
1 parent a1390e2 commit df3e167
Showing 1 changed file with 23 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,25 @@ import { API } from '../../../Client.js';
import cache from '../../cache.js';
import * as Classes from '../../../Other/classes.js';

import getBotMemberFromGuild from '../../getBotMemberFromGuild.js';
import requestHandlerError from '../../requestHandlerError.js';

/**
* Retrieves the invites for a given guild.
* @param guild The guild to retrieve invites for.
* @returns A promise that resolves with an array of parsed invite objects.
*/
export default async (guild: Discord.Guild) =>
(cache.apis.get(guild.id) ?? API).guilds
export default async (guild: Discord.Guild) => {
if (
!(await getBotMemberFromGuild(guild)).permissions.has(Discord.PermissionFlagsBits.ManageGuild)
) {
const e = requestHandlerError(`Cannot get invites`, [Discord.PermissionFlagsBits.ManageGuild]);

error(guild, e);
return e;
}

return (cache.apis.get(guild.id) ?? API).guilds
.getInvites(guild.id)
.then((invites) => {
const parsed = invites.map((i) => new Classes.Invite(guild.client, i));
Expand All @@ -24,3 +36,12 @@ export default async (guild: Discord.Guild) =>
error(guild, new Error((e as Discord.DiscordAPIError).message));
return e as Discord.DiscordAPIError;
});
};
/**
* Checks if the specified guild member has the permission to get guild invites.
* @param me - The guild member to check.
* @returns A promise that resolves to a boolean,
* indicating whether the guild member can get guild invites.
*/
export const canGetInvites = async (me: Discord.GuildMember) =>
me.permissions.has(Discord.PermissionFlagsBits.ManageGuild);

0 comments on commit df3e167

Please sign in to comment.