@magicyan/discord 1.0.22 → 1.0.24

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, TextInputBuilder, ButtonBuilder, ActionRow, MessageActionRowComponent, TextInputComponentData, LinkButtonComponentData, ButtonComponent, StringSelectMenuComponent, UserSelectMenuComponent, ChannelSelectMenuComponent, RoleSelectMenuComponent, MentionableSelectMenuComponent, EmbedAuthorData, EmbedFooterData, EmbedAssetData, EmbedBuilder, User, ImageURLOptions, Attachment, AttachmentBuilder, EmbedData, APIEmbed, Embed, ColorResolvable, GuildEmoji, GuildBasedChannel, Role, GuildMember, GuildTextBasedChannel, Message } from 'discord.js';
2
+ import { GatewayIntentBits, Partials, ChannelType, Guild, CommandInteractionOption, Client, ApplicationCommand, AnyComponentBuilder, ActionRowBuilder, ButtonBuilder, ActionRow, MessageActionRowComponent, LinkButtonComponentData, ButtonComponent, StringSelectMenuComponent, UserSelectMenuComponent, ChannelSelectMenuComponent, RoleSelectMenuComponent, MentionableSelectMenuComponent, TextInputBuilder, TextInputComponentData, GuildEmoji, GuildBasedChannel, Role, User, GuildMember, GuildTextBasedChannel, Message, Attachment, AttachmentBuilder, EmbedAssetData, EmbedAuthorData, ImageURLOptions, EmbedBuilder, EmbedData, APIEmbed, Embed, ColorResolvable, EmbedFooterData } from 'discord.js';
3
3
  export * from '@magicyan/core';
4
4
 
5
5
  declare const chars: {
@@ -16,25 +16,33 @@ declare const CustomPartials: {
16
16
  All: Partials[];
17
17
  };
18
18
 
19
- type FindChannelFilter<T extends ChannelType> = (channel: GetChannelType<T>) => boolean;
20
- type GetChannelType<Type extends ChannelType> = Extract<NonNullable<CommandInteractionOption<"cached">["channel"]>, {
19
+ declare function setMobileStatus(): void;
20
+
21
+ type GuildChannelType = Exclude<ChannelType, ChannelType.DM>;
22
+ type FindChannelFilter<T extends GuildChannelType> = (channel: GetChannelType<T>) => boolean;
23
+ type GetChannelType<Type extends GuildChannelType> = Extract<NonNullable<CommandInteractionOption<"cached">["channel"]>, {
21
24
  type: Type extends ChannelType.PublicThread | ChannelType.AnnouncementThread ? ChannelType.PublicThread | ChannelType.AnnouncementThread : Type;
22
25
  }>;
23
- declare function findChannel<Type extends Exclude<ChannelType, ChannelType.DM> = ChannelType.GuildText>(guild: Guild, type?: Type): {
26
+ declare function findChannel<Type extends GuildChannelType = ChannelType.GuildText>(guild: Guild, type?: Type): {
24
27
  byName(name: string, filter?: FindChannelFilter<Type>): GetChannelType<Type> | undefined;
25
28
  byId(id: string): GetChannelType<Type> | undefined;
26
- byFilter(filter: FindChannelFilter<Type>): discord_js.GuildBasedChannel | undefined;
29
+ byFilter(filter: FindChannelFilter<Type>): GetChannelType<Type> | undefined;
27
30
  inCategoryId(id: string): {
28
31
  byName(name: string, filter?: FindChannelFilter<Type>): GetChannelType<Type> | undefined;
29
32
  byId(id: string, filter?: FindChannelFilter<Type>): GetChannelType<Type> | undefined;
30
- byFilter(filter: FindChannelFilter<Type>): discord_js.GuildBasedChannel | undefined;
33
+ byFilter(filter: FindChannelFilter<Type>): GetChannelType<Type> | undefined;
31
34
  };
32
35
  inCategoryName(name: string): {
33
36
  byName(name: string, filter?: FindChannelFilter<Type>): GetChannelType<Type> | undefined;
34
37
  byId(id: string, filter?: FindChannelFilter<Type>): GetChannelType<Type> | undefined;
35
- byFilter(filter: FindChannelFilter<Type>): discord_js.GuildBasedChannel | undefined;
38
+ byFilter(filter: FindChannelFilter<Type>): GetChannelType<Type> | undefined;
36
39
  };
37
40
  };
41
+ interface ChannelUrlInfo {
42
+ channelId?: string;
43
+ guildId?: string;
44
+ }
45
+ declare function getChannelUrlInfo(url: string): ChannelUrlInfo;
38
46
 
39
47
  type FindCommandFilter = (command: ApplicationCommand) => boolean;
40
48
  declare function findCommand(guildOrClient: Guild | Client<true>): {
@@ -50,9 +58,6 @@ declare function findCommand(guildOrClient: Guild | Client<true>): {
50
58
  };
51
59
 
52
60
  declare function createRow<Component extends AnyComponentBuilder>(...components: Component[]): ActionRowBuilder<Component>;
53
- interface CreateModalInputData extends Omit<TextInputComponentData, "type"> {
54
- }
55
- declare function createModalInput(data: CreateModalInputData): ActionRowBuilder<TextInputBuilder>;
56
61
  interface CreateLinkButtonData extends Omit<LinkButtonComponentData, "style" | "type"> {
57
62
  }
58
63
  declare function createLinkButton(data: CreateLinkButtonData): ButtonBuilder;
@@ -80,71 +85,11 @@ interface MessageComponentsManager {
80
85
  }
81
86
  declare function createComponentsManager(components: ActionRow<MessageActionRowComponent>[]): MessageComponentsManager;
82
87
 
83
- interface CreateEmbedAuthorOptions {
84
- user: User;
85
- property?: "username" | "displayName" | "id" | "globalName";
86
- imageSize?: ImageURLOptions["size"];
87
- iconURL?: string;
88
- url?: string;
89
- prefix?: string;
90
- suffix?: string;
91
- }
92
- declare function createEmbedAuthor(options: CreateEmbedAuthorOptions): EmbedAuthorData;
93
- interface CreateEmbedFooterOptions {
94
- text?: string | null;
95
- iconURL?: string | null;
96
- }
97
- declare function createEmbedFooter(options: CreateEmbedFooterOptions): EmbedFooterData | undefined;
98
- type EmbedAssetOptions = Omit<EmbedAssetData, "url">;
99
- type AssetSource = string | Attachment | AttachmentBuilder | EmbedAssetData | undefined | null;
100
- declare function createEmbedAsset(source: AssetSource, options?: EmbedAssetOptions): EmbedAssetData | undefined;
101
- type EmbedBuilderPlusAssetData = AssetSource;
102
- type EmbedBuilderPlusColorData = string & {} | ColorResolvable | null;
103
- type EmbedBuilderPlusFieldData = {
104
- name: string;
105
- value: string;
106
- inline?: boolean;
107
- };
108
- type EmbedBuilderPlusFooterData = {
109
- text?: string | null;
110
- iconURL?: string | null;
111
- };
112
- type EmbedBuilderPlusAuthorData = {
113
- name: string;
114
- url?: string;
115
- iconURL?: string;
116
- };
117
- interface EmbedBuilderPlusOptions {
118
- extend?: Omit<EmbedBuilderPlusData, keyof EmbedBuilderPlusOptions> | EmbedData | APIEmbed | Embed;
119
- mergeFields?: boolean;
120
- }
121
- interface EmbedBuilderPlusData extends EmbedBuilderPlusOptions {
122
- title?: string | null;
123
- color?: EmbedBuilderPlusColorData | null;
124
- description?: string | null;
125
- url?: string | null;
126
- thumbnail?: EmbedBuilderPlusAssetData | null;
127
- image?: EmbedBuilderPlusAssetData | null;
128
- fields?: Partial<EmbedBuilderPlusFieldData>[] | null;
129
- timestamp?: string | number | Date | null;
130
- footer?: EmbedBuilderPlusFooterData;
131
- author?: EmbedBuilderPlusAuthorData;
132
- }
133
- declare class EmbedBuilderPlus extends EmbedBuilder {
134
- constructor(data: EmbedBuilderPlusData);
135
- has(property: keyof Omit<EmbedBuilderPlusData, keyof EmbedBuilderPlusOptions>): boolean;
136
- toArray(): this[];
137
- toString(space?: number): string;
138
- updateField(index: number, field: Partial<EmbedBuilderPlusFieldData>): this;
139
- deleteField(index: number): this;
140
- popField(): discord_js.APIEmbedField | undefined;
141
- setAsset(asset: "thumbnail" | "image", source: EmbedBuilderPlusAssetData): this;
142
- get fieldsLength(): number;
143
- get fields(): discord_js.APIEmbedField[];
144
- createFromThis(data?: EmbedBuilderPlusData): EmbedBuilderPlus;
145
- }
146
- type EmbedPropery<T extends keyof EmbedBuilderPlusData> = EmbedBuilderPlusData[T];
147
- declare function createEmbed(data: EmbedBuilderPlusData): EmbedBuilderPlus;
88
+ type TextInputData = Omit<TextInputComponentData, "type">;
89
+ type CreateModalInputData = TextInputData;
90
+ declare function createModalInput(data: CreateModalInputData): ActionRowBuilder<TextInputBuilder>;
91
+ type ModalFieldsData = Record<string, Omit<TextInputData, "customId">>;
92
+ declare function createModalFields(data: ModalFieldsData): ActionRowBuilder<TextInputBuilder>[];
148
93
 
149
94
  type FindEmojiFilter = (emoji: GuildEmoji) => boolean;
150
95
  declare function findEmoji(guildOrClient: Guild | Client): {
@@ -175,8 +120,24 @@ declare function findMessage(channel: GuildTextBasedChannel): {
175
120
  };
176
121
  byFilter(filter: FindMessageFilter): Message<true> | undefined;
177
122
  };
123
+ interface MessageUrlInfo {
124
+ messageId?: string;
125
+ channelId?: string;
126
+ guildId?: string;
127
+ }
128
+ declare function getMessageUrlInfo(url: string): MessageUrlInfo;
178
129
 
179
130
  type FindRoleFilter = (role: Role) => boolean;
131
+ /**
132
+ *
133
+ * @param guild Discord guild
134
+ *
135
+ * ```ts
136
+ * const memberRole = findRole(guild).byName("Member");
137
+ * const adminRole = findRole(guild).byHexColor("#ff5454");
138
+ * const leaderRole = findRole(guild).byId("537818031728885771");
139
+ * ```
140
+ */
180
141
  declare function findRole(guild: Guild): {
181
142
  byColor(color: number, and?: FindRoleFilter): Role | undefined;
182
143
  byHexColor(hexColor: string, and?: FindRoleFilter): Role | undefined;
@@ -202,4 +163,82 @@ declare function findRole(guild: Guild): {
202
163
  */
203
164
  declare function extractMentionId(mention: string): string | null;
204
165
 
205
- export { CustomItents, CustomPartials, EmbedBuilderPlus, type EmbedPropery, chars, createComponentsManager, createEmbed, createEmbedAsset, createEmbedAuthor, createEmbedFooter, createLinkButton, createModalInput, createRow, extractMentionId, findChannel, findCommand, findEmoji, findMember, findMessage, findRole, formatedMention };
166
+ type EmbedAssetOptions = Omit<EmbedAssetData, "url">;
167
+ type AssetSource = string | Attachment | AttachmentBuilder | EmbedAssetData | undefined | null;
168
+ declare function createEmbedAsset(source: AssetSource, options?: EmbedAssetOptions): EmbedAssetData | undefined;
169
+
170
+ interface UserAuthorOption {
171
+ user: User;
172
+ property?: "username" | "displayName" | "id" | "globalName";
173
+ }
174
+ interface MemberAuthorOption {
175
+ member: GuildMember;
176
+ property?: "username" | "displayName" | "id" | "globalName" | "nickname";
177
+ }
178
+ type AuthorOption = UserAuthorOption | MemberAuthorOption;
179
+ type CreateEmbedAuthorOptions = AuthorOption & ImageURLOptions & {
180
+ iconURL?: string;
181
+ url?: string;
182
+ prefix?: string;
183
+ suffix?: string;
184
+ };
185
+ declare function createEmbedAuthor(options: CreateEmbedAuthorOptions): EmbedAuthorData;
186
+
187
+ type EmbedPlusAssetData = AssetSource;
188
+ type EmbedPlusColorData = string & {} | ColorResolvable | null;
189
+ type EmbedPlusFieldData = {
190
+ name: string;
191
+ value: string;
192
+ inline?: boolean;
193
+ };
194
+ type EmbedPlusFooterData = {
195
+ text?: string | null;
196
+ iconURL?: string | null;
197
+ };
198
+ type EmbedPlusAuthorData = {
199
+ name: string;
200
+ url?: string;
201
+ iconURL?: string;
202
+ };
203
+ interface EmbedPlusData {
204
+ title?: string | null;
205
+ color?: EmbedPlusColorData | null;
206
+ description?: string | null;
207
+ url?: string | null;
208
+ thumbnail?: EmbedPlusAssetData | null;
209
+ image?: EmbedPlusAssetData | null;
210
+ fields?: Partial<EmbedPlusFieldData>[] | null;
211
+ timestamp?: string | number | Date | null;
212
+ footer?: EmbedPlusFooterData;
213
+ author?: EmbedPlusAuthorData;
214
+ }
215
+ interface EmbedPlusOptions extends EmbedPlusData {
216
+ extends?: Omit<EmbedPlusData, keyof EmbedPlusOptions> | EmbedData | APIEmbed | Embed;
217
+ mergeFields?: boolean;
218
+ }
219
+ declare class EmbedPlusBuilder extends EmbedBuilder {
220
+ constructor(data: EmbedPlusOptions);
221
+ has(property: keyof Omit<EmbedPlusData, keyof EmbedPlusOptions>): boolean;
222
+ toArray(): this[];
223
+ toString(space?: number): string;
224
+ updateField(index: number, field: Partial<EmbedPlusFieldData>): this;
225
+ deleteField(index: number): this;
226
+ popField(): discord_js.APIEmbedField | undefined;
227
+ setAsset(asset: "thumbnail" | "image", source: EmbedPlusAssetData): this;
228
+ get fieldsLength(): number;
229
+ get fields(): discord_js.APIEmbedField[];
230
+ }
231
+ type EmbedPlusProperty<P extends keyof EmbedPlusData> = EmbedPlusData[P];
232
+ interface CreateEmbedOptions<B extends boolean> extends EmbedPlusOptions {
233
+ array?: B;
234
+ }
235
+ type CreateEmbedReturn<B> = undefined extends B ? EmbedPlusBuilder : false extends B ? EmbedPlusBuilder : EmbedPlusBuilder[];
236
+ declare function createEmbed<B extends boolean>(options: CreateEmbedOptions<B>): CreateEmbedReturn<B>;
237
+
238
+ interface CreateEmbedFooterOptions {
239
+ text?: string | null;
240
+ iconURL?: string | null;
241
+ }
242
+ declare function createEmbedFooter(options: CreateEmbedFooterOptions): EmbedFooterData | undefined;
243
+
244
+ export { type AssetSource, CustomItents, CustomPartials, EmbedPlusBuilder, type EmbedPlusProperty, chars, createComponentsManager, createEmbed, createEmbedAsset, createEmbedAuthor, createEmbedFooter, createLinkButton, createModalFields, createModalInput, createRow, extractMentionId, findChannel, findCommand, findEmoji, findMember, findMessage, findRole, formatedMention, getChannelUrlInfo, getMessageUrlInfo, 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, TextInputBuilder, ButtonBuilder, ActionRow, MessageActionRowComponent, TextInputComponentData, LinkButtonComponentData, ButtonComponent, StringSelectMenuComponent, UserSelectMenuComponent, ChannelSelectMenuComponent, RoleSelectMenuComponent, MentionableSelectMenuComponent, EmbedAuthorData, EmbedFooterData, EmbedAssetData, EmbedBuilder, User, ImageURLOptions, Attachment, AttachmentBuilder, EmbedData, APIEmbed, Embed, ColorResolvable, GuildEmoji, GuildBasedChannel, Role, GuildMember, GuildTextBasedChannel, Message } from 'discord.js';
2
+ import { GatewayIntentBits, Partials, ChannelType, Guild, CommandInteractionOption, Client, ApplicationCommand, AnyComponentBuilder, ActionRowBuilder, ButtonBuilder, ActionRow, MessageActionRowComponent, LinkButtonComponentData, ButtonComponent, StringSelectMenuComponent, UserSelectMenuComponent, ChannelSelectMenuComponent, RoleSelectMenuComponent, MentionableSelectMenuComponent, TextInputBuilder, TextInputComponentData, GuildEmoji, GuildBasedChannel, Role, User, GuildMember, GuildTextBasedChannel, Message, Attachment, AttachmentBuilder, EmbedAssetData, EmbedAuthorData, ImageURLOptions, EmbedBuilder, EmbedData, APIEmbed, Embed, ColorResolvable, EmbedFooterData } from 'discord.js';
3
3
  export * from '@magicyan/core';
4
4
 
5
5
  declare const chars: {
@@ -16,25 +16,33 @@ declare const CustomPartials: {
16
16
  All: Partials[];
17
17
  };
18
18
 
19
- type FindChannelFilter<T extends ChannelType> = (channel: GetChannelType<T>) => boolean;
20
- type GetChannelType<Type extends ChannelType> = Extract<NonNullable<CommandInteractionOption<"cached">["channel"]>, {
19
+ declare function setMobileStatus(): void;
20
+
21
+ type GuildChannelType = Exclude<ChannelType, ChannelType.DM>;
22
+ type FindChannelFilter<T extends GuildChannelType> = (channel: GetChannelType<T>) => boolean;
23
+ type GetChannelType<Type extends GuildChannelType> = Extract<NonNullable<CommandInteractionOption<"cached">["channel"]>, {
21
24
  type: Type extends ChannelType.PublicThread | ChannelType.AnnouncementThread ? ChannelType.PublicThread | ChannelType.AnnouncementThread : Type;
22
25
  }>;
23
- declare function findChannel<Type extends Exclude<ChannelType, ChannelType.DM> = ChannelType.GuildText>(guild: Guild, type?: Type): {
26
+ declare function findChannel<Type extends GuildChannelType = ChannelType.GuildText>(guild: Guild, type?: Type): {
24
27
  byName(name: string, filter?: FindChannelFilter<Type>): GetChannelType<Type> | undefined;
25
28
  byId(id: string): GetChannelType<Type> | undefined;
26
- byFilter(filter: FindChannelFilter<Type>): discord_js.GuildBasedChannel | undefined;
29
+ byFilter(filter: FindChannelFilter<Type>): GetChannelType<Type> | undefined;
27
30
  inCategoryId(id: string): {
28
31
  byName(name: string, filter?: FindChannelFilter<Type>): GetChannelType<Type> | undefined;
29
32
  byId(id: string, filter?: FindChannelFilter<Type>): GetChannelType<Type> | undefined;
30
- byFilter(filter: FindChannelFilter<Type>): discord_js.GuildBasedChannel | undefined;
33
+ byFilter(filter: FindChannelFilter<Type>): GetChannelType<Type> | undefined;
31
34
  };
32
35
  inCategoryName(name: string): {
33
36
  byName(name: string, filter?: FindChannelFilter<Type>): GetChannelType<Type> | undefined;
34
37
  byId(id: string, filter?: FindChannelFilter<Type>): GetChannelType<Type> | undefined;
35
- byFilter(filter: FindChannelFilter<Type>): discord_js.GuildBasedChannel | undefined;
38
+ byFilter(filter: FindChannelFilter<Type>): GetChannelType<Type> | undefined;
36
39
  };
37
40
  };
41
+ interface ChannelUrlInfo {
42
+ channelId?: string;
43
+ guildId?: string;
44
+ }
45
+ declare function getChannelUrlInfo(url: string): ChannelUrlInfo;
38
46
 
39
47
  type FindCommandFilter = (command: ApplicationCommand) => boolean;
40
48
  declare function findCommand(guildOrClient: Guild | Client<true>): {
@@ -50,9 +58,6 @@ declare function findCommand(guildOrClient: Guild | Client<true>): {
50
58
  };
51
59
 
52
60
  declare function createRow<Component extends AnyComponentBuilder>(...components: Component[]): ActionRowBuilder<Component>;
53
- interface CreateModalInputData extends Omit<TextInputComponentData, "type"> {
54
- }
55
- declare function createModalInput(data: CreateModalInputData): ActionRowBuilder<TextInputBuilder>;
56
61
  interface CreateLinkButtonData extends Omit<LinkButtonComponentData, "style" | "type"> {
57
62
  }
58
63
  declare function createLinkButton(data: CreateLinkButtonData): ButtonBuilder;
@@ -80,71 +85,11 @@ interface MessageComponentsManager {
80
85
  }
81
86
  declare function createComponentsManager(components: ActionRow<MessageActionRowComponent>[]): MessageComponentsManager;
82
87
 
83
- interface CreateEmbedAuthorOptions {
84
- user: User;
85
- property?: "username" | "displayName" | "id" | "globalName";
86
- imageSize?: ImageURLOptions["size"];
87
- iconURL?: string;
88
- url?: string;
89
- prefix?: string;
90
- suffix?: string;
91
- }
92
- declare function createEmbedAuthor(options: CreateEmbedAuthorOptions): EmbedAuthorData;
93
- interface CreateEmbedFooterOptions {
94
- text?: string | null;
95
- iconURL?: string | null;
96
- }
97
- declare function createEmbedFooter(options: CreateEmbedFooterOptions): EmbedFooterData | undefined;
98
- type EmbedAssetOptions = Omit<EmbedAssetData, "url">;
99
- type AssetSource = string | Attachment | AttachmentBuilder | EmbedAssetData | undefined | null;
100
- declare function createEmbedAsset(source: AssetSource, options?: EmbedAssetOptions): EmbedAssetData | undefined;
101
- type EmbedBuilderPlusAssetData = AssetSource;
102
- type EmbedBuilderPlusColorData = string & {} | ColorResolvable | null;
103
- type EmbedBuilderPlusFieldData = {
104
- name: string;
105
- value: string;
106
- inline?: boolean;
107
- };
108
- type EmbedBuilderPlusFooterData = {
109
- text?: string | null;
110
- iconURL?: string | null;
111
- };
112
- type EmbedBuilderPlusAuthorData = {
113
- name: string;
114
- url?: string;
115
- iconURL?: string;
116
- };
117
- interface EmbedBuilderPlusOptions {
118
- extend?: Omit<EmbedBuilderPlusData, keyof EmbedBuilderPlusOptions> | EmbedData | APIEmbed | Embed;
119
- mergeFields?: boolean;
120
- }
121
- interface EmbedBuilderPlusData extends EmbedBuilderPlusOptions {
122
- title?: string | null;
123
- color?: EmbedBuilderPlusColorData | null;
124
- description?: string | null;
125
- url?: string | null;
126
- thumbnail?: EmbedBuilderPlusAssetData | null;
127
- image?: EmbedBuilderPlusAssetData | null;
128
- fields?: Partial<EmbedBuilderPlusFieldData>[] | null;
129
- timestamp?: string | number | Date | null;
130
- footer?: EmbedBuilderPlusFooterData;
131
- author?: EmbedBuilderPlusAuthorData;
132
- }
133
- declare class EmbedBuilderPlus extends EmbedBuilder {
134
- constructor(data: EmbedBuilderPlusData);
135
- has(property: keyof Omit<EmbedBuilderPlusData, keyof EmbedBuilderPlusOptions>): boolean;
136
- toArray(): this[];
137
- toString(space?: number): string;
138
- updateField(index: number, field: Partial<EmbedBuilderPlusFieldData>): this;
139
- deleteField(index: number): this;
140
- popField(): discord_js.APIEmbedField | undefined;
141
- setAsset(asset: "thumbnail" | "image", source: EmbedBuilderPlusAssetData): this;
142
- get fieldsLength(): number;
143
- get fields(): discord_js.APIEmbedField[];
144
- createFromThis(data?: EmbedBuilderPlusData): EmbedBuilderPlus;
145
- }
146
- type EmbedPropery<T extends keyof EmbedBuilderPlusData> = EmbedBuilderPlusData[T];
147
- declare function createEmbed(data: EmbedBuilderPlusData): EmbedBuilderPlus;
88
+ type TextInputData = Omit<TextInputComponentData, "type">;
89
+ type CreateModalInputData = TextInputData;
90
+ declare function createModalInput(data: CreateModalInputData): ActionRowBuilder<TextInputBuilder>;
91
+ type ModalFieldsData = Record<string, Omit<TextInputData, "customId">>;
92
+ declare function createModalFields(data: ModalFieldsData): ActionRowBuilder<TextInputBuilder>[];
148
93
 
149
94
  type FindEmojiFilter = (emoji: GuildEmoji) => boolean;
150
95
  declare function findEmoji(guildOrClient: Guild | Client): {
@@ -175,8 +120,24 @@ declare function findMessage(channel: GuildTextBasedChannel): {
175
120
  };
176
121
  byFilter(filter: FindMessageFilter): Message<true> | undefined;
177
122
  };
123
+ interface MessageUrlInfo {
124
+ messageId?: string;
125
+ channelId?: string;
126
+ guildId?: string;
127
+ }
128
+ declare function getMessageUrlInfo(url: string): MessageUrlInfo;
178
129
 
179
130
  type FindRoleFilter = (role: Role) => boolean;
131
+ /**
132
+ *
133
+ * @param guild Discord guild
134
+ *
135
+ * ```ts
136
+ * const memberRole = findRole(guild).byName("Member");
137
+ * const adminRole = findRole(guild).byHexColor("#ff5454");
138
+ * const leaderRole = findRole(guild).byId("537818031728885771");
139
+ * ```
140
+ */
180
141
  declare function findRole(guild: Guild): {
181
142
  byColor(color: number, and?: FindRoleFilter): Role | undefined;
182
143
  byHexColor(hexColor: string, and?: FindRoleFilter): Role | undefined;
@@ -202,4 +163,82 @@ declare function findRole(guild: Guild): {
202
163
  */
203
164
  declare function extractMentionId(mention: string): string | null;
204
165
 
205
- export { CustomItents, CustomPartials, EmbedBuilderPlus, type EmbedPropery, chars, createComponentsManager, createEmbed, createEmbedAsset, createEmbedAuthor, createEmbedFooter, createLinkButton, createModalInput, createRow, extractMentionId, findChannel, findCommand, findEmoji, findMember, findMessage, findRole, formatedMention };
166
+ type EmbedAssetOptions = Omit<EmbedAssetData, "url">;
167
+ type AssetSource = string | Attachment | AttachmentBuilder | EmbedAssetData | undefined | null;
168
+ declare function createEmbedAsset(source: AssetSource, options?: EmbedAssetOptions): EmbedAssetData | undefined;
169
+
170
+ interface UserAuthorOption {
171
+ user: User;
172
+ property?: "username" | "displayName" | "id" | "globalName";
173
+ }
174
+ interface MemberAuthorOption {
175
+ member: GuildMember;
176
+ property?: "username" | "displayName" | "id" | "globalName" | "nickname";
177
+ }
178
+ type AuthorOption = UserAuthorOption | MemberAuthorOption;
179
+ type CreateEmbedAuthorOptions = AuthorOption & ImageURLOptions & {
180
+ iconURL?: string;
181
+ url?: string;
182
+ prefix?: string;
183
+ suffix?: string;
184
+ };
185
+ declare function createEmbedAuthor(options: CreateEmbedAuthorOptions): EmbedAuthorData;
186
+
187
+ type EmbedPlusAssetData = AssetSource;
188
+ type EmbedPlusColorData = string & {} | ColorResolvable | null;
189
+ type EmbedPlusFieldData = {
190
+ name: string;
191
+ value: string;
192
+ inline?: boolean;
193
+ };
194
+ type EmbedPlusFooterData = {
195
+ text?: string | null;
196
+ iconURL?: string | null;
197
+ };
198
+ type EmbedPlusAuthorData = {
199
+ name: string;
200
+ url?: string;
201
+ iconURL?: string;
202
+ };
203
+ interface EmbedPlusData {
204
+ title?: string | null;
205
+ color?: EmbedPlusColorData | null;
206
+ description?: string | null;
207
+ url?: string | null;
208
+ thumbnail?: EmbedPlusAssetData | null;
209
+ image?: EmbedPlusAssetData | null;
210
+ fields?: Partial<EmbedPlusFieldData>[] | null;
211
+ timestamp?: string | number | Date | null;
212
+ footer?: EmbedPlusFooterData;
213
+ author?: EmbedPlusAuthorData;
214
+ }
215
+ interface EmbedPlusOptions extends EmbedPlusData {
216
+ extends?: Omit<EmbedPlusData, keyof EmbedPlusOptions> | EmbedData | APIEmbed | Embed;
217
+ mergeFields?: boolean;
218
+ }
219
+ declare class EmbedPlusBuilder extends EmbedBuilder {
220
+ constructor(data: EmbedPlusOptions);
221
+ has(property: keyof Omit<EmbedPlusData, keyof EmbedPlusOptions>): boolean;
222
+ toArray(): this[];
223
+ toString(space?: number): string;
224
+ updateField(index: number, field: Partial<EmbedPlusFieldData>): this;
225
+ deleteField(index: number): this;
226
+ popField(): discord_js.APIEmbedField | undefined;
227
+ setAsset(asset: "thumbnail" | "image", source: EmbedPlusAssetData): this;
228
+ get fieldsLength(): number;
229
+ get fields(): discord_js.APIEmbedField[];
230
+ }
231
+ type EmbedPlusProperty<P extends keyof EmbedPlusData> = EmbedPlusData[P];
232
+ interface CreateEmbedOptions<B extends boolean> extends EmbedPlusOptions {
233
+ array?: B;
234
+ }
235
+ type CreateEmbedReturn<B> = undefined extends B ? EmbedPlusBuilder : false extends B ? EmbedPlusBuilder : EmbedPlusBuilder[];
236
+ declare function createEmbed<B extends boolean>(options: CreateEmbedOptions<B>): CreateEmbedReturn<B>;
237
+
238
+ interface CreateEmbedFooterOptions {
239
+ text?: string | null;
240
+ iconURL?: string | null;
241
+ }
242
+ declare function createEmbedFooter(options: CreateEmbedFooterOptions): EmbedFooterData | undefined;
243
+
244
+ export { type AssetSource, CustomItents, CustomPartials, EmbedPlusBuilder, type EmbedPlusProperty, chars, createComponentsManager, createEmbed, createEmbedAsset, createEmbedAuthor, createEmbedFooter, createLinkButton, createModalFields, createModalInput, createRow, extractMentionId, findChannel, findCommand, findEmoji, findMember, findMessage, findRole, formatedMention, getChannelUrlInfo, getMessageUrlInfo, setMobileStatus };