@magicyan/discord 1.0.28 → 1.0.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as discord_js from 'discord.js';
2
- import { GatewayIntentBits, Partials, ChannelType, Guild, CommandInteractionOption, Client, ApplicationCommand, AnyComponentBuilder, ActionRowBuilder, ButtonBuilder, LinkButtonComponentData, TextInputBuilder, ModalSubmitFields, Collection, TextInputComponent, TextInputComponentData, GuildEmoji, GuildMember, GuildTextBasedChannel, Message, Role, Attachment, AttachmentBuilder, EmbedAssetData, EmbedAuthorData, ImageURLOptions, User, EmbedFooterData, APIEmbed, Embed, EmbedBuilder, EmbedData, ColorResolvable } from 'discord.js';
2
+ import { GatewayIntentBits, Partials, Attachment, AttachmentBuilder, EmbedAssetData, Guild, GuildMember, User, ClientUser, ImageURLOptions, EmbedFooterData, APIEmbed, Embed, EmbedData, EmbedBuilder, ColorResolvable, AnyComponentBuilder, ActionRowBuilder, ButtonBuilder, LinkButtonComponentData, ChannelType, CommandInteractionOption, Client, ApplicationCommand, TextInputBuilder, ModalSubmitFields, Collection, TextInputComponent, TextInputComponentData, GuildEmoji, GuildTextBasedChannel, Message, Role } from 'discord.js';
3
3
  export * from '@magicyan/core';
4
4
 
5
5
  declare const chars: {
@@ -18,23 +18,155 @@ declare const CustomPartials: {
18
18
 
19
19
  declare function setMobileStatus(): void;
20
20
 
21
+ type EmbedPlusAssetData = string | Attachment | AttachmentBuilder | EmbedAssetData | undefined | null;
22
+ type EmbedAssetOptions = Omit<EmbedAssetData, "url">;
23
+ declare function createEmbedAsset(source: EmbedPlusAssetData, options?: EmbedAssetOptions): EmbedAssetData | undefined;
24
+
25
+ interface MemberAuthor {
26
+ type: GuildMember;
27
+ property?: "username" | "displayName" | "id" | "globalName" | "nickname";
28
+ }
29
+ interface UserAuthor {
30
+ type: User | ClientUser;
31
+ property?: "username" | "displayName" | "id" | "globalName";
32
+ }
33
+ interface GuildAuthor {
34
+ type: Guild;
35
+ property?: "name" | "id";
36
+ }
37
+ type AuthorOption = MemberAuthor | UserAuthor | GuildAuthor;
38
+ type AuthorType = Guild | GuildMember | User | ClientUser;
39
+ type CreateEmbedAuthorOptions<T extends AuthorType> = {
40
+ iconURL?: string;
41
+ url?: string | null;
42
+ prefix?: string;
43
+ suffix?: string;
44
+ } & ImageURLOptions & Omit<Extract<AuthorOption, {
45
+ type: T;
46
+ }>, "type">;
47
+ declare function createEmbedAuthor<T extends AuthorType>(type: T, options?: CreateEmbedAuthorOptions<T>): {
48
+ name: string;
49
+ url: string | undefined;
50
+ iconURL: string | undefined;
51
+ };
52
+
53
+ type EmbedPlusFieldData = {
54
+ name: string;
55
+ value: string;
56
+ inline?: boolean;
57
+ };
58
+ type FieldPredicate = (field: EmbedPlusFieldData, index: number, obj: EmbedPlusFieldData[]) => boolean;
59
+ declare class EmbedPlusFields {
60
+ private embed;
61
+ private set fields(value);
62
+ private get fields();
63
+ constructor(embed: EmbedPlusBuilder);
64
+ [Symbol.iterator](): {
65
+ next(): IteratorResult<EmbedPlusFieldData>;
66
+ };
67
+ get length(): number;
68
+ get record(): Record<string, string | undefined>;
69
+ /**
70
+ * Get a filed by index
71
+ * @param name Field name
72
+ */
73
+ get(name: string): EmbedPlusFieldData | undefined;
74
+ /**
75
+ * Get a field by name
76
+ * @param index Field index
77
+ */
78
+ get(index: number): EmbedPlusFieldData | undefined;
79
+ find(predicate: FieldPredicate): EmbedPlusFieldData | undefined;
80
+ push(...fields: EmbedPlusFieldData[]): void;
81
+ set(...fields: EmbedPlusFieldData[]): void;
82
+ map<U>(callback: (value: EmbedPlusFieldData, index: number, array: EmbedPlusFieldData[]) => U): U[];
83
+ update(predicate: string | number | FieldPredicate, field: Partial<EmbedPlusFieldData>): boolean;
84
+ delete(predicate: string | number | FieldPredicate): boolean;
85
+ /**
86
+ * Remove all fields
87
+ */
88
+ clear(): this;
89
+ toArray(): EmbedPlusFieldData[];
90
+ private getPredicateIndex;
91
+ }
92
+
93
+ type EmbedPlusFooterData = {
94
+ text?: string | null;
95
+ iconURL?: string | null;
96
+ };
97
+ declare function createEmbedFooter(options: EmbedPlusFooterData): EmbedFooterData | undefined;
98
+
99
+ type EmbedPlusColorData = string & {} | ColorResolvable | null;
100
+ type EmbedPlusAuthorData = {
101
+ name: string;
102
+ url?: string;
103
+ iconURL?: string;
104
+ };
105
+ interface EmbedPlusData {
106
+ title?: string | null;
107
+ color?: EmbedPlusColorData | null;
108
+ description?: string | null;
109
+ url?: string | null;
110
+ thumbnail?: EmbedPlusAssetData;
111
+ image?: EmbedPlusAssetData;
112
+ fields?: Partial<EmbedPlusFieldData>[] | null;
113
+ timestamp?: string | number | Date | null;
114
+ footer?: EmbedPlusFooterData;
115
+ author?: EmbedPlusAuthorData;
116
+ }
117
+ type AnyEmbedData = APIEmbed | Embed | EmbedData;
118
+ interface MessageWithEmbeds {
119
+ embeds: Array<Embed>;
120
+ }
121
+ interface InteractionWithEmbeds {
122
+ message: MessageWithEmbeds;
123
+ }
124
+ interface EmbedPlusOptions extends EmbedPlusData {
125
+ extends?: EmbedPlusData | AnyEmbedData | EmbedBuilder;
126
+ mergeFields?: boolean;
127
+ }
128
+ declare class EmbedPlusBuilder extends EmbedBuilder {
129
+ fields: EmbedPlusFields;
130
+ constructor(data: EmbedPlusOptions);
131
+ update(data: EmbedPlusData): this;
132
+ has(property: keyof EmbedPlusData): boolean;
133
+ toArray(): EmbedPlusBuilder[];
134
+ toString(space?: number): string;
135
+ setBorderColor(color: EmbedPlusColorData | null): this;
136
+ setAsset(asset: "thumbnail" | "image", source: EmbedPlusAssetData): this;
137
+ static fromInteraction(interaction: InteractionWithEmbeds, index?: number, data?: EmbedPlusData): EmbedPlusBuilder;
138
+ static fromMessage(message: MessageWithEmbeds, index?: number, data?: EmbedPlusData): EmbedPlusBuilder;
139
+ }
140
+ type EmbedPlusProperty<P extends keyof EmbedPlusData> = EmbedPlusData[P];
141
+ interface CreateEmbedOptions<B extends boolean> extends EmbedPlusOptions {
142
+ array?: B;
143
+ interaction?: InteractionWithEmbeds;
144
+ }
145
+ type CreateEmbedReturn<B> = undefined extends B ? EmbedPlusBuilder : false extends B ? EmbedPlusBuilder : EmbedPlusBuilder[];
146
+ declare function createEmbed<B extends boolean>(options: CreateEmbedOptions<B>): CreateEmbedReturn<B>;
147
+
148
+ declare function createRow<Component extends AnyComponentBuilder>(...components: Component[]): ActionRowBuilder<Component>;
149
+ interface CreateLinkButtonData extends Omit<LinkButtonComponentData, "style" | "type"> {
150
+ }
151
+ declare function createLinkButton(data: CreateLinkButtonData): ButtonBuilder;
152
+
21
153
  type GuildChannelType = Exclude<ChannelType, ChannelType.DM>;
22
154
  type FindChannelFilter<T extends GuildChannelType> = (channel: GetChannelType<T>) => boolean;
23
155
  type GetChannelType<Type extends GuildChannelType> = Extract<NonNullable<CommandInteractionOption<"cached">["channel"]>, {
24
156
  type: Type extends ChannelType.PublicThread | ChannelType.AnnouncementThread ? ChannelType.PublicThread | ChannelType.AnnouncementThread : Type;
25
157
  }>;
26
158
  declare function findChannel<Type extends GuildChannelType = ChannelType.GuildText>(guild: Guild, type?: Type): {
27
- byName(name: string, filter?: FindChannelFilter<Type>): GetChannelType<Type> | undefined;
28
159
  byId(id: string): GetChannelType<Type> | undefined;
160
+ byName(name: string, and?: FindChannelFilter<Type>): GetChannelType<Type> | undefined;
29
161
  byFilter(filter: FindChannelFilter<Type>): GetChannelType<Type> | undefined;
30
162
  inCategoryId(id: string): {
31
- byName(name: string, filter?: FindChannelFilter<Type>): GetChannelType<Type> | undefined;
32
- byId(id: string, filter?: FindChannelFilter<Type>): GetChannelType<Type> | undefined;
163
+ byId(id: string): GetChannelType<Type> | undefined;
164
+ byName(name: string, and?: FindChannelFilter<Type>): GetChannelType<Type> | undefined;
33
165
  byFilter(filter: FindChannelFilter<Type>): GetChannelType<Type> | undefined;
34
166
  };
35
167
  inCategoryName(name: string): {
36
- byName(name: string, filter?: FindChannelFilter<Type>): GetChannelType<Type> | undefined;
37
- byId(id: string, filter?: FindChannelFilter<Type>): GetChannelType<Type> | undefined;
168
+ byId(id: string): GetChannelType<Type> | undefined;
169
+ byName(name: string, and?: FindChannelFilter<Type>): GetChannelType<Type> | undefined;
38
170
  byFilter(filter: FindChannelFilter<Type>): GetChannelType<Type> | undefined;
39
171
  };
40
172
  };
@@ -57,11 +189,6 @@ declare function findCommand(guildOrClient: Guild | Client<true>): {
57
189
  }> | undefined;
58
190
  };
59
191
 
60
- declare function createRow<Component extends AnyComponentBuilder>(...components: Component[]): ActionRowBuilder<Component>;
61
- interface CreateLinkButtonData extends Omit<LinkButtonComponentData, "style" | "type"> {
62
- }
63
- declare function createLinkButton(data: CreateLinkButtonData): ButtonBuilder;
64
-
65
192
  type TextInputData = Omit<TextInputComponentData, "type">;
66
193
  type CreateModalInputData = TextInputData;
67
194
  declare function createModalInput(data: CreateModalInputData): ActionRowBuilder<TextInputBuilder>;
@@ -140,115 +267,4 @@ declare function findRole(guild: Guild): {
140
267
  */
141
268
  declare function extractMentionId(mention: string): string | null;
142
269
 
143
- type EmbedPlusAssetData = string | Attachment | AttachmentBuilder | EmbedAssetData | undefined | null;
144
- type EmbedAssetOptions = Omit<EmbedAssetData, "url">;
145
- declare function createEmbedAsset(source: EmbedPlusAssetData, options?: EmbedAssetOptions): EmbedAssetData | undefined;
146
-
147
- interface UserAuthorOption {
148
- user: User;
149
- property?: "username" | "displayName" | "id" | "globalName";
150
- }
151
- interface MemberAuthorOption {
152
- member: GuildMember;
153
- property?: "username" | "displayName" | "id" | "globalName" | "nickname";
154
- }
155
- type AuthorOption = UserAuthorOption | MemberAuthorOption;
156
- type CreateEmbedAuthorOptions = AuthorOption & ImageURLOptions & {
157
- iconURL?: string;
158
- url?: string;
159
- prefix?: string;
160
- suffix?: string;
161
- };
162
- declare function createEmbedAuthor(options: CreateEmbedAuthorOptions): EmbedAuthorData;
163
-
164
- type EmbedPlusFieldData = {
165
- name: string;
166
- value: string;
167
- inline?: boolean;
168
- };
169
- type FieldPredicate = (field: EmbedPlusFieldData, index: number, obj: EmbedPlusFieldData[]) => boolean;
170
- declare class EmbedPlusFields {
171
- private embed;
172
- private set fields(value);
173
- private get fields();
174
- constructor(embed: EmbedPlusBuilder);
175
- [Symbol.iterator](): {
176
- next(): IteratorResult<EmbedPlusFieldData>;
177
- };
178
- get length(): number;
179
- get record(): Record<string, string | undefined>;
180
- /**
181
- * Get a filed by index
182
- * @param name Field name
183
- */
184
- get(name: string): EmbedPlusFieldData | undefined;
185
- /**
186
- * Get a field by name
187
- * @param index Field index
188
- */
189
- get(index: number): EmbedPlusFieldData | undefined;
190
- find(predicate: FieldPredicate): EmbedPlusFieldData | undefined;
191
- push(...fields: EmbedPlusFieldData[]): void;
192
- set(...fields: EmbedPlusFieldData[]): void;
193
- update(predicate: string | number | FieldPredicate, field: Partial<EmbedPlusFieldData>): boolean;
194
- delete(predicate: string | number | FieldPredicate): boolean;
195
- toArray(): EmbedPlusFieldData[];
196
- private getPredicateIndex;
197
- }
198
-
199
- type EmbedPlusFooterData = {
200
- text?: string | null;
201
- iconURL?: string | null;
202
- };
203
- declare function createEmbedFooter(options: EmbedPlusFooterData): EmbedFooterData | undefined;
204
-
205
- type EmbedPlusColorData = string & {} | ColorResolvable | null;
206
- type EmbedPlusAuthorData = {
207
- name: string;
208
- url?: string;
209
- iconURL?: string;
210
- };
211
- interface EmbedPlusData {
212
- title?: string | null;
213
- color?: EmbedPlusColorData | null;
214
- description?: string | null;
215
- url?: string | null;
216
- thumbnail?: EmbedPlusAssetData;
217
- image?: EmbedPlusAssetData;
218
- fields?: Partial<EmbedPlusFieldData>[] | null;
219
- timestamp?: string | number | Date | null;
220
- footer?: EmbedPlusFooterData;
221
- author?: EmbedPlusAuthorData;
222
- }
223
- type AnyEmbed = APIEmbed | Embed | EmbedBuilder | EmbedData;
224
- interface MessageWithEmbeds {
225
- embeds: Array<Embed>;
226
- }
227
- interface InteractionWithEmbeds {
228
- message: MessageWithEmbeds;
229
- }
230
- interface EmbedPlusOptions extends EmbedPlusData {
231
- extends?: Omit<EmbedPlusData, keyof EmbedPlusOptions> | AnyEmbed;
232
- mergeFields?: boolean;
233
- }
234
- declare class EmbedPlusBuilder extends EmbedBuilder {
235
- fields: EmbedPlusFields;
236
- constructor(data: EmbedPlusOptions);
237
- update(data: EmbedPlusData): this;
238
- has(property: keyof Omit<EmbedPlusData, keyof EmbedPlusOptions>): boolean;
239
- toArray(): EmbedPlusBuilder[];
240
- toString(space?: number): string;
241
- setBorderColor(color: EmbedPlusColorData | null): this;
242
- setAsset(asset: "thumbnail" | "image", source: EmbedPlusAssetData): this;
243
- static fromInteraction(interaction: InteractionWithEmbeds, index?: number, data?: EmbedPlusData): EmbedPlusBuilder;
244
- static fromMessage(message: MessageWithEmbeds, index?: number, data?: EmbedPlusData): EmbedPlusBuilder;
245
- }
246
- type EmbedPlusProperty<P extends keyof EmbedPlusData> = EmbedPlusData[P];
247
- interface CreateEmbedOptions<B extends boolean> extends EmbedPlusOptions {
248
- array?: B;
249
- interaction?: InteractionWithEmbeds;
250
- }
251
- type CreateEmbedReturn<B> = undefined extends B ? EmbedPlusBuilder : false extends B ? EmbedPlusBuilder : EmbedPlusBuilder[];
252
- declare function createEmbed<B extends boolean>(options: CreateEmbedOptions<B>): CreateEmbedReturn<B>;
253
-
254
- export { type AnyEmbed, CustomItents, CustomPartials, type EmbedPlusAssetData, EmbedPlusBuilder, type EmbedPlusData, type EmbedPlusFooterData, type EmbedPlusProperty, chars, createEmbed, createEmbedAsset, createEmbedAuthor, createEmbedFooter, createLinkButton, createModalFields, createModalInput, createRow, extractMentionId, findChannel, findCommand, findEmoji, findMember, findMessage, findRole, getChannelUrlInfo, getMessageUrlInfo, modalFieldsToRecord, setMobileStatus };
270
+ export { type AnyEmbedData, CustomItents, CustomPartials, type EmbedPlusAssetData, EmbedPlusBuilder, type EmbedPlusData, type EmbedPlusFooterData, type EmbedPlusProperty, chars, createEmbed, createEmbedAsset, createEmbedAuthor, createEmbedFooter, createLinkButton, createModalFields, createModalInput, createRow, extractMentionId, findChannel, findCommand, findEmoji, findMember, findMessage, findRole, getChannelUrlInfo, getMessageUrlInfo, modalFieldsToRecord, setMobileStatus };
package/dist/index.d.mts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as discord_js from 'discord.js';
2
- import { GatewayIntentBits, Partials, ChannelType, Guild, CommandInteractionOption, Client, ApplicationCommand, AnyComponentBuilder, ActionRowBuilder, ButtonBuilder, LinkButtonComponentData, TextInputBuilder, ModalSubmitFields, Collection, TextInputComponent, TextInputComponentData, GuildEmoji, GuildMember, GuildTextBasedChannel, Message, Role, Attachment, AttachmentBuilder, EmbedAssetData, EmbedAuthorData, ImageURLOptions, User, EmbedFooterData, APIEmbed, Embed, EmbedBuilder, EmbedData, ColorResolvable } from 'discord.js';
2
+ import { GatewayIntentBits, Partials, Attachment, AttachmentBuilder, EmbedAssetData, Guild, GuildMember, User, ClientUser, ImageURLOptions, EmbedFooterData, APIEmbed, Embed, EmbedData, EmbedBuilder, ColorResolvable, AnyComponentBuilder, ActionRowBuilder, ButtonBuilder, LinkButtonComponentData, ChannelType, CommandInteractionOption, Client, ApplicationCommand, TextInputBuilder, ModalSubmitFields, Collection, TextInputComponent, TextInputComponentData, GuildEmoji, GuildTextBasedChannel, Message, Role } from 'discord.js';
3
3
  export * from '@magicyan/core';
4
4
 
5
5
  declare const chars: {
@@ -18,23 +18,155 @@ declare const CustomPartials: {
18
18
 
19
19
  declare function setMobileStatus(): void;
20
20
 
21
+ type EmbedPlusAssetData = string | Attachment | AttachmentBuilder | EmbedAssetData | undefined | null;
22
+ type EmbedAssetOptions = Omit<EmbedAssetData, "url">;
23
+ declare function createEmbedAsset(source: EmbedPlusAssetData, options?: EmbedAssetOptions): EmbedAssetData | undefined;
24
+
25
+ interface MemberAuthor {
26
+ type: GuildMember;
27
+ property?: "username" | "displayName" | "id" | "globalName" | "nickname";
28
+ }
29
+ interface UserAuthor {
30
+ type: User | ClientUser;
31
+ property?: "username" | "displayName" | "id" | "globalName";
32
+ }
33
+ interface GuildAuthor {
34
+ type: Guild;
35
+ property?: "name" | "id";
36
+ }
37
+ type AuthorOption = MemberAuthor | UserAuthor | GuildAuthor;
38
+ type AuthorType = Guild | GuildMember | User | ClientUser;
39
+ type CreateEmbedAuthorOptions<T extends AuthorType> = {
40
+ iconURL?: string;
41
+ url?: string | null;
42
+ prefix?: string;
43
+ suffix?: string;
44
+ } & ImageURLOptions & Omit<Extract<AuthorOption, {
45
+ type: T;
46
+ }>, "type">;
47
+ declare function createEmbedAuthor<T extends AuthorType>(type: T, options?: CreateEmbedAuthorOptions<T>): {
48
+ name: string;
49
+ url: string | undefined;
50
+ iconURL: string | undefined;
51
+ };
52
+
53
+ type EmbedPlusFieldData = {
54
+ name: string;
55
+ value: string;
56
+ inline?: boolean;
57
+ };
58
+ type FieldPredicate = (field: EmbedPlusFieldData, index: number, obj: EmbedPlusFieldData[]) => boolean;
59
+ declare class EmbedPlusFields {
60
+ private embed;
61
+ private set fields(value);
62
+ private get fields();
63
+ constructor(embed: EmbedPlusBuilder);
64
+ [Symbol.iterator](): {
65
+ next(): IteratorResult<EmbedPlusFieldData>;
66
+ };
67
+ get length(): number;
68
+ get record(): Record<string, string | undefined>;
69
+ /**
70
+ * Get a filed by index
71
+ * @param name Field name
72
+ */
73
+ get(name: string): EmbedPlusFieldData | undefined;
74
+ /**
75
+ * Get a field by name
76
+ * @param index Field index
77
+ */
78
+ get(index: number): EmbedPlusFieldData | undefined;
79
+ find(predicate: FieldPredicate): EmbedPlusFieldData | undefined;
80
+ push(...fields: EmbedPlusFieldData[]): void;
81
+ set(...fields: EmbedPlusFieldData[]): void;
82
+ map<U>(callback: (value: EmbedPlusFieldData, index: number, array: EmbedPlusFieldData[]) => U): U[];
83
+ update(predicate: string | number | FieldPredicate, field: Partial<EmbedPlusFieldData>): boolean;
84
+ delete(predicate: string | number | FieldPredicate): boolean;
85
+ /**
86
+ * Remove all fields
87
+ */
88
+ clear(): this;
89
+ toArray(): EmbedPlusFieldData[];
90
+ private getPredicateIndex;
91
+ }
92
+
93
+ type EmbedPlusFooterData = {
94
+ text?: string | null;
95
+ iconURL?: string | null;
96
+ };
97
+ declare function createEmbedFooter(options: EmbedPlusFooterData): EmbedFooterData | undefined;
98
+
99
+ type EmbedPlusColorData = string & {} | ColorResolvable | null;
100
+ type EmbedPlusAuthorData = {
101
+ name: string;
102
+ url?: string;
103
+ iconURL?: string;
104
+ };
105
+ interface EmbedPlusData {
106
+ title?: string | null;
107
+ color?: EmbedPlusColorData | null;
108
+ description?: string | null;
109
+ url?: string | null;
110
+ thumbnail?: EmbedPlusAssetData;
111
+ image?: EmbedPlusAssetData;
112
+ fields?: Partial<EmbedPlusFieldData>[] | null;
113
+ timestamp?: string | number | Date | null;
114
+ footer?: EmbedPlusFooterData;
115
+ author?: EmbedPlusAuthorData;
116
+ }
117
+ type AnyEmbedData = APIEmbed | Embed | EmbedData;
118
+ interface MessageWithEmbeds {
119
+ embeds: Array<Embed>;
120
+ }
121
+ interface InteractionWithEmbeds {
122
+ message: MessageWithEmbeds;
123
+ }
124
+ interface EmbedPlusOptions extends EmbedPlusData {
125
+ extends?: EmbedPlusData | AnyEmbedData | EmbedBuilder;
126
+ mergeFields?: boolean;
127
+ }
128
+ declare class EmbedPlusBuilder extends EmbedBuilder {
129
+ fields: EmbedPlusFields;
130
+ constructor(data: EmbedPlusOptions);
131
+ update(data: EmbedPlusData): this;
132
+ has(property: keyof EmbedPlusData): boolean;
133
+ toArray(): EmbedPlusBuilder[];
134
+ toString(space?: number): string;
135
+ setBorderColor(color: EmbedPlusColorData | null): this;
136
+ setAsset(asset: "thumbnail" | "image", source: EmbedPlusAssetData): this;
137
+ static fromInteraction(interaction: InteractionWithEmbeds, index?: number, data?: EmbedPlusData): EmbedPlusBuilder;
138
+ static fromMessage(message: MessageWithEmbeds, index?: number, data?: EmbedPlusData): EmbedPlusBuilder;
139
+ }
140
+ type EmbedPlusProperty<P extends keyof EmbedPlusData> = EmbedPlusData[P];
141
+ interface CreateEmbedOptions<B extends boolean> extends EmbedPlusOptions {
142
+ array?: B;
143
+ interaction?: InteractionWithEmbeds;
144
+ }
145
+ type CreateEmbedReturn<B> = undefined extends B ? EmbedPlusBuilder : false extends B ? EmbedPlusBuilder : EmbedPlusBuilder[];
146
+ declare function createEmbed<B extends boolean>(options: CreateEmbedOptions<B>): CreateEmbedReturn<B>;
147
+
148
+ declare function createRow<Component extends AnyComponentBuilder>(...components: Component[]): ActionRowBuilder<Component>;
149
+ interface CreateLinkButtonData extends Omit<LinkButtonComponentData, "style" | "type"> {
150
+ }
151
+ declare function createLinkButton(data: CreateLinkButtonData): ButtonBuilder;
152
+
21
153
  type GuildChannelType = Exclude<ChannelType, ChannelType.DM>;
22
154
  type FindChannelFilter<T extends GuildChannelType> = (channel: GetChannelType<T>) => boolean;
23
155
  type GetChannelType<Type extends GuildChannelType> = Extract<NonNullable<CommandInteractionOption<"cached">["channel"]>, {
24
156
  type: Type extends ChannelType.PublicThread | ChannelType.AnnouncementThread ? ChannelType.PublicThread | ChannelType.AnnouncementThread : Type;
25
157
  }>;
26
158
  declare function findChannel<Type extends GuildChannelType = ChannelType.GuildText>(guild: Guild, type?: Type): {
27
- byName(name: string, filter?: FindChannelFilter<Type>): GetChannelType<Type> | undefined;
28
159
  byId(id: string): GetChannelType<Type> | undefined;
160
+ byName(name: string, and?: FindChannelFilter<Type>): GetChannelType<Type> | undefined;
29
161
  byFilter(filter: FindChannelFilter<Type>): GetChannelType<Type> | undefined;
30
162
  inCategoryId(id: string): {
31
- byName(name: string, filter?: FindChannelFilter<Type>): GetChannelType<Type> | undefined;
32
- byId(id: string, filter?: FindChannelFilter<Type>): GetChannelType<Type> | undefined;
163
+ byId(id: string): GetChannelType<Type> | undefined;
164
+ byName(name: string, and?: FindChannelFilter<Type>): GetChannelType<Type> | undefined;
33
165
  byFilter(filter: FindChannelFilter<Type>): GetChannelType<Type> | undefined;
34
166
  };
35
167
  inCategoryName(name: string): {
36
- byName(name: string, filter?: FindChannelFilter<Type>): GetChannelType<Type> | undefined;
37
- byId(id: string, filter?: FindChannelFilter<Type>): GetChannelType<Type> | undefined;
168
+ byId(id: string): GetChannelType<Type> | undefined;
169
+ byName(name: string, and?: FindChannelFilter<Type>): GetChannelType<Type> | undefined;
38
170
  byFilter(filter: FindChannelFilter<Type>): GetChannelType<Type> | undefined;
39
171
  };
40
172
  };
@@ -57,11 +189,6 @@ declare function findCommand(guildOrClient: Guild | Client<true>): {
57
189
  }> | undefined;
58
190
  };
59
191
 
60
- declare function createRow<Component extends AnyComponentBuilder>(...components: Component[]): ActionRowBuilder<Component>;
61
- interface CreateLinkButtonData extends Omit<LinkButtonComponentData, "style" | "type"> {
62
- }
63
- declare function createLinkButton(data: CreateLinkButtonData): ButtonBuilder;
64
-
65
192
  type TextInputData = Omit<TextInputComponentData, "type">;
66
193
  type CreateModalInputData = TextInputData;
67
194
  declare function createModalInput(data: CreateModalInputData): ActionRowBuilder<TextInputBuilder>;
@@ -140,115 +267,4 @@ declare function findRole(guild: Guild): {
140
267
  */
141
268
  declare function extractMentionId(mention: string): string | null;
142
269
 
143
- type EmbedPlusAssetData = string | Attachment | AttachmentBuilder | EmbedAssetData | undefined | null;
144
- type EmbedAssetOptions = Omit<EmbedAssetData, "url">;
145
- declare function createEmbedAsset(source: EmbedPlusAssetData, options?: EmbedAssetOptions): EmbedAssetData | undefined;
146
-
147
- interface UserAuthorOption {
148
- user: User;
149
- property?: "username" | "displayName" | "id" | "globalName";
150
- }
151
- interface MemberAuthorOption {
152
- member: GuildMember;
153
- property?: "username" | "displayName" | "id" | "globalName" | "nickname";
154
- }
155
- type AuthorOption = UserAuthorOption | MemberAuthorOption;
156
- type CreateEmbedAuthorOptions = AuthorOption & ImageURLOptions & {
157
- iconURL?: string;
158
- url?: string;
159
- prefix?: string;
160
- suffix?: string;
161
- };
162
- declare function createEmbedAuthor(options: CreateEmbedAuthorOptions): EmbedAuthorData;
163
-
164
- type EmbedPlusFieldData = {
165
- name: string;
166
- value: string;
167
- inline?: boolean;
168
- };
169
- type FieldPredicate = (field: EmbedPlusFieldData, index: number, obj: EmbedPlusFieldData[]) => boolean;
170
- declare class EmbedPlusFields {
171
- private embed;
172
- private set fields(value);
173
- private get fields();
174
- constructor(embed: EmbedPlusBuilder);
175
- [Symbol.iterator](): {
176
- next(): IteratorResult<EmbedPlusFieldData>;
177
- };
178
- get length(): number;
179
- get record(): Record<string, string | undefined>;
180
- /**
181
- * Get a filed by index
182
- * @param name Field name
183
- */
184
- get(name: string): EmbedPlusFieldData | undefined;
185
- /**
186
- * Get a field by name
187
- * @param index Field index
188
- */
189
- get(index: number): EmbedPlusFieldData | undefined;
190
- find(predicate: FieldPredicate): EmbedPlusFieldData | undefined;
191
- push(...fields: EmbedPlusFieldData[]): void;
192
- set(...fields: EmbedPlusFieldData[]): void;
193
- update(predicate: string | number | FieldPredicate, field: Partial<EmbedPlusFieldData>): boolean;
194
- delete(predicate: string | number | FieldPredicate): boolean;
195
- toArray(): EmbedPlusFieldData[];
196
- private getPredicateIndex;
197
- }
198
-
199
- type EmbedPlusFooterData = {
200
- text?: string | null;
201
- iconURL?: string | null;
202
- };
203
- declare function createEmbedFooter(options: EmbedPlusFooterData): EmbedFooterData | undefined;
204
-
205
- type EmbedPlusColorData = string & {} | ColorResolvable | null;
206
- type EmbedPlusAuthorData = {
207
- name: string;
208
- url?: string;
209
- iconURL?: string;
210
- };
211
- interface EmbedPlusData {
212
- title?: string | null;
213
- color?: EmbedPlusColorData | null;
214
- description?: string | null;
215
- url?: string | null;
216
- thumbnail?: EmbedPlusAssetData;
217
- image?: EmbedPlusAssetData;
218
- fields?: Partial<EmbedPlusFieldData>[] | null;
219
- timestamp?: string | number | Date | null;
220
- footer?: EmbedPlusFooterData;
221
- author?: EmbedPlusAuthorData;
222
- }
223
- type AnyEmbed = APIEmbed | Embed | EmbedBuilder | EmbedData;
224
- interface MessageWithEmbeds {
225
- embeds: Array<Embed>;
226
- }
227
- interface InteractionWithEmbeds {
228
- message: MessageWithEmbeds;
229
- }
230
- interface EmbedPlusOptions extends EmbedPlusData {
231
- extends?: Omit<EmbedPlusData, keyof EmbedPlusOptions> | AnyEmbed;
232
- mergeFields?: boolean;
233
- }
234
- declare class EmbedPlusBuilder extends EmbedBuilder {
235
- fields: EmbedPlusFields;
236
- constructor(data: EmbedPlusOptions);
237
- update(data: EmbedPlusData): this;
238
- has(property: keyof Omit<EmbedPlusData, keyof EmbedPlusOptions>): boolean;
239
- toArray(): EmbedPlusBuilder[];
240
- toString(space?: number): string;
241
- setBorderColor(color: EmbedPlusColorData | null): this;
242
- setAsset(asset: "thumbnail" | "image", source: EmbedPlusAssetData): this;
243
- static fromInteraction(interaction: InteractionWithEmbeds, index?: number, data?: EmbedPlusData): EmbedPlusBuilder;
244
- static fromMessage(message: MessageWithEmbeds, index?: number, data?: EmbedPlusData): EmbedPlusBuilder;
245
- }
246
- type EmbedPlusProperty<P extends keyof EmbedPlusData> = EmbedPlusData[P];
247
- interface CreateEmbedOptions<B extends boolean> extends EmbedPlusOptions {
248
- array?: B;
249
- interaction?: InteractionWithEmbeds;
250
- }
251
- type CreateEmbedReturn<B> = undefined extends B ? EmbedPlusBuilder : false extends B ? EmbedPlusBuilder : EmbedPlusBuilder[];
252
- declare function createEmbed<B extends boolean>(options: CreateEmbedOptions<B>): CreateEmbedReturn<B>;
253
-
254
- export { type AnyEmbed, CustomItents, CustomPartials, type EmbedPlusAssetData, EmbedPlusBuilder, type EmbedPlusData, type EmbedPlusFooterData, type EmbedPlusProperty, chars, createEmbed, createEmbedAsset, createEmbedAuthor, createEmbedFooter, createLinkButton, createModalFields, createModalInput, createRow, extractMentionId, findChannel, findCommand, findEmoji, findMember, findMessage, findRole, getChannelUrlInfo, getMessageUrlInfo, modalFieldsToRecord, setMobileStatus };
270
+ export { type AnyEmbedData, CustomItents, CustomPartials, type EmbedPlusAssetData, EmbedPlusBuilder, type EmbedPlusData, type EmbedPlusFooterData, type EmbedPlusProperty, chars, createEmbed, createEmbedAsset, createEmbedAuthor, createEmbedFooter, createLinkButton, createModalFields, createModalInput, createRow, extractMentionId, findChannel, findCommand, findEmoji, findMember, findMessage, findRole, getChannelUrlInfo, getMessageUrlInfo, modalFieldsToRecord, setMobileStatus };