mirror of
https://github.com/tiramisulabs/seyfert.git
synced 2025-07-04 14:06: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.client.logger.fatal(
|
||||||
`${context.command.name}.<onBotPermissionsFail>`,
|
`${context.command.name}.<onBotPermissionsFail>`,
|
||||||
context.author.id,
|
context.author.id,
|
||||||
permissions,
|
`permissions ${permissions?.length ? permissions : 'Not found'}`,
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
onPermissionsFail(context, permissions): any {
|
onPermissionsFail(context, permissions): any {
|
||||||
@ -424,9 +424,10 @@ export interface BaseClientOptions {
|
|||||||
defaults?: {
|
defaults?: {
|
||||||
onRunError?: (context: MenuCommandContext<any, never> | CommandContext, error: unknown) => unknown;
|
onRunError?: (context: MenuCommandContext<any, never> | CommandContext, error: unknown) => unknown;
|
||||||
onPermissionsFail?: Command['onPermissionsFail'];
|
onPermissionsFail?: Command['onPermissionsFail'];
|
||||||
|
|
||||||
onBotPermissionsFail?: (
|
onBotPermissionsFail?: (
|
||||||
context: MenuCommandContext<any, never> | CommandContext,
|
context: MenuCommandContext<any, never> | CommandContext,
|
||||||
permissions: PermissionStrings,
|
permissions?: PermissionStrings,
|
||||||
) => unknown;
|
) => unknown;
|
||||||
onInternalError?: (
|
onInternalError?: (
|
||||||
client: UsingClient,
|
client: UsingClient,
|
||||||
|
@ -61,7 +61,7 @@ export abstract class ContextMenuCommand {
|
|||||||
onMiddlewaresError(context: MenuCommandContext<any, never>, error: string): any {
|
onMiddlewaresError(context: MenuCommandContext<any, never>, error: string): any {
|
||||||
context.client.logger.fatal(`${this.name}.<onMiddlewaresError>`, context.author.id, error);
|
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);
|
context.client.logger.fatal(`${this.name}.<onBotPermissionsFail>`, context.author.id, permissions);
|
||||||
}
|
}
|
||||||
// onPermissionsFail(context: MenuCommandContext<any, never>, permissions: PermissionStrings): any {
|
// 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) {
|
if (rawMessage.guild_id) {
|
||||||
const meMember = await self.cache.members?.get(self.botId, rawMessage.guild_id);
|
if (command.defaultMemberPermissions) {
|
||||||
if (!meMember) return; //enable member cache and "Guilds" intent, lol
|
const memberPermissions = await self.members.permissions(rawMessage.guild_id, rawMessage.author.id);
|
||||||
const appPermissions = await meMember.fetchPermissions();
|
const permissions = this.checkPermissions(memberPermissions, command.defaultMemberPermissions);
|
||||||
const permissions = this.checkPermissions(appPermissions, command.botPermissions);
|
const guild = await this.client.guilds.raw(rawMessage.guild_id);
|
||||||
if (!appPermissions.has('Administrator') && permissions) {
|
if (permissions && guild.owner_id !== rawMessage.author.id) {
|
||||||
return command.onBotPermissionsFail?.(context, permissions);
|
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