vimcord 1.0.52 → 1.0.53

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.cjs CHANGED
@@ -316,7 +316,6 @@ var BaseCommandBuilder = class {
316
316
  async run(client, ...args) {
317
317
  const config = this.resolveConfig(client);
318
318
  const ctx = this.extractContext(args);
319
- let cancel = false;
320
319
  try {
321
320
  if (!config.enabled) {
322
321
  return await config.onUsedWhenDisabled?.(...args);
@@ -331,16 +330,11 @@ var BaseCommandBuilder = class {
331
330
  if (!await this.checkConditions(config, ...args)) {
332
331
  return await config.onConditionsNotMet?.(...args);
333
332
  }
334
- await config.beforeExecute?.({ cancel: () => cancel = true }, ...args);
335
- if (cancel) return;
333
+ await config.beforeExecute?.(...args);
336
334
  if (config.logExecution !== false) {
337
- const optionsWithName = this.options;
338
- const builderWithName = this;
339
- const cmdName = optionsWithName.name ?? builderWithName.builder?.name ?? "Unknown";
335
+ const cmdName = this.options.name || this.builder?.name || "Unknown";
340
336
  const location = ctx.guild ? `${ctx.guild.name} (${ctx.guild.id})` : "Direct Messages";
341
- if (client.logger) {
342
- client.logger.commandExecuted(cmdName, ctx.user.username, location);
343
- }
337
+ client.logger.commandExecuted(cmdName, ctx.user.username, location);
344
338
  }
345
339
  const result = await config.execute?.(...args);
346
340
  await config.afterExecute?.(result, ...args);
@@ -568,7 +562,9 @@ var Logger = class {
568
562
  extend(extras) {
569
563
  for (const [key, fn] of Object.entries(extras)) {
570
564
  if (typeof fn === "function") {
571
- this[key] = (...args) => fn.call(this, ...args);
565
+ this[key] = function(...args) {
566
+ return fn.call(this, ...args);
567
+ };
572
568
  }
573
569
  }
574
570
  return this;
@@ -938,14 +934,12 @@ var contextCommandHandler = new EventBuilder({
938
934
  if (!command) {
939
935
  const content = `**${interaction.commandName}** is not a registered context command.`;
940
936
  if (interaction.replied || interaction.deferred) {
941
- await interaction.followUp({ content, flags: "Ephemeral" });
942
- } else {
943
- await interaction.reply({ content, flags: "Ephemeral" });
937
+ return interaction.followUp({ content, flags: "Ephemeral" });
944
938
  }
945
- return;
939
+ return interaction.reply({ content, flags: "Ephemeral" });
946
940
  }
947
941
  try {
948
- await command.run(client, client, interaction);
942
+ return await command.run(client, client, interaction);
949
943
  } catch (err) {
950
944
  await client.error.handleCommandError(err, interaction.guild, interaction);
951
945
  }
@@ -1004,14 +998,12 @@ var slashCommandHandler = new EventBuilder({
1004
998
  if (!command) {
1005
999
  const content = `**/\`${interaction.commandName}\`** is not a registered command.`;
1006
1000
  if (interaction.replied || interaction.deferred) {
1007
- await interaction.followUp({ content, flags: "Ephemeral" });
1008
- } else {
1009
- await interaction.reply({ content, flags: "Ephemeral" });
1001
+ return interaction.followUp({ content, flags: "Ephemeral" });
1010
1002
  }
1011
- return;
1003
+ return interaction.reply({ content, flags: "Ephemeral" });
1012
1004
  }
1013
1005
  try {
1014
- await command.run(client, client, interaction);
1006
+ return await command.run(client, client, interaction);
1015
1007
  } catch (err) {
1016
1008
  await client.error.handleCommandError(err, interaction.guild, interaction);
1017
1009
  }
@@ -1795,7 +1787,7 @@ var VimcordErrorHandler = class {
1795
1787
  var import_chalk2 = __toESM(require("chalk"));
1796
1788
 
1797
1789
  // package.json
1798
- var version = "1.0.51";
1790
+ var version = "1.0.53";
1799
1791
 
1800
1792
  // src/client/vimcord.logger.ts
1801
1793
  var clientLoggerFactory = (client) => new Logger({ prefixEmoji: "\u26A1", prefix: `vimcord (i${client.clientId})` }).extend({
@@ -1871,11 +1863,9 @@ function getDevMode() {
1871
1863
  }
1872
1864
 
1873
1865
  // src/configs/app.config.ts
1874
- var packageJson = getPackageJson();
1875
- var version2 = typeof packageJson.version === "string" ? packageJson.version : "1.0.0";
1876
1866
  var defaultConfig = {
1877
1867
  name: "Discord Bot",
1878
- version: version2,
1868
+ version: getPackageJson()?.version ?? "1.0.0",
1879
1869
  devMode: getDevMode(),
1880
1870
  verbose: false,
1881
1871
  enableCLI: false,
@@ -2199,16 +2189,11 @@ var CommandManager = class {
2199
2189
  slash;
2200
2190
  prefix;
2201
2191
  context;
2202
- logger;
2203
2192
  constructor(client) {
2204
2193
  this.client = client;
2205
2194
  this.slash = new SlashCommandManager(client);
2206
2195
  this.prefix = new PrefixCommandManager(client);
2207
2196
  this.context = new ContextCommandManager(client);
2208
- this.logger = new Logger({
2209
- prefixEmoji: "\u26A1",
2210
- prefix: `vimcord (i${client.clientId}) [CommandManager]`
2211
- });
2212
2197
  }
2213
2198
  getAllAppCommands(options = {}) {
2214
2199
  return [...this.slash.getAll(options), ...this.context.getAll(options)];
@@ -2216,21 +2201,23 @@ var CommandManager = class {
2216
2201
  async registerGlobal(options = {}) {
2217
2202
  const client = await Vimcord.getReadyInstance(this.client.clientId);
2218
2203
  if (!client.rest) {
2219
- this.logger.error("Failed to register app commands globally: REST is not initialized");
2204
+ console.error(`[CommandManager] \u2716 Failed to register app commands globally: REST is not initialized`);
2220
2205
  return;
2221
2206
  }
2222
2207
  const commands = this.getAllAppCommands(options).map((cmd) => cmd.builder.toJSON());
2223
2208
  if (!commands.length) {
2224
- this.logger.info("No commands to register globally");
2209
+ console.log("[CommandManager] No commands to register globally");
2225
2210
  return;
2226
2211
  }
2227
- this.logger.info(`Registering (${commands.length}) ${commands.length === 1 ? "command" : "commands"} globally...`);
2212
+ console.log(
2213
+ `[CommandManager] Registering (${commands.length}) ${commands.length === 1 ? "command" : "commands"} globally...`
2214
+ );
2228
2215
  try {
2229
2216
  await client.rest.put(import_discord8.Routes.applicationCommands(client.user.id), { body: commands });
2230
- this.logger.success(`Registered app ${commands.length === 1 ? "command" : "commands"} globally`);
2217
+ console.log(`[CommandManager] \u2714 Registered app ${commands.length === 1 ? "command" : "commands"} globally`);
2231
2218
  } catch (err) {
2232
- this.logger.error(
2233
- `Failed to register app ${commands.length === 1 ? "command" : "commands"} globally`,
2219
+ console.error(
2220
+ `[CommandManager] \u2716 Failed to register app ${commands.length === 1 ? "command" : "commands"} globally`,
2234
2221
  err
2235
2222
  );
2236
2223
  }
@@ -2238,66 +2225,60 @@ var CommandManager = class {
2238
2225
  async unregisterGlobal() {
2239
2226
  const client = await Vimcord.getReadyInstance(this.client.clientId);
2240
2227
  if (!client.rest) {
2241
- this.logger.error("Failed to remove app commands globally: REST is not initialized");
2228
+ console.error(`[CommandManager] \u2716 Failed to remove app commands globally: REST is not initialized`);
2242
2229
  return;
2243
2230
  }
2244
2231
  try {
2245
2232
  await client.rest.put(import_discord8.Routes.applicationCommands(client.user.id), { body: [] });
2246
- this.logger.success("Removed app commands globally");
2233
+ console.log(`[CommandManager] \u2714 Removed app commands globally`);
2247
2234
  } catch (err) {
2248
- this.logger.error("Failed to remove app commands globally", err);
2235
+ console.error(`[CommandManager] \u2716 Failed to remove app commands globally`, err);
2249
2236
  }
2250
2237
  }
2251
2238
  async registerGuild(options = {}) {
2252
2239
  const client = await Vimcord.getReadyInstance(this.client.clientId);
2253
2240
  if (!client.rest) {
2254
- this.logger.error("Failed to register app commands by guild: REST is not initialized");
2241
+ console.error(`[CommandManager] \u2716 Failed to register app commands by guild: REST is not initialized`);
2255
2242
  return;
2256
2243
  }
2257
2244
  const commands = this.getAllAppCommands(options).map((cmd) => cmd.builder.toJSON());
2258
2245
  if (!commands.length) {
2259
- this.logger.info("No commands to register by guild");
2246
+ console.log("[CommandManager] No commands to register by guild");
2260
2247
  return;
2261
2248
  }
2262
2249
  const guildIds = options.guilds || client.guilds.cache.map((g) => g.id);
2263
- this.logger.info(
2264
- `Registering (${commands.length}) ${commands.length === 1 ? "command" : "commands"} for ${guildIds.length} guilds...`
2250
+ console.log(
2251
+ `[CommandManager] Registering (${commands.length}) ${commands.length === 1 ? "command" : "commands"} for ${guildIds.length} guilds...`
2265
2252
  );
2266
2253
  await Promise.all(
2267
- guildIds.map(async (guildId) => {
2268
- try {
2269
- await client.rest.put(import_discord8.Routes.applicationGuildCommands(client.user.id, guildId), { body: commands });
2254
+ guildIds.map(
2255
+ (guildId) => client.rest.put(import_discord8.Routes.applicationGuildCommands(client.user.id, guildId), { body: commands }).then(() => {
2270
2256
  const gName = client.guilds.cache.get(guildId)?.name || "n/a";
2271
- this.logger.success(
2272
- `Set app ${commands.length === 1 ? "command" : "commands"} in guild: ${guildId} (${gName})`
2257
+ console.log(
2258
+ `[CommandManager] \u2714 Set app ${commands.length === 1 ? "command" : "commands"} in guild: ${guildId} (${gName})`
2273
2259
  );
2274
- } catch (err) {
2260
+ }).catch((err) => {
2275
2261
  const gName = client.guilds.cache.get(guildId)?.name || "n/a";
2276
- this.logger.error(
2277
- `Failed to set app ${commands.length === 1 ? "command" : "commands"} in guild: ${guildId} (${gName})`,
2262
+ console.log(
2263
+ `[CommandManager] \u2716 Failed to set app ${commands.length === 1 ? "command" : "commands"} in guild: ${guildId} (${gName})`,
2278
2264
  err
2279
2265
  );
2280
- }
2281
- })
2266
+ })
2267
+ )
2282
2268
  );
2283
2269
  }
2284
2270
  async unregisterGuild(options = {}) {
2285
2271
  const client = await Vimcord.getReadyInstance(this.client.clientId);
2286
2272
  if (!client.rest) {
2287
- this.logger.error("Failed to unregister app commands by guild: REST is not initialized");
2273
+ console.error(`[CommandManager] \u2716 Failed to register app commands by guild: REST is not initialized`);
2288
2274
  return;
2289
2275
  }
2290
2276
  const guildIds = options.guilds || client.guilds.cache.map((g) => g.id);
2291
- this.logger.info(`Unregistering commands from ${guildIds.length} guilds...`);
2277
+ console.log(`[CommandManager] Unregistering commands from ${guildIds.length} guilds...`);
2292
2278
  await Promise.all(
2293
- guildIds.map(async (guildId) => {
2294
- try {
2295
- await client.rest.put(import_discord8.Routes.applicationGuildCommands(client.user.id, guildId), { body: [] });
2296
- this.logger.success(`Removed app commands in guild: ${guildId}`);
2297
- } catch (err) {
2298
- this.logger.error(`Failed to remove app commands in guild: ${guildId}`, err);
2299
- }
2300
- })
2279
+ guildIds.map(
2280
+ (guildId) => client.rest.put(import_discord8.Routes.applicationGuildCommands(client.user.id, guildId), { body: [] }).then(() => console.log(`[CommandManager] \u2714 Removed app commands in guild: ${guildId}`)).catch((err) => console.log(`[CommandManager] \u2716 Failed to remove app commands in guild: ${guildId}`, err))
2281
+ )
2301
2282
  );
2302
2283
  }
2303
2284
  };
@@ -2805,8 +2786,8 @@ var Vimcord = class _Vimcord extends import_discord11.Client {
2805
2786
  return this.config.app.version;
2806
2787
  }
2807
2788
  // prettier-ignore
2808
- set $version(version3) {
2809
- this.config.app.version = version3;
2789
+ set $version(version2) {
2790
+ this.config.app.version = version2;
2810
2791
  }
2811
2792
  /** Current dev mode state */
2812
2793
  // prettier-ignore
@@ -4054,7 +4035,7 @@ var Paginator = class {
4054
4035
  if (disabledNavRow.components.length > 0) {
4055
4036
  newComponents.push(disabledNavRow);
4056
4037
  }
4057
- await this.data.message.edit({ components: newComponents });
4038
+ await this.data.message.edit({ components: newComponents }).catch(Boolean);
4058
4039
  if (this.options.useReactions) {
4059
4040
  await this.nav_removeFromMessage();
4060
4041
  }
@@ -4065,7 +4046,7 @@ var Paginator = class {
4065
4046
  }
4066
4047
  break;
4067
4048
  case 2 /* DeleteMessage */:
4068
- await this.data.message.delete();
4049
+ await this.data.message.delete().catch(Boolean);
4069
4050
  break;
4070
4051
  case 3 /* DoNothing */:
4071
4052
  break;
@@ -4075,16 +4056,16 @@ var Paginator = class {
4075
4056
  async nav_removeFromMessage() {
4076
4057
  if (!this.data.message?.editable) return;
4077
4058
  if (this.options.useReactions) {
4078
- await this.data.message.reactions.removeAll();
4059
+ await this.data.message.reactions.removeAll().catch(Boolean);
4079
4060
  } else {
4080
4061
  const newComponents = this.data.message.components.filter((c) => c.type !== import_discord14.ComponentType.Container);
4081
- await this.data.message.edit({ components: newComponents });
4062
+ await this.data.message.edit({ components: newComponents }).catch(Boolean);
4082
4063
  }
4083
4064
  }
4084
4065
  async nav_addReactions() {
4085
4066
  if (!this.data.message || !this.options.useReactions || !this.data.navigation.reactions.length) return;
4086
4067
  for (const r of this.data.navigation.reactions) {
4087
- await this.data.message.react(r.id);
4068
+ await this.data.message.react(r.id).catch(Boolean);
4088
4069
  }
4089
4070
  }
4090
4071
  async collect_components() {
@@ -4119,7 +4100,7 @@ var Paginator = class {
4119
4100
  }
4120
4101
  switch (i.customId) {
4121
4102
  case "ssm_chapterSelect":
4122
- await i.deferUpdate();
4103
+ await i.deferUpdate().catch(Boolean);
4123
4104
  const chapterIndex = this.chapters.findIndex(
4124
4105
  (c) => c.id === i.values[0]
4125
4106
  );
@@ -4127,25 +4108,25 @@ var Paginator = class {
4127
4108
  await this.refresh();
4128
4109
  break;
4129
4110
  case "btn_first":
4130
- await i.deferUpdate();
4111
+ await i.deferUpdate().catch(Boolean);
4131
4112
  this.callEventStack("first", this.data.page.current, this.data.page.index);
4132
4113
  await this.setPage(this.data.page.index.chapter, 0);
4133
4114
  await this.refresh();
4134
4115
  break;
4135
4116
  case "btn_back":
4136
- await i.deferUpdate();
4117
+ await i.deferUpdate().catch(Boolean);
4137
4118
  this.callEventStack("back", this.data.page.current, this.data.page.index);
4138
4119
  await this.setPage(this.data.page.index.chapter, this.data.page.index.nested - 1);
4139
4120
  await this.refresh();
4140
4121
  break;
4141
4122
  case "btn_next":
4142
- await i.deferUpdate();
4123
+ await i.deferUpdate().catch(Boolean);
4143
4124
  this.callEventStack("next", this.data.page.current, this.data.page.index);
4144
4125
  await this.setPage(this.data.page.index.chapter, this.data.page.index.nested + 1);
4145
4126
  await this.refresh();
4146
4127
  break;
4147
4128
  case "btn_last":
4148
- await i.deferUpdate();
4129
+ await i.deferUpdate().catch(Boolean);
4149
4130
  this.callEventStack("last", this.data.page.current, this.data.page.index);
4150
4131
  await this.setPage(
4151
4132
  this.data.page.index.chapter,