refactor(Collector): make filter an option (#5903)

Co-authored-by: SpaceEEC <spaceeec@yahoo.com>
This commit is contained in:
Jan
2021-06-26 11:57:06 +02:00
committed by GitHub
parent 1439183ad3
commit 0d0c8f07f2
7 changed files with 61 additions and 83 deletions

50
typings/index.d.ts vendored
View File

@@ -482,7 +482,7 @@ declare module 'discord.js' {
}
export abstract class Collector<K, V> extends EventEmitter {
constructor(client: Client, filter: CollectorFilter<[V]>, options?: CollectorOptions);
constructor(client: Client, options?: CollectorOptions<[V]>);
private _timeout: NodeJS.Timeout | null;
private _idletimeout: NodeJS.Timeout | null;
@@ -492,10 +492,10 @@ declare module 'discord.js' {
public abstract endReason: string | null;
public filter: CollectorFilter<[V]>;
public readonly next: Promise<V>;
public options: CollectorOptions;
public options: CollectorOptions<[V]>;
public checkEnd(): void;
public handleCollect(...args: any[]): void;
public handleDispose(...args: any[]): void;
public handleCollect(...args: any[]): Promise<void>;
public handleDispose(...args: any[]): Promise<void>;
public stop(reason?: string): void;
public resetTimer(options?: CollectorResetTimerOptions): void;
public [Symbol.asyncIterator](): AsyncIterableIterator<V>;
@@ -1281,19 +1281,11 @@ declare module 'discord.js' {
public flags: Readonly<MessageFlags>;
public reference: MessageReference | null;
public awaitMessageComponentInteraction(
filter: CollectorFilter<[MessageComponentInteraction]>,
options?: AwaitMessageComponentInteractionOptions,
): Promise<MessageComponentInteraction>;
public awaitReactions(
filter: CollectorFilter<[MessageReaction, User]>,
options?: AwaitReactionsOptions,
): Promise<Collection<Snowflake | string, MessageReaction>>;
public createReactionCollector(
filter: CollectorFilter<[MessageReaction, User]>,
options?: ReactionCollectorOptions,
): ReactionCollector;
public awaitReactions(options?: AwaitReactionsOptions): Promise<Collection<Snowflake | string, MessageReaction>>;
public createReactionCollector(options?: ReactionCollectorOptions): ReactionCollector;
public createMessageComponentInteractionCollector(
filter: CollectorFilter<[MessageComponentInteraction]>,
options?: MessageComponentInteractionCollectorOptions,
): MessageComponentInteractionCollector;
public delete(): Promise<Message>;
@@ -1372,11 +1364,7 @@ declare module 'discord.js' {
}
export class MessageCollector extends Collector<Snowflake, Message> {
constructor(
channel: TextChannel | DMChannel,
filter: CollectorFilter<[Message]>,
options?: MessageCollectorOptions,
);
constructor(channel: TextChannel | DMChannel, options?: MessageCollectorOptions);
private _handleChannelDeletion(channel: GuildChannel): void;
private _handleGuildDeletion(guild: Guild): void;
@@ -1413,7 +1401,6 @@ declare module 'discord.js' {
export class MessageComponentInteractionCollector extends Collector<Snowflake, MessageComponentInteraction> {
constructor(
source: Message | TextChannel | NewsChannel | DMChannel,
filter: CollectorFilter<[MessageComponentInteraction]>,
options?: MessageComponentInteractionCollectorOptions,
);
private _handleMessageDeletion(message: Message): void;
@@ -1637,7 +1624,7 @@ declare module 'discord.js' {
}
export class ReactionCollector extends Collector<Snowflake | string, MessageReaction> {
constructor(message: Message, filter: CollectorFilter<[MessageReaction, User]>, options?: ReactionCollectorOptions);
constructor(message: Message, options?: ReactionCollectorOptions);
private _handleChannelDeletion(channel: GuildChannel): void;
private _handleGuildDeletion(guild: Guild): void;
private _handleMessageDeletion(message: Message): void;
@@ -1650,7 +1637,7 @@ declare module 'discord.js' {
public static key(reaction: MessageReaction): Snowflake | string;
public collect(reaction: MessageReaction): Snowflake | string;
public collect(reaction: MessageReaction): Promise<Snowflake | string>;
public dispose(reaction: MessageReaction, user: User): Snowflake | string;
public empty(): void;
@@ -2619,22 +2606,17 @@ declare module 'discord.js' {
typing: boolean;
typingCount: number;
awaitMessageComponentInteraction(
filter: CollectorFilter<[MessageComponentInteraction]>,
options?: AwaitMessageComponentInteractionOptions,
): Promise<MessageComponentInteraction>;
awaitMessages(
filter: CollectorFilter<[Message]>,
options?: AwaitMessagesOptions,
): Promise<Collection<Snowflake, Message>>;
awaitMessages(options?: AwaitMessagesOptions): Promise<Collection<Snowflake, Message>>;
bulkDelete(
messages: Collection<Snowflake, Message> | readonly MessageResolvable[] | number,
filterOld?: boolean,
): Promise<Collection<Snowflake, Message>>;
createMessageComponentInteractionCollector(
filter: CollectorFilter<[MessageComponentInteraction]>,
options?: MessageComponentInteractionCollectorOptions,
): MessageComponentInteractionCollector;
createMessageCollector(filter: CollectorFilter<[Message]>, options?: MessageCollectorOptions): MessageCollector;
createMessageCollector(options?: MessageCollectorOptions): MessageCollector;
startTyping(count?: number): Promise<void>;
stopTyping(force?: boolean): void;
}
@@ -2873,6 +2855,7 @@ declare module 'discord.js' {
}
interface AwaitMessageComponentInteractionOptions {
filter?: CollectorFilter<[MessageComponentInteraction]>;
time?: number;
}
@@ -3070,7 +3053,8 @@ declare module 'discord.js' {
type CollectorFilter<T extends any[]> = (...args: T) => boolean | Promise<boolean>;
interface CollectorOptions {
interface CollectorOptions<T extends any[]> {
filter?: CollectorFilter<T>;
time?: number;
idle?: number;
dispose?: boolean;
@@ -3641,14 +3625,14 @@ declare module 'discord.js' {
type MessageButtonStyleResolvable = MessageButtonStyle | MessageButtonStyles;
interface MessageCollectorOptions extends CollectorOptions {
interface MessageCollectorOptions extends CollectorOptions<[Message]> {
max?: number;
maxProcessed?: number;
}
type MessageComponent = BaseMessageComponent | MessageActionRow | MessageButton | MessageSelectMenu;
interface MessageComponentInteractionCollectorOptions extends CollectorOptions {
interface MessageComponentInteractionCollectorOptions extends CollectorOptions<[MessageComponentInteraction]> {
max?: number;
maxComponents?: number;
maxUsers?: number;
@@ -4082,7 +4066,7 @@ declare module 'discord.js' {
remainingTime: number;
}
interface ReactionCollectorOptions extends CollectorOptions {
interface ReactionCollectorOptions extends CollectorOptions<[MessageReaction, User]> {
max?: number;
maxEmojis?: number;
maxUsers?: number;