@magicyan/discord 1.0.34 → 1.0.35

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.
@@ -16,28 +16,16 @@ function findCommand(guildOrClient) {
16
16
  }
17
17
  };
18
18
  }
19
- function createCommandOptions(options) {
20
- return Object.entries(options).map(
21
- ([name, data]) => Object.assign(data, { name })
22
- );
23
- }
24
- function createSubCommands(subcommands) {
25
- return Object.entries(subcommands).map(([name, data]) => {
26
- if (data.options)
27
- Object.assign(data, {
28
- options: createCommandOptions(data.options)
29
- });
30
- return Object.assign(data, { name, type: discord_js.ApplicationCommandOptionType.Subcommand });
31
- });
32
- }
33
- function createSubCommandsGroups(groups) {
34
- return Object.entries(groups).map(([name, data]) => {
35
- const options = createSubCommands(data.subcommands);
36
- return Object.assign(data, { name, type: discord_js.ApplicationCommandOptionType.SubcommandGroup, options });
37
- });
19
+ function commandMention(command, a, b) {
20
+ const args = [command.name, command.id];
21
+ if (a && b) {
22
+ args.splice(1, 0, a, b);
23
+ }
24
+ if (a && !b) {
25
+ args.splice(1, 0, a);
26
+ }
27
+ return discord_js.chatInputApplicationCommandMention(...args);
38
28
  }
39
29
 
40
- exports.createCommandOptions = createCommandOptions;
41
- exports.createSubCommands = createSubCommands;
42
- exports.createSubCommandsGroups = createSubCommandsGroups;
30
+ exports.commandMention = commandMention;
43
31
  exports.findCommand = findCommand;
@@ -1,4 +1,4 @@
1
- import { Client, ApplicationCommandOptionType } from 'discord.js';
1
+ import { Client, chatInputApplicationCommandMention } from 'discord.js';
2
2
 
3
3
  function findCommand(guildOrClient) {
4
4
  const commands = guildOrClient instanceof Client ? guildOrClient.application.commands.cache : guildOrClient.commands.cache;
@@ -14,25 +14,15 @@ function findCommand(guildOrClient) {
14
14
  }
15
15
  };
16
16
  }
17
- function createCommandOptions(options) {
18
- return Object.entries(options).map(
19
- ([name, data]) => Object.assign(data, { name })
20
- );
21
- }
22
- function createSubCommands(subcommands) {
23
- return Object.entries(subcommands).map(([name, data]) => {
24
- if (data.options)
25
- Object.assign(data, {
26
- options: createCommandOptions(data.options)
27
- });
28
- return Object.assign(data, { name, type: ApplicationCommandOptionType.Subcommand });
29
- });
30
- }
31
- function createSubCommandsGroups(groups) {
32
- return Object.entries(groups).map(([name, data]) => {
33
- const options = createSubCommands(data.subcommands);
34
- return Object.assign(data, { name, type: ApplicationCommandOptionType.SubcommandGroup, options });
35
- });
17
+ function commandMention(command, a, b) {
18
+ const args = [command.name, command.id];
19
+ if (a && b) {
20
+ args.splice(1, 0, a, b);
21
+ }
22
+ if (a && !b) {
23
+ args.splice(1, 0, a);
24
+ }
25
+ return chatInputApplicationCommandMention(...args);
36
26
  }
37
27
 
38
- export { createCommandOptions, createSubCommands, createSubCommandsGroups, findCommand };
28
+ export { commandMention, findCommand };
package/dist/index.cjs CHANGED
@@ -35,9 +35,7 @@ exports.createLinkButton = components.createLinkButton;
35
35
  exports.createRow = components.createRow;
36
36
  exports.findChannel = channels.findChannel;
37
37
  exports.getChannelUrlInfo = channels.getChannelUrlInfo;
38
- exports.createCommandOptions = commands.createCommandOptions;
39
- exports.createSubCommands = commands.createSubCommands;
40
- exports.createSubCommandsGroups = commands.createSubCommandsGroups;
38
+ exports.commandMention = commands.commandMention;
41
39
  exports.findCommand = commands.findCommand;
42
40
  exports.createModalFields = modals.createModalFields;
43
41
  exports.createModalInput = modals.createModalInput;
package/dist/index.d.cts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as discord_js from 'discord.js';
2
- import { GatewayIntentBits, Partials, Attachment, AttachmentBuilder, EmbedAssetData, Guild, GuildMember, User, ClientUser, ImageURLOptions, EmbedFooterData, ColorResolvable, APIEmbed, Embed, EmbedData, EmbedBuilder, AttachmentData, AnyComponentBuilder, ActionRowBuilder, ButtonBuilder, LinkButtonComponentData, ChannelType, CommandInteractionOption, Client, ApplicationCommand, ApplicationCommandOptionData, ApplicationCommandSubCommandData, ApplicationCommandSubGroupData, TextInputBuilder, ModalSubmitFields, Collection, TextInputComponent, TextInputStyle, TextInputComponentData, GuildEmoji, GuildTextBasedChannel, Message, Role } from 'discord.js';
2
+ import { GatewayIntentBits, Partials, Attachment, AttachmentBuilder, EmbedAssetData, Guild, GuildMember, User, ClientUser, ImageURLOptions, EmbedFooterData, ColorResolvable, APIEmbed, Embed, EmbedData, EmbedBuilder, AttachmentData, AnyComponentBuilder, ActionRowBuilder, ButtonBuilder, LinkButtonComponentData, ChannelType, CommandInteractionOption, Client, ApplicationCommand, TextInputBuilder, ModalSubmitFields, Collection, TextInputComponent, TextInputStyle, TextInputComponentData, GuildEmoji, GuildTextBasedChannel, Message, Role } from 'discord.js';
3
3
  export * from '@magicyan/core';
4
4
 
5
5
  declare const chars: {
@@ -205,35 +205,12 @@ declare function findCommand(guildOrClient: Guild | Client<true>): {
205
205
  guild: discord_js.GuildResolvable;
206
206
  }> | undefined;
207
207
  };
208
- type OmitCommandDataProps = "name" | "options" | "autocomplete" | "type";
209
- type CommandOption = Exclude<Omit<ApplicationCommandOptionData, "name">, ApplicationCommandSubGroupData | ApplicationCommandSubCommandData>;
210
- type CommandOptions = Record<string, CommandOption>;
211
- /**
212
- * Creates an array of command options, quickly define command options with a record where the key is the option name and the value is the definitions
213
- * @param groups
214
- * @returns
215
- */
216
- declare function createCommandOptions(options: CommandOptions): ApplicationCommandOptionData[];
217
- type SubCommand = Omit<ApplicationCommandSubCommandData, OmitCommandDataProps> & {
218
- options?: Record<string, CommandOption>;
219
- };
220
- type SubCommands = Record<string, SubCommand>;
221
- /**
222
- * Create an array of command options, quickly define subcommands with a record where the key is the subcommand name and the value is the definitions
223
- * @param groups
224
- * @returns
225
- */
226
- declare function createSubCommands(subcommands: SubCommands): ApplicationCommandSubCommandData[];
227
- type SubCommandGroup = Omit<ApplicationCommandSubGroupData, OmitCommandDataProps> & {
228
- subcommands: SubCommands;
229
- };
230
- type SubCommandGroups = Record<string, SubCommandGroup>;
231
- /**
232
- * Create an array of command options, quickly define groups of subcommands with a record where the key is the group name and the value is the definitions
233
- * @param groups
234
- * @returns
235
- */
236
- declare function createSubCommandsGroups(groups: SubCommandGroups): ApplicationCommandSubGroupData[];
208
+ interface CommandMentionData {
209
+ id: string;
210
+ name: string;
211
+ }
212
+ declare function commandMention(command: CommandMentionData, group?: string, subcommand?: string): string;
213
+ declare function commandMention(command: CommandMentionData, subcommand?: string): string;
237
214
 
238
215
  type TextInputData = Omit<TextInputComponentData, "type">;
239
216
  interface ModalFieldData extends Omit<TextInputData, "customId" | "style"> {
@@ -317,4 +294,4 @@ declare function findRole(guild: Guild): {
317
294
  */
318
295
  declare function extractMentionId(mention: string): string | null;
319
296
 
320
- export { type AnyEmbedData, CustomItents, CustomPartials, type EmbedPlusAssetData, type EmbedPlusAuthorData, EmbedPlusBuilder, type EmbedPlusColorData, type EmbedPlusData, type EmbedPlusFooterData, type EmbedPlusProperty, chars, createCommandOptions, createEmbed, createEmbedAsset, createEmbedAuthor, createEmbedFiles, createEmbedFooter, createLinkButton, createModalFields, createModalInput, createRow, createSubCommands, createSubCommandsGroups, extractMentionId, findChannel, findCommand, findEmoji, findMember, findMessage, findRole, getChannelUrlInfo, getMessageUrlInfo, modalFieldsToRecord, setMobileStatus };
297
+ export { type AnyEmbedData, CustomItents, CustomPartials, type EmbedPlusAssetData, type EmbedPlusAuthorData, EmbedPlusBuilder, type EmbedPlusColorData, type EmbedPlusData, type EmbedPlusFooterData, type EmbedPlusProperty, chars, commandMention, createEmbed, createEmbedAsset, createEmbedAuthor, createEmbedFiles, 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, Attachment, AttachmentBuilder, EmbedAssetData, Guild, GuildMember, User, ClientUser, ImageURLOptions, EmbedFooterData, ColorResolvable, APIEmbed, Embed, EmbedData, EmbedBuilder, AttachmentData, AnyComponentBuilder, ActionRowBuilder, ButtonBuilder, LinkButtonComponentData, ChannelType, CommandInteractionOption, Client, ApplicationCommand, ApplicationCommandOptionData, ApplicationCommandSubCommandData, ApplicationCommandSubGroupData, TextInputBuilder, ModalSubmitFields, Collection, TextInputComponent, TextInputStyle, TextInputComponentData, GuildEmoji, GuildTextBasedChannel, Message, Role } from 'discord.js';
2
+ import { GatewayIntentBits, Partials, Attachment, AttachmentBuilder, EmbedAssetData, Guild, GuildMember, User, ClientUser, ImageURLOptions, EmbedFooterData, ColorResolvable, APIEmbed, Embed, EmbedData, EmbedBuilder, AttachmentData, AnyComponentBuilder, ActionRowBuilder, ButtonBuilder, LinkButtonComponentData, ChannelType, CommandInteractionOption, Client, ApplicationCommand, TextInputBuilder, ModalSubmitFields, Collection, TextInputComponent, TextInputStyle, TextInputComponentData, GuildEmoji, GuildTextBasedChannel, Message, Role } from 'discord.js';
3
3
  export * from '@magicyan/core';
4
4
 
5
5
  declare const chars: {
@@ -205,35 +205,12 @@ declare function findCommand(guildOrClient: Guild | Client<true>): {
205
205
  guild: discord_js.GuildResolvable;
206
206
  }> | undefined;
207
207
  };
208
- type OmitCommandDataProps = "name" | "options" | "autocomplete" | "type";
209
- type CommandOption = Exclude<Omit<ApplicationCommandOptionData, "name">, ApplicationCommandSubGroupData | ApplicationCommandSubCommandData>;
210
- type CommandOptions = Record<string, CommandOption>;
211
- /**
212
- * Creates an array of command options, quickly define command options with a record where the key is the option name and the value is the definitions
213
- * @param groups
214
- * @returns
215
- */
216
- declare function createCommandOptions(options: CommandOptions): ApplicationCommandOptionData[];
217
- type SubCommand = Omit<ApplicationCommandSubCommandData, OmitCommandDataProps> & {
218
- options?: Record<string, CommandOption>;
219
- };
220
- type SubCommands = Record<string, SubCommand>;
221
- /**
222
- * Create an array of command options, quickly define subcommands with a record where the key is the subcommand name and the value is the definitions
223
- * @param groups
224
- * @returns
225
- */
226
- declare function createSubCommands(subcommands: SubCommands): ApplicationCommandSubCommandData[];
227
- type SubCommandGroup = Omit<ApplicationCommandSubGroupData, OmitCommandDataProps> & {
228
- subcommands: SubCommands;
229
- };
230
- type SubCommandGroups = Record<string, SubCommandGroup>;
231
- /**
232
- * Create an array of command options, quickly define groups of subcommands with a record where the key is the group name and the value is the definitions
233
- * @param groups
234
- * @returns
235
- */
236
- declare function createSubCommandsGroups(groups: SubCommandGroups): ApplicationCommandSubGroupData[];
208
+ interface CommandMentionData {
209
+ id: string;
210
+ name: string;
211
+ }
212
+ declare function commandMention(command: CommandMentionData, group?: string, subcommand?: string): string;
213
+ declare function commandMention(command: CommandMentionData, subcommand?: string): string;
237
214
 
238
215
  type TextInputData = Omit<TextInputComponentData, "type">;
239
216
  interface ModalFieldData extends Omit<TextInputData, "customId" | "style"> {
@@ -317,4 +294,4 @@ declare function findRole(guild: Guild): {
317
294
  */
318
295
  declare function extractMentionId(mention: string): string | null;
319
296
 
320
- export { type AnyEmbedData, CustomItents, CustomPartials, type EmbedPlusAssetData, type EmbedPlusAuthorData, EmbedPlusBuilder, type EmbedPlusColorData, type EmbedPlusData, type EmbedPlusFooterData, type EmbedPlusProperty, chars, createCommandOptions, createEmbed, createEmbedAsset, createEmbedAuthor, createEmbedFiles, createEmbedFooter, createLinkButton, createModalFields, createModalInput, createRow, createSubCommands, createSubCommandsGroups, extractMentionId, findChannel, findCommand, findEmoji, findMember, findMessage, findRole, getChannelUrlInfo, getMessageUrlInfo, modalFieldsToRecord, setMobileStatus };
297
+ export { type AnyEmbedData, CustomItents, CustomPartials, type EmbedPlusAssetData, type EmbedPlusAuthorData, EmbedPlusBuilder, type EmbedPlusColorData, type EmbedPlusData, type EmbedPlusFooterData, type EmbedPlusProperty, chars, commandMention, createEmbed, createEmbedAsset, createEmbedAuthor, createEmbedFiles, createEmbedFooter, createLinkButton, createModalFields, createModalInput, createRow, extractMentionId, findChannel, findCommand, findEmoji, findMember, findMessage, findRole, getChannelUrlInfo, getMessageUrlInfo, modalFieldsToRecord, setMobileStatus };
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as discord_js from 'discord.js';
2
- import { GatewayIntentBits, Partials, Attachment, AttachmentBuilder, EmbedAssetData, Guild, GuildMember, User, ClientUser, ImageURLOptions, EmbedFooterData, ColorResolvable, APIEmbed, Embed, EmbedData, EmbedBuilder, AttachmentData, AnyComponentBuilder, ActionRowBuilder, ButtonBuilder, LinkButtonComponentData, ChannelType, CommandInteractionOption, Client, ApplicationCommand, ApplicationCommandOptionData, ApplicationCommandSubCommandData, ApplicationCommandSubGroupData, TextInputBuilder, ModalSubmitFields, Collection, TextInputComponent, TextInputStyle, TextInputComponentData, GuildEmoji, GuildTextBasedChannel, Message, Role } from 'discord.js';
2
+ import { GatewayIntentBits, Partials, Attachment, AttachmentBuilder, EmbedAssetData, Guild, GuildMember, User, ClientUser, ImageURLOptions, EmbedFooterData, ColorResolvable, APIEmbed, Embed, EmbedData, EmbedBuilder, AttachmentData, AnyComponentBuilder, ActionRowBuilder, ButtonBuilder, LinkButtonComponentData, ChannelType, CommandInteractionOption, Client, ApplicationCommand, TextInputBuilder, ModalSubmitFields, Collection, TextInputComponent, TextInputStyle, TextInputComponentData, GuildEmoji, GuildTextBasedChannel, Message, Role } from 'discord.js';
3
3
  export * from '@magicyan/core';
4
4
 
5
5
  declare const chars: {
@@ -205,35 +205,12 @@ declare function findCommand(guildOrClient: Guild | Client<true>): {
205
205
  guild: discord_js.GuildResolvable;
206
206
  }> | undefined;
207
207
  };
208
- type OmitCommandDataProps = "name" | "options" | "autocomplete" | "type";
209
- type CommandOption = Exclude<Omit<ApplicationCommandOptionData, "name">, ApplicationCommandSubGroupData | ApplicationCommandSubCommandData>;
210
- type CommandOptions = Record<string, CommandOption>;
211
- /**
212
- * Creates an array of command options, quickly define command options with a record where the key is the option name and the value is the definitions
213
- * @param groups
214
- * @returns
215
- */
216
- declare function createCommandOptions(options: CommandOptions): ApplicationCommandOptionData[];
217
- type SubCommand = Omit<ApplicationCommandSubCommandData, OmitCommandDataProps> & {
218
- options?: Record<string, CommandOption>;
219
- };
220
- type SubCommands = Record<string, SubCommand>;
221
- /**
222
- * Create an array of command options, quickly define subcommands with a record where the key is the subcommand name and the value is the definitions
223
- * @param groups
224
- * @returns
225
- */
226
- declare function createSubCommands(subcommands: SubCommands): ApplicationCommandSubCommandData[];
227
- type SubCommandGroup = Omit<ApplicationCommandSubGroupData, OmitCommandDataProps> & {
228
- subcommands: SubCommands;
229
- };
230
- type SubCommandGroups = Record<string, SubCommandGroup>;
231
- /**
232
- * Create an array of command options, quickly define groups of subcommands with a record where the key is the group name and the value is the definitions
233
- * @param groups
234
- * @returns
235
- */
236
- declare function createSubCommandsGroups(groups: SubCommandGroups): ApplicationCommandSubGroupData[];
208
+ interface CommandMentionData {
209
+ id: string;
210
+ name: string;
211
+ }
212
+ declare function commandMention(command: CommandMentionData, group?: string, subcommand?: string): string;
213
+ declare function commandMention(command: CommandMentionData, subcommand?: string): string;
237
214
 
238
215
  type TextInputData = Omit<TextInputComponentData, "type">;
239
216
  interface ModalFieldData extends Omit<TextInputData, "customId" | "style"> {
@@ -317,4 +294,4 @@ declare function findRole(guild: Guild): {
317
294
  */
318
295
  declare function extractMentionId(mention: string): string | null;
319
296
 
320
- export { type AnyEmbedData, CustomItents, CustomPartials, type EmbedPlusAssetData, type EmbedPlusAuthorData, EmbedPlusBuilder, type EmbedPlusColorData, type EmbedPlusData, type EmbedPlusFooterData, type EmbedPlusProperty, chars, createCommandOptions, createEmbed, createEmbedAsset, createEmbedAuthor, createEmbedFiles, createEmbedFooter, createLinkButton, createModalFields, createModalInput, createRow, createSubCommands, createSubCommandsGroups, extractMentionId, findChannel, findCommand, findEmoji, findMember, findMessage, findRole, getChannelUrlInfo, getMessageUrlInfo, modalFieldsToRecord, setMobileStatus };
297
+ export { type AnyEmbedData, CustomItents, CustomPartials, type EmbedPlusAssetData, type EmbedPlusAuthorData, EmbedPlusBuilder, type EmbedPlusColorData, type EmbedPlusData, type EmbedPlusFooterData, type EmbedPlusProperty, chars, commandMention, createEmbed, createEmbedAsset, createEmbedAuthor, createEmbedFiles, createEmbedFooter, createLinkButton, createModalFields, createModalInput, createRow, extractMentionId, findChannel, findCommand, findEmoji, findMember, findMessage, findRole, getChannelUrlInfo, getMessageUrlInfo, modalFieldsToRecord, setMobileStatus };
package/dist/index.mjs CHANGED
@@ -8,7 +8,7 @@ export { createEmbedFooter } from './functions/embeds/footer.mjs';
8
8
  export { createEmbedFiles } from './functions/embeds/files.mjs';
9
9
  export { createLinkButton, createRow } from './functions/components.mjs';
10
10
  export { findChannel, getChannelUrlInfo } from './functions/channels.mjs';
11
- export { createCommandOptions, createSubCommands, createSubCommandsGroups, findCommand } from './functions/commands.mjs';
11
+ export { commandMention, findCommand } from './functions/commands.mjs';
12
12
  export { createModalFields, createModalInput, modalFieldsToRecord } from './functions/modals.mjs';
13
13
  export { findEmoji } from './functions/emojis.mjs';
14
14
  export { findMember } from './functions/members.mjs';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@magicyan/discord",
3
- "version": "1.0.34",
3
+ "version": "1.0.35",
4
4
  "description": "Simple functions to facilitate discord bot development",
5
5
  "license": "MIT",
6
6
  "type": "module",