mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-13 01:53:30 +01:00
refactor: comprehensive permissionOverwrites refactor (#2818)
* wip: comprehensive permissionOverwrites refactor * PermissionOverwrites.resolve should Promise.reject() where a promise is the expected return value * On second thought, async rewrite to automatically reject on throw * Fix some docs * Fix a bug * fix 2 more bugs * typings: Updated for latest commit * typings: Add missing method in GuildChannel * typings: Add missing `| null` in PermissionOverwriteOption type * Suggested changes
This commit is contained in:
39
typings/index.d.ts
vendored
39
typings/index.d.ts
vendored
@@ -519,20 +519,18 @@ declare module 'discord.js' {
|
||||
public rawPosition: number;
|
||||
public clone(options?: GuildChannelCloneOptions): Promise<GuildChannel>;
|
||||
public createInvite(options?: InviteOptions): Promise<Invite>;
|
||||
public createOverwrite(userOrRole: RoleResolvable | UserResolvable, options: PermissionOverwriteOption, reason?: string): Promise<GuildChannel>;
|
||||
public edit(data: ChannelData, reason?: string): Promise<GuildChannel>;
|
||||
public equals(channel: GuildChannel): boolean;
|
||||
public fetchInvites(): Promise<Collection<string, Invite>>;
|
||||
public lockPermissions(): Promise<GuildChannel>;
|
||||
public overwritePermissions(
|
||||
options: Array<Partial<PermissionOverwrites|PermissionOverwriteOptions>> | Collection<Snowflake, Partial<PermissionOverwriteOptions>>,
|
||||
reason?: string
|
||||
): Promise<GuildChannel>;
|
||||
public overwritePermissions(options?: { overwrites?: OverwriteResolvable[] | Collection<Snowflake, OverwriteResolvable>, reason?: string }): Promise<GuildChannel>;
|
||||
public permissionsFor(memberOrRole: GuildMemberResolvable | RoleResolvable): Readonly<Permissions> | null;
|
||||
public setName(name: string, reason?: string): Promise<GuildChannel>;
|
||||
public setParent(channel: GuildChannel | Snowflake, options?: { lockPermissions?: boolean, reason?: string }): Promise<GuildChannel>;
|
||||
public setPosition(position: number, options?: { relative?: boolean, reason?: string }): Promise<GuildChannel>;
|
||||
public setTopic(topic: string, reason?: string): Promise<GuildChannel>;
|
||||
public updateOverwrite(userOrRole: RoleResolvable | UserResolvable, options: Partial<PermissionObject>, reason?: string): Promise<GuildChannel>;
|
||||
public updateOverwrite(userOrRole: RoleResolvable | UserResolvable, options: PermissionOverwriteOption, reason?: string): Promise<GuildChannel>;
|
||||
}
|
||||
|
||||
export class GuildEmoji extends Emoji {
|
||||
@@ -786,8 +784,11 @@ declare module 'discord.js' {
|
||||
public deny: Readonly<Permissions>;
|
||||
public id: Snowflake;
|
||||
public type: OverwriteType;
|
||||
public update(options: PermissionOverwriteOption, reason?: string): Promise<PermissionOverwrites>;
|
||||
public delete(reason?: string): Promise<PermissionOverwrites>;
|
||||
public toJSON(): object;
|
||||
public static resolveOverwriteOptions(options: ResolvedOverwriteOptions, initialPermissions: { allow?: PermissionResolvable, deny?: PermissionResolvable }): ResolvedOverwriteOptions;
|
||||
public static resolve(overwrite: OverwriteResolvable, guild: Guild): RawOverwriteData;
|
||||
}
|
||||
|
||||
export class Permissions extends BitField<PermissionString> {
|
||||
@@ -1521,7 +1522,7 @@ declare module 'discord.js' {
|
||||
userLimit?: number;
|
||||
parentID?: Snowflake;
|
||||
lockPermissions?: boolean;
|
||||
permissionOverwrites?: PermissionOverwrites[];
|
||||
permissionOverwrites?: OverwriteResolvable[] | Collection<Snowflake, OverwriteResolvable>;
|
||||
};
|
||||
|
||||
type ChannelLogsQueryOptions = {
|
||||
@@ -1738,7 +1739,7 @@ declare module 'discord.js' {
|
||||
bitrate?: number;
|
||||
userLimit?: number;
|
||||
parent?: ChannelResolvable;
|
||||
overwrites?: (PermissionOverwrites | ChannelCreationOverwrites)[];
|
||||
overwrites?: OverwriteResolvable[] | Collection<Snowflake, OverwriteResolvable>;
|
||||
reason?: string
|
||||
};
|
||||
|
||||
@@ -1889,18 +1890,22 @@ declare module 'discord.js' {
|
||||
| 'GUILD_MEMBER_JOIN';
|
||||
|
||||
type OverwriteData = {
|
||||
id: Snowflake;
|
||||
type: string;
|
||||
allow?: string;
|
||||
deny?: string;
|
||||
allow?: PermissionResolvable;
|
||||
deny?: PermissionResolvable;
|
||||
id: GuildMemberResolvable | RoleResolvable;
|
||||
type?: OverwriteType;
|
||||
};
|
||||
|
||||
type OverwriteResolvable = PermissionOverwrites | OverwriteData;
|
||||
|
||||
type OverwriteType = 'member' | 'role';
|
||||
|
||||
type PermissionFlags = Record<PermissionString, number>;
|
||||
|
||||
type PermissionObject = Record<PermissionString, boolean>;
|
||||
|
||||
type PermissionOverwriteOption = { [k in PermissionString]?: boolean | null };
|
||||
|
||||
type PermissionString = 'CREATE_INSTANT_INVITE'
|
||||
| 'KICK_MEMBERS'
|
||||
| 'BAN_MEMBERS'
|
||||
@@ -1964,12 +1969,24 @@ declare module 'discord.js' {
|
||||
route: string;
|
||||
};
|
||||
|
||||
type RawOverwriteData = {
|
||||
id: Snowflake;
|
||||
allow: number;
|
||||
deny: number;
|
||||
type: OverwriteType;
|
||||
};
|
||||
|
||||
type ReactionCollectorOptions = CollectorOptions & {
|
||||
max?: number;
|
||||
maxEmojis?: number;
|
||||
maxUsers?: number;
|
||||
};
|
||||
|
||||
type ResolvedOverwriteOptions = {
|
||||
allow: Permissions;
|
||||
deny: Permissions;
|
||||
};
|
||||
|
||||
type RoleData = {
|
||||
name?: string;
|
||||
color?: ColorResolvable;
|
||||
|
||||
Reference in New Issue
Block a user