xernerx 0.1.120-beta.49 → 0.1.120-beta.50

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.
Files changed (56) hide show
  1. package/dist/main.cjs +168 -103
  2. package/dist/main.cjs.map +1 -1
  3. package/dist/main.d.cts +214 -184
  4. package/dist/main.d.ts +214 -184
  5. package/dist/main.js +166 -97
  6. package/dist/main.js.map +1 -1
  7. package/package.json +7 -5
  8. package/src/build/BaseBuilder.ts +25 -0
  9. package/src/build/{XernerxContextCommandBuilder.ts → ContextCommandBuilder.ts} +7 -7
  10. package/src/build/{XernerxEventBuilder.ts → EventBuilder.ts} +4 -4
  11. package/src/build/InhibitorBuilder.ts +22 -0
  12. package/src/build/{XernerxMessageCommandBuilder.ts → MessageCommandBuilder.ts} +4 -4
  13. package/src/build/{XernerxSlashCommandBuilder.ts → SlashCommandBuilder.ts} +18 -23
  14. package/src/client/XernerxClient.ts +27 -18
  15. package/src/events/XernerxMessage.ts +2 -2
  16. package/src/events/clientReady.ts +7 -7
  17. package/src/events/contextCommandInteraction.ts +14 -8
  18. package/src/events/interactionCreate.ts +16 -9
  19. package/src/events/interactionInhibitor.ts +1 -0
  20. package/src/events/messageCreate.ts +4 -4
  21. package/src/events/messageDelete.ts +4 -4
  22. package/src/events/messageUpdate.ts +4 -4
  23. package/src/events/slashCommandInteraction.ts +12 -7
  24. package/src/handler/{Handler.ts → BaseHandler.ts} +18 -11
  25. package/src/handler/CommandHandler.ts +8 -8
  26. package/src/handler/EventHandler.ts +9 -5
  27. package/src/handler/InhibitorHandler.ts +27 -0
  28. package/src/interfaces/{XernerxContextCommandBuilderOptions.ts → ContextCommandBuilderOptions.ts} +1 -1
  29. package/src/interfaces/ContextCommandHandlerOptions.ts +5 -0
  30. package/src/interfaces/{XernerxContextCommandOptions.ts → ContextCommandOptions.ts} +3 -3
  31. package/src/interfaces/{XernerxEventBuilderOptions.ts → EventBuilderOptions.ts} +1 -1
  32. package/src/interfaces/EventHandlerOptions.ts +5 -0
  33. package/src/interfaces/InhibitorBuilderOptions.ts +5 -0
  34. package/src/interfaces/InhibitorHandlerOptions.ts +5 -0
  35. package/src/interfaces/{XernerxMessageCommandBuilderOptions.ts → MessageCommandBuilderOptions.ts} +1 -1
  36. package/src/interfaces/{XernerxMessageCommandHandlerOptions.ts → MessageCommandHandlerOptions.ts} +1 -1
  37. package/src/interfaces/{XernerxSlashCommandBuilderOptions.ts → SlashCommandBuilderOptions.ts} +9 -9
  38. package/src/interfaces/SlashCommandHandlerOptions.ts +5 -0
  39. package/src/interfaces/{XernerxSlashCommandOptions.ts → SlashCommandOptions.ts} +7 -7
  40. package/src/main.ts +7 -9
  41. package/src/model/{XernerxInteractionArguments.ts → InteractionArguments.ts} +6 -6
  42. package/src/types/Events.d.ts +7 -7
  43. package/src/types/Interaction.d.ts +14 -14
  44. package/src/types/Message.d.ts +2 -2
  45. package/src/util/{XernerxUtil.ts → BaseUtil.ts} +1 -1
  46. package/src/util/{XernerxInteractionUtil.ts → InteractionUtil.ts} +2 -2
  47. package/src/util/{XernerxMessageUtil.ts → MessageUtil.ts} +2 -2
  48. package/src/validators/{XernerxBaseValidator.ts → BaseValidator.ts} +6 -6
  49. package/src/validators/ContextCommandValidator.ts +12 -0
  50. package/src/validators/InhibitorValidator.ts +25 -0
  51. package/src/validators/SlashCommandValidator.ts +11 -0
  52. package/src/build/XernerxBaseBuilder.ts +0 -21
  53. package/src/interfaces/XernerxContextCommandHandlerOptions.ts +0 -5
  54. package/src/interfaces/XernerxSlashCommandHandlerOptions.ts +0 -5
  55. package/src/validators/XernerxContextCommandValidator.ts +0 -12
  56. package/src/validators/XernerxSlashCommandValidator.ts +0 -11
package/dist/main.cjs CHANGED
@@ -67,7 +67,7 @@ var XernerxInfo = class extends XernerxBase {
67
67
 
68
68
  // package.json
69
69
  var package_default = {
70
- version: "0.1.120-beta.49"};
70
+ version: "0.1.120-beta.50"};
71
71
 
72
72
  // src/tools/XernerxInitial.ts
73
73
  var XernerxInitial = class extends XernerxBase {
@@ -196,9 +196,9 @@ var XernerxShardClient = class extends discordHybridSharding.ClusterManager {
196
196
  );
197
197
  }
198
198
  };
199
- var Handler = class {
199
+ var BaseHandler = class {
200
200
  static {
201
- __name(this, "Handler");
201
+ __name(this, "BaseHandler");
202
202
  }
203
203
  constructor(client) {
204
204
  this.client = client;
@@ -278,6 +278,10 @@ var Handler = class {
278
278
  if (this.client.commands.slash.has(builder.id)) return new XernerxError(`${filename} | ID must be unique`);
279
279
  this.client.commands.context.set(builder.id, builder);
280
280
  }
281
+ if (builder.filetype === "XernerxInhibitor") {
282
+ if (this.client.inhibitors.has(builder.id)) return new XernerxError(`${filename} | ID must be unique`);
283
+ this.client.inhibitors.set(builder.id, builder);
284
+ }
281
285
  return builder;
282
286
  }
283
287
  async loadBuilder(...args) {
@@ -287,11 +291,8 @@ var Handler = class {
287
291
  }
288
292
  };
289
293
 
290
- // src/build/XernerxBaseBuilder.ts
291
- var XernerxBaseBuilder = class {
292
- static {
293
- __name(this, "XernerxBaseBuilder");
294
- }
294
+ // src/build/BaseBuilder.ts
295
+ var BaseBuilder = class {
295
296
  /**
296
297
  * Constructs a new instance of the XernerxBaseBuilder class.
297
298
  *
@@ -301,6 +302,10 @@ var XernerxBaseBuilder = class {
301
302
  */
302
303
  constructor(id, options) {
303
304
  this.id = id;
305
+ this.id = id;
306
+ }
307
+ static {
308
+ __name(this, "BaseBuilder");
304
309
  }
305
310
  };
306
311
  var XernerxWarn = class extends XernerxBase {
@@ -312,9 +317,9 @@ var XernerxWarn = class extends XernerxBase {
312
317
  ora__default.default().warn(`${this.base()}${message}`);
313
318
  }
314
319
  };
315
- var XernerxEventBuilder = class extends XernerxBaseBuilder {
320
+ var EventBuilder = class extends BaseBuilder {
316
321
  static {
317
- __name(this, "XernerxEventBuilder");
322
+ __name(this, "EventBuilder");
318
323
  }
319
324
  constructor(id, options) {
320
325
  super(id, options);
@@ -457,10 +462,10 @@ var XernerxUser = class extends discord_js.User {
457
462
  }
458
463
  };
459
464
 
460
- // src/validators/XernerxBaseValidator.ts
461
- var XernerxBaseValidator = class {
465
+ // src/validators/BaseValidator.ts
466
+ var BaseValidator = class {
462
467
  static {
463
- __name(this, "XernerxBaseValidator");
468
+ __name(this, "BaseValidator");
464
469
  }
465
470
  constructor(interaction, command) {
466
471
  this.client = interaction.client;
@@ -517,18 +522,39 @@ var XernerxBaseValidator = class {
517
522
  }
518
523
  };
519
524
 
520
- // src/validators/XernerxContextCommandValidator.ts
521
- var XernerxContextCommandValidator = class extends XernerxBaseValidator {
525
+ // src/validators/ContextCommandValidator.ts
526
+ var ContextCommandValidator = class extends BaseValidator {
522
527
  static {
523
- __name(this, "XernerxContextCommandValidator");
528
+ __name(this, "ContextCommandValidator");
524
529
  }
525
530
  constructor(interaction, command) {
526
531
  super(interaction, command);
527
532
  }
528
533
  };
529
534
 
535
+ // src/validators/InhibitorValidator.ts
536
+ var InhibitorValidator = class {
537
+ constructor(client) {
538
+ this.client = client;
539
+ this.client = client;
540
+ }
541
+ static {
542
+ __name(this, "InhibitorValidator");
543
+ }
544
+ async pre(name, ...args) {
545
+ if (!this.client.inhibitors.has(name)) return;
546
+ const inhibitor = this.client.inhibitors.get(name);
547
+ return await inhibitor?.pre(...args);
548
+ }
549
+ async post(name, ...args) {
550
+ if (!this.client.inhibitors.has(name)) return;
551
+ const inhibitor = this.client.inhibitors.get(name);
552
+ return await inhibitor?.post(...args);
553
+ }
554
+ };
555
+
530
556
  // src/events/contextCommandInteraction.ts
531
- var XernerxContextCommandInteractionEvent = class extends XernerxEventBuilder {
557
+ var XernerxContextCommandInteractionEvent = class extends EventBuilder {
532
558
  static {
533
559
  __name(this, "XernerxContextCommandInteractionEvent");
534
560
  }
@@ -549,13 +575,16 @@ var XernerxContextCommandInteractionEvent = class extends XernerxEventBuilder {
549
575
  if (interaction.isMessageContextMenuCommand()) {
550
576
  options.message = interaction.targetMessage;
551
577
  }
578
+ const inhibitor = new InhibitorValidator(interaction.client);
579
+ if (await inhibitor.pre("command", interaction, command)) return;
552
580
  try {
553
581
  await this.client.emit("commandStart", interaction, options, command);
554
- const validation = new XernerxContextCommandValidator(interaction, command);
582
+ const validation = new ContextCommandValidator(interaction, command);
555
583
  if (!await validation.validate()) return;
556
584
  if (command.defer) await interaction.deferReply();
557
585
  if (await command.conditions(options)) return;
558
586
  await command.exec(options);
587
+ await inhibitor.post("command", interaction, command);
559
588
  await this.client.emit("commandFinish", interaction, options, command);
560
589
  } catch (error) {
561
590
  await this.client.emit("commandError", interaction, options, command, error);
@@ -563,10 +592,10 @@ var XernerxContextCommandInteractionEvent = class extends XernerxEventBuilder {
563
592
  }
564
593
  };
565
594
 
566
- // src/util/XernerxUtil.ts
567
- var XernerxBaseUtil = class {
595
+ // src/util/BaseUtil.ts
596
+ var BaseUtil = class {
568
597
  static {
569
- __name(this, "XernerxBaseUtil");
598
+ __name(this, "BaseUtil");
570
599
  }
571
600
  constructor(client, interaction) {
572
601
  this.client = client;
@@ -592,10 +621,10 @@ var XernerxBaseUtil = class {
592
621
  }
593
622
  };
594
623
 
595
- // src/util/XernerxInteractionUtil.ts
596
- var XernerxInteractionUtil = class extends XernerxBaseUtil {
624
+ // src/util/InteractionUtil.ts
625
+ var InteractionUtil = class extends BaseUtil {
597
626
  static {
598
- __name(this, "XernerxInteractionUtil");
627
+ __name(this, "InteractionUtil");
599
628
  }
600
629
  constructor(client, interaction) {
601
630
  super(client, interaction);
@@ -641,7 +670,7 @@ var XernerxInteractionUtil = class extends XernerxBaseUtil {
641
670
  };
642
671
 
643
672
  // src/events/interactionCreate.ts
644
- var XernerxInteractionCreateEvent = class extends XernerxEventBuilder {
673
+ var XernerxInteractionCreateEvent = class extends EventBuilder {
645
674
  static {
646
675
  __name(this, "XernerxInteractionCreateEvent");
647
676
  }
@@ -654,19 +683,22 @@ var XernerxInteractionCreateEvent = class extends XernerxEventBuilder {
654
683
  }
655
684
  async run(interaction) {
656
685
  interaction.user = new XernerxUser(interaction.client, interaction.user);
657
- interaction.util = new XernerxInteractionUtil(this.client, interaction);
658
- if (interaction.isChatInputCommand()) return await interaction.client.emit("slashCommandInteraction", interaction);
659
- if (interaction.isContextMenuCommand()) return await interaction.client.emit("contextCommandInteraction", interaction);
660
- if (interaction.isAnySelectMenu()) return await interaction.client.emit("selectMenuInteraction", interaction);
661
- if (interaction.isButton()) return await interaction.client.emit("buttonInteraction", interaction);
662
- if (interaction.isModalSubmit()) return await interaction.client.emit("modalInteraction", interaction);
686
+ interaction.util = new InteractionUtil(this.client, interaction);
687
+ const inhibitor = new InhibitorValidator(interaction.client);
688
+ if (await inhibitor.pre("interaction", interaction)) return;
689
+ if (interaction.isChatInputCommand()) await interaction.client.emit("slashCommandInteraction", interaction);
690
+ if (interaction.isContextMenuCommand()) await interaction.client.emit("contextCommandInteraction", interaction);
691
+ if (interaction.isAnySelectMenu()) await interaction.client.emit("selectMenuInteraction", interaction);
692
+ if (interaction.isButton()) await interaction.client.emit("buttonInteraction", interaction);
693
+ if (interaction.isModalSubmit()) await interaction.client.emit("modalInteraction", interaction);
694
+ await inhibitor.post("interaction", interaction);
663
695
  }
664
696
  };
665
697
 
666
- // src/util/XernerxMessageUtil.ts
667
- var XernerxMessageUtil = class extends XernerxBaseUtil {
698
+ // src/util/MessageUtil.ts
699
+ var MessageUtil = class extends BaseUtil {
668
700
  static {
669
- __name(this, "XernerxMessageUtil");
701
+ __name(this, "MessageUtil");
670
702
  }
671
703
  constructor(client, message) {
672
704
  super(client, message);
@@ -735,7 +767,7 @@ var XernerxMessageUtil = class extends XernerxBaseUtil {
735
767
  };
736
768
 
737
769
  // src/events/messageCreate.ts
738
- var XernerxMessageCreateEvent = class extends XernerxEventBuilder {
770
+ var XernerxMessageCreateEvent = class extends EventBuilder {
739
771
  static {
740
772
  __name(this, "XernerxMessageCreateEvent");
741
773
  }
@@ -748,7 +780,7 @@ var XernerxMessageCreateEvent = class extends XernerxEventBuilder {
748
780
  }
749
781
  async run(message) {
750
782
  message.user = new XernerxUser(message.client, message.author);
751
- message.util = new XernerxMessageUtil(this.client, message);
783
+ message.util = new MessageUtil(this.client, message);
752
784
  if (!message.content) return;
753
785
  if (this.client.handler.message.ignore?.bots && message.author.bot) return;
754
786
  if (this.client.handler.message.ignore?.self && message.author.id === this.client.user?.id) return;
@@ -769,7 +801,7 @@ var XernerxMessageCreateEvent = class extends XernerxEventBuilder {
769
801
  };
770
802
 
771
803
  // src/events/messageDelete.ts
772
- var XernerxMessageDeleteEvent = class extends XernerxEventBuilder {
804
+ var XernerxMessageDeleteEvent = class extends EventBuilder {
773
805
  static {
774
806
  __name(this, "XernerxMessageDeleteEvent");
775
807
  }
@@ -782,7 +814,7 @@ var XernerxMessageDeleteEvent = class extends XernerxEventBuilder {
782
814
  }
783
815
  async run(message) {
784
816
  message.user = new XernerxUser(message.client, message.author);
785
- message.util = new XernerxMessageUtil(this.client, message);
817
+ message.util = new MessageUtil(this.client, message);
786
818
  if (!this.client.handler.message.handleDeletions) return;
787
819
  if (!this.client.cache.messages.has(message.id)) return;
788
820
  const id = this.client.cache.messages.get(message.id);
@@ -797,7 +829,7 @@ var XernerxMessageDeleteEvent = class extends XernerxEventBuilder {
797
829
  };
798
830
 
799
831
  // src/events/messageUpdate.ts
800
- var XernerxMessageUpdateEvent = class extends XernerxEventBuilder {
832
+ var XernerxMessageUpdateEvent = class extends EventBuilder {
801
833
  static {
802
834
  __name(this, "XernerxMessageUpdateEvent");
803
835
  }
@@ -810,7 +842,7 @@ var XernerxMessageUpdateEvent = class extends XernerxEventBuilder {
810
842
  }
811
843
  async run(oldMessage, message) {
812
844
  message.user = new XernerxUser(message.client, message.author);
813
- message.util = new XernerxMessageUtil(this.client, message);
845
+ message.util = new MessageUtil(this.client, message);
814
846
  if (!message.content) return;
815
847
  if (this.client.handler.message.ignore?.bots && message.author.bot) return;
816
848
  if (this.client.handler.message.ignore?.self && message.author.id === this.client.user?.id) return;
@@ -830,10 +862,10 @@ var XernerxMessageUpdateEvent = class extends XernerxEventBuilder {
830
862
  }
831
863
  };
832
864
 
833
- // src/model/XernerxInteractionArguments.ts
834
- var XernerxInteractionArguments = class {
865
+ // src/model/InteractionArguments.ts
866
+ var InteractionArguments = class {
835
867
  static {
836
- __name(this, "XernerxInteractionArguments");
868
+ __name(this, "InteractionArguments");
837
869
  }
838
870
  constructor(interaction, command) {
839
871
  this.interaction = interaction;
@@ -915,10 +947,10 @@ var XernerxInteractionArguments = class {
915
947
  }
916
948
  };
917
949
 
918
- // src/validators/XernerxSlashCommandValidator.ts
919
- var XernerxSlashCommandValidator = class extends XernerxBaseValidator {
950
+ // src/validators/SlashCommandValidator.ts
951
+ var SlashCommandValidator = class extends BaseValidator {
920
952
  static {
921
- __name(this, "XernerxSlashCommandValidator");
953
+ __name(this, "SlashCommandValidator");
922
954
  }
923
955
  constructor(interaction, command) {
924
956
  super(interaction, command);
@@ -926,7 +958,7 @@ var XernerxSlashCommandValidator = class extends XernerxBaseValidator {
926
958
  };
927
959
 
928
960
  // src/events/slashCommandInteraction.ts
929
- var XernerxSlashCommandInteractionEvent = class extends XernerxEventBuilder {
961
+ var XernerxSlashCommandInteractionEvent = class extends EventBuilder {
930
962
  static {
931
963
  __name(this, "XernerxSlashCommandInteractionEvent");
932
964
  }
@@ -940,6 +972,8 @@ var XernerxSlashCommandInteractionEvent = class extends XernerxEventBuilder {
940
972
  async run(interaction) {
941
973
  const command = this.client.commands.slash.get(interaction.commandName);
942
974
  if (!command) return;
975
+ const inhibitor = new InhibitorValidator(interaction.client);
976
+ if (await inhibitor.pre("command", interaction, command)) return;
943
977
  new Promise(async (resolve) => {
944
978
  if (interaction.isAutocomplete()) {
945
979
  const focused = interaction.options.getFocused(true);
@@ -947,16 +981,17 @@ var XernerxSlashCommandInteractionEvent = class extends XernerxEventBuilder {
947
981
  await command.autocomplete({ interaction, focused, options });
948
982
  } else resolve(true);
949
983
  }).then(async () => {
950
- const args = new XernerxInteractionArguments(interaction, command);
984
+ const args = new InteractionArguments(interaction, command);
951
985
  const options = { options: args.options(), subcommand: args.subcommand(), group: args.group() };
952
986
  try {
953
987
  await this.client.emit("commandStart", interaction, options, command);
954
- const validation = new XernerxSlashCommandValidator(interaction, command);
988
+ const validation = new SlashCommandValidator(interaction, command);
955
989
  if (!await validation.validate()) return;
956
990
  if (command.defer) await interaction.deferReply();
957
991
  if (await command.conditions({ interaction, ...options, command })) return;
958
992
  await command.exec({ interaction, ...options, command });
959
993
  await this.client.emit("commandFinish", interaction, options, command);
994
+ await inhibitor.post("command", interaction, command);
960
995
  } catch (error) {
961
996
  await command.error({ interaction, ...options, command, error });
962
997
  await this.client.emit("commandError", interaction, options, command, error);
@@ -964,7 +999,7 @@ var XernerxSlashCommandInteractionEvent = class extends XernerxEventBuilder {
964
999
  });
965
1000
  }
966
1001
  };
967
- var CommandHandler = class extends Handler {
1002
+ var CommandHandler = class extends BaseHandler {
968
1003
  static {
969
1004
  __name(this, "CommandHandler");
970
1005
  }
@@ -1057,40 +1092,7 @@ var CommandHandler = class extends Handler {
1057
1092
  new XernerxSuccess(`Loaded context commands: ${this.client.commands.context.map((command) => sharpyy4__default.default(command.id, "txYellow")).join(", ")}`);
1058
1093
  }
1059
1094
  };
1060
- var EventHandler = class extends Handler {
1061
- static {
1062
- __name(this, "EventHandler");
1063
- }
1064
- constructor(client) {
1065
- super(client);
1066
- }
1067
- /**
1068
- * Loads a single event file.
1069
- *
1070
- * @param file - The path to the event file to be loaded.
1071
- * @returns A promise that resolves when the event file has been successfully loaded.
1072
- */
1073
- async loadEvent(file) {
1074
- return this.loadFile(file);
1075
- }
1076
- /**
1077
- * Loads all event files from the specified directory and initializes them.
1078
- *
1079
- * @param options - An object containing options for loading events.
1080
- * @param options.directory - The directory path where event files are located.
1081
- * @returns A promise that resolves when all events have been loaded.
1082
- */
1083
- async loadEvents(options) {
1084
- const files = this.loadFiles(options.directory);
1085
- for (const file of files) {
1086
- await this.loadEvent(file);
1087
- }
1088
- new XernerxSuccess(
1089
- `Loaded events: ${this.client.events.filter((event) => !event.id.startsWith("Xernerx")).map((event) => sharpyy4__default.default(event.id, "txYellow")).join(", ")}`
1090
- );
1091
- }
1092
- };
1093
- var XernerxClientReadyEvent = class extends XernerxEventBuilder {
1095
+ var XernerxClientReadyEvent = class extends EventBuilder {
1094
1096
  static {
1095
1097
  __name(this, "XernerxClientReadyEvent");
1096
1098
  }
@@ -1158,7 +1160,7 @@ var XernerxClientReadyEvent = class extends XernerxEventBuilder {
1158
1160
  };
1159
1161
 
1160
1162
  // src/events/XernerxMessage.ts
1161
- var XernerxMessageEvent = class extends XernerxEventBuilder {
1163
+ var XernerxMessageEvent = class extends EventBuilder {
1162
1164
  static {
1163
1165
  __name(this, "XernerxMessageEvent");
1164
1166
  }
@@ -1173,6 +1175,58 @@ var XernerxMessageEvent = class extends XernerxEventBuilder {
1173
1175
  if (message.type !== "xernerx") return;
1174
1176
  }
1175
1177
  };
1178
+ var EventHandler = class extends BaseHandler {
1179
+ static {
1180
+ __name(this, "EventHandler");
1181
+ }
1182
+ constructor(client) {
1183
+ super(client);
1184
+ this.loadBuilder(XernerxMessageEvent, XernerxClientReadyEvent);
1185
+ }
1186
+ /**
1187
+ * Loads a single event file.
1188
+ *
1189
+ * @param file - The path to the event file to be loaded.
1190
+ * @returns A promise that resolves when the event file has been successfully loaded.
1191
+ */
1192
+ async loadEvent(file) {
1193
+ return this.loadFile(file);
1194
+ }
1195
+ /**
1196
+ * Loads all event files from the specified directory and initializes them.
1197
+ *
1198
+ * @param options - An object containing options for loading events.
1199
+ * @param options.directory - The directory path where event files are located.
1200
+ * @returns A promise that resolves when all events have been loaded.
1201
+ */
1202
+ async loadEvents(options) {
1203
+ const files = this.loadFiles(options.directory);
1204
+ for (const file of files) {
1205
+ await this.loadEvent(file);
1206
+ }
1207
+ new XernerxSuccess(
1208
+ `Loaded events: ${this.client.events.filter((event) => !event.id.startsWith("Xernerx")).map((event) => sharpyy4__default.default(event.id, "txYellow")).join(", ")}`
1209
+ );
1210
+ }
1211
+ };
1212
+ var InhibitorHandler = class extends BaseHandler {
1213
+ static {
1214
+ __name(this, "InhibitorHandler");
1215
+ }
1216
+ constructor(client) {
1217
+ super(client);
1218
+ }
1219
+ async loadInhibitor(file) {
1220
+ return await this.loadFile(file);
1221
+ }
1222
+ async loadInhibitors(options) {
1223
+ const files = this.loadFiles(options.directory);
1224
+ for (const file of files) {
1225
+ await this.loadInhibitor(file);
1226
+ }
1227
+ new XernerxSuccess(`Loaded inhibitors: ${this.client.inhibitors.map((inhibitor) => sharpyy4__default.default(inhibitor.id, "txYellow")).join(", ")}`);
1228
+ }
1229
+ };
1176
1230
  var XernerxClient = class extends discord_js.Client {
1177
1231
  static {
1178
1232
  __name(this, "XernerxClient");
@@ -1225,9 +1279,9 @@ var XernerxClient = class extends discord_js.Client {
1225
1279
  };
1226
1280
  this.commands = { message: new discord_js.Collection(), slash: new discord_js.Collection(), context: new discord_js.Collection() };
1227
1281
  this.events = new discord_js.Collection();
1282
+ this.inhibitors = new discord_js.Collection();
1283
+ this.modules = { eventHandler: new EventHandler(this), commandHandler: new CommandHandler(this), inhibitorHandler: new InhibitorHandler(this) };
1228
1284
  if (this.sharded) this.cluster = new discordHybridSharding.ClusterClient(this);
1229
- this.modules = { eventHandler: new EventHandler(this), commandHandler: new CommandHandler(this) };
1230
- this.modules.eventHandler.loadBuilder(XernerxMessageEvent, XernerxClientReadyEvent);
1231
1285
  process.xernerx = {
1232
1286
  id: this.cluster?.id,
1233
1287
  global: this.settings.global
@@ -1278,9 +1332,9 @@ var XernerxClient = class extends discord_js.Client {
1278
1332
  return await this.login(this.token).catch((error) => new XernerxError(error.message, 1));
1279
1333
  }
1280
1334
  };
1281
- var XernerxMessageCommandBuilder = class extends XernerxBaseBuilder {
1335
+ var MessageCommandBuilder = class extends BaseBuilder {
1282
1336
  static {
1283
- __name(this, "XernerxMessageCommandBuilder");
1337
+ __name(this, "MessageCommandBuilder");
1284
1338
  }
1285
1339
  /**
1286
1340
  * Constructs an instance of XernerxMessageCommandBuilder.
@@ -1361,9 +1415,9 @@ var XernerxMessageCommandBuilder = class extends XernerxBaseBuilder {
1361
1415
  new XernerxWarn(`${this.id} has no exec function, command will not respond.`);
1362
1416
  }
1363
1417
  };
1364
- var XernerxSlashCommandBuilder = class extends XernerxBaseBuilder {
1418
+ var SlashCommandBuilder = class extends BaseBuilder {
1365
1419
  static {
1366
- __name(this, "XernerxSlashCommandBuilder");
1420
+ __name(this, "SlashCommandBuilder");
1367
1421
  }
1368
1422
  constructor(id, options) {
1369
1423
  super(id, options);
@@ -1529,9 +1583,9 @@ var XernerxSlashCommandBuilder = class extends XernerxBaseBuilder {
1529
1583
  }
1530
1584
  }
1531
1585
  };
1532
- var XernerxContextCommandBuilder = class extends XernerxBaseBuilder {
1586
+ var ContextCommandBuilder = class extends BaseBuilder {
1533
1587
  static {
1534
- __name(this, "XernerxContextCommandBuilder");
1588
+ __name(this, "ContextCommandBuilder");
1535
1589
  }
1536
1590
  constructor(id, options) {
1537
1591
  super(id, options);
@@ -1620,17 +1674,28 @@ var XernerxContextCommandBuilder = class extends XernerxBaseBuilder {
1620
1674
  }
1621
1675
  };
1622
1676
 
1677
+ // src/build/InhibitorBuilder.ts
1678
+ var InhibitorBuilder = class extends BaseBuilder {
1679
+ static {
1680
+ __name(this, "InhibitorBuilder");
1681
+ }
1682
+ constructor(id, options) {
1683
+ super(id, options);
1684
+ this.name = options.name;
1685
+ this.filetype = "XernerxInhibitor";
1686
+ }
1687
+ async pre(...args) {
1688
+ }
1689
+ async post(...args) {
1690
+ }
1691
+ };
1692
+
1693
+ exports.ContextCommandBuilder = ContextCommandBuilder;
1694
+ exports.EventBuilder = EventBuilder;
1695
+ exports.InhibitorBuilder = InhibitorBuilder;
1696
+ exports.MessageCommandBuilder = MessageCommandBuilder;
1697
+ exports.SlashCommandBuilder = SlashCommandBuilder;
1623
1698
  exports.XernerxClient = XernerxClient;
1624
- exports.XernerxContextCommandBuilder = XernerxContextCommandBuilder;
1625
- exports.XernerxEventBuilder = XernerxEventBuilder;
1626
- exports.XernerxMessageCommandBuilder = XernerxMessageCommandBuilder;
1627
1699
  exports.XernerxShardClient = XernerxShardClient;
1628
- exports.XernerxSlashCommandBuilder = XernerxSlashCommandBuilder;
1629
- Object.keys(discord_js).forEach(function (k) {
1630
- if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
1631
- enumerable: true,
1632
- get: function () { return discord_js[k]; }
1633
- });
1634
- });
1635
1700
  //# sourceMappingURL=main.cjs.map
1636
1701
  //# sourceMappingURL=main.cjs.map