mirror of
https://github.com/tiramisulabs/seyfert.git
synced 2025-07-02 04:56:07 +00:00
fix: fetch bot member permissions in prefix commands
This commit is contained in:
parent
34216bd066
commit
992a117bbc
@ -120,7 +120,7 @@ export class BaseClient {
|
||||
context.client.logger.fatal(
|
||||
`${context.command.name}.<onBotPermissionsFail>`,
|
||||
context.author.id,
|
||||
permissions,
|
||||
`permissions ${permissions?.length ? permissions : 'Not found'}`,
|
||||
);
|
||||
},
|
||||
onPermissionsFail(context, permissions): any {
|
||||
@ -424,9 +424,10 @@ export interface BaseClientOptions {
|
||||
defaults?: {
|
||||
onRunError?: (context: MenuCommandContext<any, never> | CommandContext, error: unknown) => unknown;
|
||||
onPermissionsFail?: Command['onPermissionsFail'];
|
||||
|
||||
onBotPermissionsFail?: (
|
||||
context: MenuCommandContext<any, never> | CommandContext,
|
||||
permissions: PermissionStrings,
|
||||
permissions?: PermissionStrings,
|
||||
) => unknown;
|
||||
onInternalError?: (
|
||||
client: UsingClient,
|
||||
|
@ -61,7 +61,7 @@ export abstract class ContextMenuCommand {
|
||||
onMiddlewaresError(context: MenuCommandContext<any, never>, error: string): any {
|
||||
context.client.logger.fatal(`${this.name}.<onMiddlewaresError>`, context.author.id, error);
|
||||
}
|
||||
onBotPermissionsFail(context: MenuCommandContext<any, never>, permissions: PermissionStrings): any {
|
||||
onBotPermissionsFail(context: MenuCommandContext<any, never>, permissions?: PermissionStrings): any {
|
||||
context.client.logger.fatal(`${this.name}.<onBotPermissionsFail>`, context.author.id, permissions);
|
||||
}
|
||||
// onPermissionsFail(context: MenuCommandContext<any, never>, permissions: PermissionStrings): any {
|
||||
|
@ -313,22 +313,23 @@ export class HandleCommand {
|
||||
),
|
||||
);
|
||||
}
|
||||
if (command.defaultMemberPermissions && rawMessage.guild_id) {
|
||||
const memberPermissions = await self.members.permissions(rawMessage.guild_id, rawMessage.author.id);
|
||||
const permissions = this.checkPermissions(memberPermissions, command.defaultMemberPermissions);
|
||||
const guild = await this.client.guilds.raw(rawMessage.guild_id);
|
||||
if (permissions && guild.owner_id !== rawMessage.author.id) {
|
||||
return command.onPermissionsFail?.(context, memberPermissions.keys(permissions));
|
||||
}
|
||||
}
|
||||
|
||||
if (command.botPermissions && rawMessage.guild_id) {
|
||||
const meMember = await self.cache.members?.get(self.botId, rawMessage.guild_id);
|
||||
if (!meMember) return; //enable member cache and "Guilds" intent, lol
|
||||
const appPermissions = await meMember.fetchPermissions();
|
||||
const permissions = this.checkPermissions(appPermissions, command.botPermissions);
|
||||
if (!appPermissions.has('Administrator') && permissions) {
|
||||
return command.onBotPermissionsFail?.(context, permissions);
|
||||
if (rawMessage.guild_id) {
|
||||
if (command.defaultMemberPermissions) {
|
||||
const memberPermissions = await self.members.permissions(rawMessage.guild_id, rawMessage.author.id);
|
||||
const permissions = this.checkPermissions(memberPermissions, command.defaultMemberPermissions);
|
||||
const guild = await this.client.guilds.raw(rawMessage.guild_id);
|
||||
if (permissions && guild.owner_id !== rawMessage.author.id) {
|
||||
return command.onPermissionsFail?.(context, memberPermissions.keys(permissions));
|
||||
}
|
||||
}
|
||||
|
||||
if (command.botPermissions) {
|
||||
const appPermissions = await self.members.permissions(rawMessage.guild_id, self.botId);
|
||||
const permissions = this.checkPermissions(appPermissions, command.botPermissions);
|
||||
if (!appPermissions.has('Administrator') && permissions) {
|
||||
return command.onBotPermissionsFail?.(context, permissions);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user