@mostfeatured/dbi 0.1.28 → 0.1.29

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 (103) hide show
  1. package/.gitattributes +2 -2
  2. package/.hintrc +7 -7
  3. package/.vscode/settings.json +2 -2
  4. package/LICENSE +674 -674
  5. package/dist/DBI.d.ts +4 -4
  6. package/dist/DBI.d.ts.map +1 -1
  7. package/dist/DBI.js.map +1 -1
  8. package/dist/Events.js.map +1 -1
  9. package/dist/index.d.ts +1 -1
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js.map +1 -1
  12. package/dist/methods/handleMessageCommands.js.map +1 -1
  13. package/dist/methods/hookEventListeners.js.map +1 -1
  14. package/dist/methods/hookInteractionListeners.js.map +1 -1
  15. package/dist/methods/publishInteractions.js.map +1 -1
  16. package/dist/types/ApplicationRoleConnectionMetadata.js.map +1 -1
  17. package/dist/types/Builders/ButtonBuilder.js.map +1 -1
  18. package/dist/types/Builders/ChannelSelectMenuBuilder.js.map +1 -1
  19. package/dist/types/Builders/MentionableSelectMenuBuilder.js.map +1 -1
  20. package/dist/types/Builders/ModalBuilder.js.map +1 -1
  21. package/dist/types/Builders/RoleSelectMenuBuilder.js.map +1 -1
  22. package/dist/types/Builders/StringSelectMenuBuilder.js.map +1 -1
  23. package/dist/types/Builders/UserSelectMenuBuilder.js.map +1 -1
  24. package/dist/types/ChatInput/ChatInput.js.map +1 -1
  25. package/dist/types/ChatInput/ChatInputOptions.d.ts +16 -16
  26. package/dist/types/ChatInput/ChatInputOptions.d.ts.map +1 -1
  27. package/dist/types/ChatInput/ChatInputOptions.js.map +1 -1
  28. package/dist/types/Components/Button.js.map +1 -1
  29. package/dist/types/Components/ChannelSelectMenu.js.map +1 -1
  30. package/dist/types/Components/MentionableSelectMenu.js.map +1 -1
  31. package/dist/types/Components/Modal.js.map +1 -1
  32. package/dist/types/Components/RoleSelectMenu.js.map +1 -1
  33. package/dist/types/Components/StringSelectMenu.js.map +1 -1
  34. package/dist/types/Components/UserSelectMenu.js.map +1 -1
  35. package/dist/types/Event.js.map +1 -1
  36. package/dist/types/Interaction.js.map +1 -1
  37. package/dist/types/other/CustomEvent.js.map +1 -1
  38. package/dist/types/other/FakeMessageInteraction.js.map +1 -1
  39. package/dist/types/other/InteractionLocale.js.map +1 -1
  40. package/dist/types/other/Locale.js.map +1 -1
  41. package/dist/types/other/MessageContextMenu.js.map +1 -1
  42. package/dist/types/other/UserContextMenu.js.map +1 -1
  43. package/dist/utils/MemoryStore.js.map +1 -1
  44. package/dist/utils/UtilTypes.js.map +1 -1
  45. package/dist/utils/customId.js.map +1 -1
  46. package/dist/utils/permissions.js.map +1 -1
  47. package/dist/utils/recursiveImport.js.map +1 -1
  48. package/dist/utils/recursiveUnload.js.map +1 -1
  49. package/dist/utils/unloadModule.js.map +1 -1
  50. package/examples/modal/dbi.js +29 -29
  51. package/examples/modal/login.js +14 -14
  52. package/examples/modal/package.json +15 -15
  53. package/examples/modal/publish.js +12 -12
  54. package/examples/modal/src/chatInput.js +37 -37
  55. package/examples/modal/src/components.js +32 -32
  56. package/examples/modal/src/event.js +19 -19
  57. package/examples/modal/src/interactionlocales.js +23 -23
  58. package/examples/modal/src/locales.js +37 -37
  59. package/examples/modal/src/modal.js +27 -27
  60. package/generated/namespaceData.d.ts +14 -14
  61. package/package.json +2 -2
  62. package/readme.md +591 -591
  63. package/src/DBI.ts +1090 -1090
  64. package/src/Events.ts +189 -189
  65. package/src/data/eventMap.json +247 -247
  66. package/src/index.ts +23 -23
  67. package/src/methods/handleMessageCommands.ts +482 -482
  68. package/src/methods/hookEventListeners.ts +118 -118
  69. package/src/methods/hookInteractionListeners.ts +260 -260
  70. package/src/methods/publishInteractions.ts +255 -255
  71. package/src/types/ApplicationRoleConnectionMetadata.ts +19 -19
  72. package/src/types/Builders/ButtonBuilder.ts +52 -52
  73. package/src/types/Builders/ChannelSelectMenuBuilder.ts +52 -52
  74. package/src/types/Builders/MentionableSelectMenuBuilder.ts +52 -52
  75. package/src/types/Builders/ModalBuilder.ts +52 -52
  76. package/src/types/Builders/RoleSelectMenuBuilder.ts +52 -52
  77. package/src/types/Builders/StringSelectMenuBuilder.ts +52 -52
  78. package/src/types/Builders/UserSelectMenuBuilder.ts +52 -52
  79. package/src/types/ChatInput/ChatInput.ts +27 -27
  80. package/src/types/ChatInput/ChatInputOptions.ts +388 -388
  81. package/src/types/Components/Button.ts +38 -38
  82. package/src/types/Components/ChannelSelectMenu.ts +42 -42
  83. package/src/types/Components/MentionableSelectMenu.ts +42 -42
  84. package/src/types/Components/Modal.ts +45 -45
  85. package/src/types/Components/RoleSelectMenu.ts +42 -42
  86. package/src/types/Components/StringSelectMenu.ts +42 -42
  87. package/src/types/Components/UserSelectMenu.ts +42 -42
  88. package/src/types/Event.ts +144 -144
  89. package/src/types/Interaction.ts +96 -96
  90. package/src/types/other/CustomEvent.ts +18 -18
  91. package/src/types/other/FakeMessageInteraction.ts +407 -407
  92. package/src/types/other/InteractionLocale.ts +33 -33
  93. package/src/types/other/Locale.ts +69 -69
  94. package/src/types/other/MessageContextMenu.ts +26 -26
  95. package/src/types/other/UserContextMenu.ts +24 -24
  96. package/src/utils/MemoryStore.ts +27 -27
  97. package/src/utils/UtilTypes.ts +10 -10
  98. package/src/utils/customId.ts +44 -44
  99. package/src/utils/permissions.ts +4 -4
  100. package/src/utils/recursiveImport.ts +22 -22
  101. package/src/utils/recursiveUnload.ts +24 -24
  102. package/src/utils/unloadModule.ts +6 -6
  103. package/tsconfig.json +40 -40
@@ -1,145 +1,145 @@
1
- import Discord from "discord.js";
2
- import { NamespaceEnums, NamespaceData } from "../../generated/namespaceData";
3
- import { DBI, TDBIClientData } from "../DBI";
4
- import { DBILocale } from "./other/Locale";
5
- export interface ClientEvents {
6
- applicationCommandPermissionsUpdate: { data: Discord.ApplicationCommandPermissionsUpdateData };
7
- cacheSweep: { message: string };
8
- channelCreate: { channel: Discord.NonThreadGuildBasedChannel };
9
- channelDelete: { channel: Discord.DMChannel | Discord.NonThreadGuildBasedChannel };
10
- channelPinsUpdate: { channel: Discord.TextBasedChannel, date: Date };
11
- channelUpdate: {
12
- oldChannel: Discord.DMChannel | Discord.NonThreadGuildBasedChannel,
13
- newChannel: Discord.DMChannel | Discord.NonThreadGuildBasedChannel,
14
- };
15
- debug: { message: string };
16
- warn: { message: string };
17
- emojiCreate: { emoji: Discord.GuildEmoji };
18
- emojiDelete: { emoji: Discord.GuildEmoji };
19
- emojiUpdate: { oldEmoji: Discord.GuildEmoji, newEmoji: Discord.GuildEmoji };
20
- error: { error: Error };
21
- guildBanAdd: { ban: Discord.GuildBan };
22
- guildBanRemove: { ban: Discord.GuildBan };
23
- guildCreate: { guild: Discord.Guild };
24
- guildDelete: { guild: Discord.Guild };
25
- guildUnavailable: { guild: Discord.Guild };
26
- guildIntegrationsUpdate: { guild: Discord.Guild };
27
- guildMemberAdd: { member: Discord.GuildMember };
28
- guildMemberAvailable: { member: Discord.GuildMember | Discord.PartialGuildMember };
29
- guildMemberRemove: { member: Discord.GuildMember | Discord.PartialGuildMember };
30
- guildMembersChunk: {
31
- members: Discord.Collection<Discord.Snowflake, Discord.GuildMember>,
32
- guild: Discord.Guild,
33
- data: { count: number; index: number; nonce: string | undefined },
34
- };
35
- guildMemberUpdate: { oldMember: Discord.GuildMember | Discord.PartialGuildMember, newMember: Discord.GuildMember };
36
- guildUpdate: { oldGuild: Discord.Guild, newGuild: Discord.Guild };
37
- inviteCreate: { invite: Discord.Invite };
38
- inviteDelete: { invite: Discord.Invite };
39
- messageCreate: { message: Discord.Message };
40
- messageDelete: { message: Discord.Message | Discord.PartialMessage };
41
- messageReactionRemoveAll: {
42
- message: Discord.Message | Discord.PartialMessage,
43
- reactions: Discord.Collection<string | Discord.Snowflake, Discord.MessageReaction>,
44
- };
45
- messageReactionRemoveEmoji: { reaction: Discord.MessageReaction | Discord.PartialMessageReaction };
46
- messageDeleteBulk: { messages: Discord.Collection<Discord.Snowflake, Discord.Message | Discord.PartialMessage>, channel: Discord.TextBasedChannel };
47
- messageReactionAdd: { reaction: Discord.MessageReaction | Discord.PartialMessageReaction, user: Discord.User | Discord.PartialUser };
48
- messageReactionRemove: { reaction: Discord.MessageReaction | Discord.PartialMessageReaction, user: Discord.User | Discord.PartialUser };
49
- messageUpdate: { oldMessage: Discord.Message | Discord.PartialMessage, newMessage: Discord.Message | Discord.PartialMessage };
50
- presenceUpdate: { oldPresence: Discord.Presence | null, newPresence: Discord.Presence };
51
- ready: { client: Discord.Client<true> };
52
- invalidated: {};
53
- roleCreate: { role: Discord.Role };
54
- roleDelete: { role: Discord.Role };
55
- roleUpdate: { oldRole: Discord.Role, newRole: Discord.Role };
56
- threadCreate: { thread: Discord.AnyThreadChannel, newlyCreated: boolean };
57
- threadDelete: { thread: Discord.AnyThreadChannel };
58
- threadListSync: { threads: Discord.Collection<Discord.Snowflake, Discord.AnyThreadChannel>, guild: Discord.Guild };
59
- threadMemberUpdate: { oldMember: Discord.ThreadMember, newMember: Discord.ThreadMember };
60
- threadMembersUpdate: {
61
- addedMembers: Discord.Collection<Discord.Snowflake, Discord.ThreadMember>,
62
- removedMembers: Discord.Collection<Discord.Snowflake, Discord.ThreadMember | Discord.PartialThreadMember>,
63
- thread: Discord.AnyThreadChannel,
64
- };
65
- threadUpdate: { oldThread: Discord.AnyThreadChannel, newThread: Discord.AnyThreadChannel };
66
- typingStart: { typing: Discord.Typing };
67
- userUpdate: { oldUser: Discord.User | Discord.PartialUser, newUser: Discord.User };
68
- voiceStateUpdate: { oldState: Discord.VoiceState, newState: Discord.VoiceState };
69
- webhookUpdate: { channel: Discord.TextChannel | Discord.NewsChannel | Discord.VoiceChannel };
70
- interactionCreate: { interaction: Discord.Interaction };
71
- shardDisconnect: { closeEvent: Discord.CloseEvent, shardId: number };
72
- shardError: { error: Error, shardId: number };
73
- shardReady: { shardId: number, unavailableGuilds: Set<Discord.Snowflake> | undefined };
74
- shardReconnecting: { shardId: number };
75
- shardResume: { shardId: number, replayedEvents: number };
76
- stageInstanceCreate: { stageInstance: Discord.StageInstance };
77
- stageInstanceUpdate: { oldStageInstance: Discord.StageInstance | null, newStageInstance: Discord.StageInstance };
78
- stageInstanceDelete: { stageInstance: Discord.StageInstance };
79
- stickerCreate: { sticker: Discord.Sticker };
80
- stickerDelete: { sticker: Discord.Sticker };
81
- stickerUpdate: { oldSticker: Discord.Sticker, newSticker: Discord.Sticker };
82
- guildScheduledEventCreate: { guildScheduledEvent: Discord.GuildScheduledEvent };
83
- guildScheduledEventUpdate: {
84
- oldGuildScheduledEvent: Discord.GuildScheduledEvent | null,
85
- newGuildScheduledEvent: Discord.GuildScheduledEvent,
86
- };
87
- guildScheduledEventDelete: { guildScheduledEvent: Discord.GuildScheduledEvent };
88
- guildScheduledEventUserAdd: { guildScheduledEvent: Discord.GuildScheduledEvent, user: Discord.User };
89
- guildScheduledEventUserRemove: { guildScheduledEvent: Discord.GuildScheduledEvent, user: Discord.User };
90
- autoModerationRuleCreate: { autoModerationRule: Discord.AutoModerationRule; };
91
- autoModerationRuleDelete: { autoModerationRule: Discord.AutoModerationRule; };
92
- autoModerationRuleUpdate: { oldAutoModerationRule: Discord.AutoModerationRule | null; newAutoModerationRule: Discord.AutoModerationRule; };
93
- guildAuditLogEntryCreate: { auditLogEntry: Discord.GuildAuditLogsEntry, guild: Discord.Guild };
94
- }
95
-
96
- export type DBIEventCombinations<TNamespace extends NamespaceEnums> = {
97
- [K in keyof (ClientEvents & NamespaceData[TNamespace]["customEvents"])]: {
98
- name: K,
99
- onExecute: (ctx: (ClientEvents & NamespaceData[TNamespace]["customEvents"])[K] & { other: Record<string, any>, locale?: { guild: DBILocale<TNamespace> }, eventName: string, nextClient: TDBIClientData<TNamespace> }) => Promise<any> | any
100
- }
101
- }[keyof (ClientEvents) | keyof NamespaceData[TNamespace]["customEvents"]];
102
-
103
- export type TDBIEventOmitted<TNamespace extends NamespaceEnums> = Omit<DBIEvent<TNamespace>, "type" | "name" | "onExecute" | "client" | "dbi" | "toggle" | "disabled" | "at"> & { disabled?: boolean } & DBIEventCombinations<TNamespace>;
104
-
105
- export type TDBIEventOrder = {
106
- await?: boolean;
107
- delayBefore?: number;
108
- delayAfter?: number;
109
- }
110
-
111
- export class DBIEvent<TNamespace extends NamespaceEnums> {
112
- readonly type: "Event";
113
- other?: Record<string, any>;
114
- triggerType?: "OneByOne" | "OneByOneGlobal" | "Random" | "First";
115
- id?: string;
116
- name: string;
117
- onExecute: (...args: any[]) => any;
118
- ordered?: TDBIEventOrder;
119
- dbi: DBI<TNamespace>;
120
- disabled: boolean = false;
121
- flag?: string;
122
- at?: number;
123
- ttl?: number;
124
- constructor(dbi: DBI<TNamespace>, cfg: TDBIEventOmitted<TNamespace>) {
125
- this.dbi = dbi;
126
- this.type = "Event";
127
- this.id = cfg.id;
128
- this.other = cfg.other;
129
- this.name = cfg.name as any;
130
- this.onExecute = cfg.onExecute;
131
- this.ordered = cfg.ordered;
132
- this.triggerType = cfg.triggerType ?? "OneByOneGlobal";
133
- this.disabled ??= cfg.disabled;
134
- this.flag = cfg.flag;
135
- this.at = Date.now();
136
- this.ttl = cfg.ttl;
137
- }
138
-
139
- toggle(disabled?: boolean) {
140
- if (disabled === undefined) this.disabled = !this.disabled;
141
- else this.disabled = disabled;
142
- return this;
143
- }
144
-
1
+ import Discord from "discord.js";
2
+ import { NamespaceEnums, NamespaceData } from "../../generated/namespaceData";
3
+ import { DBI, TDBIClientData } from "../DBI";
4
+ import { DBILocale } from "./other/Locale";
5
+ export interface ClientEvents {
6
+ applicationCommandPermissionsUpdate: { data: Discord.ApplicationCommandPermissionsUpdateData };
7
+ cacheSweep: { message: string };
8
+ channelCreate: { channel: Discord.NonThreadGuildBasedChannel };
9
+ channelDelete: { channel: Discord.DMChannel | Discord.NonThreadGuildBasedChannel };
10
+ channelPinsUpdate: { channel: Discord.TextBasedChannel, date: Date };
11
+ channelUpdate: {
12
+ oldChannel: Discord.DMChannel | Discord.NonThreadGuildBasedChannel,
13
+ newChannel: Discord.DMChannel | Discord.NonThreadGuildBasedChannel,
14
+ };
15
+ debug: { message: string };
16
+ warn: { message: string };
17
+ emojiCreate: { emoji: Discord.GuildEmoji };
18
+ emojiDelete: { emoji: Discord.GuildEmoji };
19
+ emojiUpdate: { oldEmoji: Discord.GuildEmoji, newEmoji: Discord.GuildEmoji };
20
+ error: { error: Error };
21
+ guildBanAdd: { ban: Discord.GuildBan };
22
+ guildBanRemove: { ban: Discord.GuildBan };
23
+ guildCreate: { guild: Discord.Guild };
24
+ guildDelete: { guild: Discord.Guild };
25
+ guildUnavailable: { guild: Discord.Guild };
26
+ guildIntegrationsUpdate: { guild: Discord.Guild };
27
+ guildMemberAdd: { member: Discord.GuildMember };
28
+ guildMemberAvailable: { member: Discord.GuildMember | Discord.PartialGuildMember };
29
+ guildMemberRemove: { member: Discord.GuildMember | Discord.PartialGuildMember };
30
+ guildMembersChunk: {
31
+ members: Discord.Collection<Discord.Snowflake, Discord.GuildMember>,
32
+ guild: Discord.Guild,
33
+ data: { count: number; index: number; nonce: string | undefined },
34
+ };
35
+ guildMemberUpdate: { oldMember: Discord.GuildMember | Discord.PartialGuildMember, newMember: Discord.GuildMember };
36
+ guildUpdate: { oldGuild: Discord.Guild, newGuild: Discord.Guild };
37
+ inviteCreate: { invite: Discord.Invite };
38
+ inviteDelete: { invite: Discord.Invite };
39
+ messageCreate: { message: Discord.Message };
40
+ messageDelete: { message: Discord.Message | Discord.PartialMessage };
41
+ messageReactionRemoveAll: {
42
+ message: Discord.Message | Discord.PartialMessage,
43
+ reactions: Discord.Collection<string | Discord.Snowflake, Discord.MessageReaction>,
44
+ };
45
+ messageReactionRemoveEmoji: { reaction: Discord.MessageReaction | Discord.PartialMessageReaction };
46
+ messageDeleteBulk: { messages: Discord.Collection<Discord.Snowflake, Discord.Message | Discord.PartialMessage>, channel: Discord.TextBasedChannel };
47
+ messageReactionAdd: { reaction: Discord.MessageReaction | Discord.PartialMessageReaction, user: Discord.User | Discord.PartialUser };
48
+ messageReactionRemove: { reaction: Discord.MessageReaction | Discord.PartialMessageReaction, user: Discord.User | Discord.PartialUser };
49
+ messageUpdate: { oldMessage: Discord.Message | Discord.PartialMessage, newMessage: Discord.Message | Discord.PartialMessage };
50
+ presenceUpdate: { oldPresence: Discord.Presence | null, newPresence: Discord.Presence };
51
+ ready: { client: Discord.Client<true> };
52
+ invalidated: {};
53
+ roleCreate: { role: Discord.Role };
54
+ roleDelete: { role: Discord.Role };
55
+ roleUpdate: { oldRole: Discord.Role, newRole: Discord.Role };
56
+ threadCreate: { thread: Discord.AnyThreadChannel, newlyCreated: boolean };
57
+ threadDelete: { thread: Discord.AnyThreadChannel };
58
+ threadListSync: { threads: Discord.Collection<Discord.Snowflake, Discord.AnyThreadChannel>, guild: Discord.Guild };
59
+ threadMemberUpdate: { oldMember: Discord.ThreadMember, newMember: Discord.ThreadMember };
60
+ threadMembersUpdate: {
61
+ addedMembers: Discord.Collection<Discord.Snowflake, Discord.ThreadMember>,
62
+ removedMembers: Discord.Collection<Discord.Snowflake, Discord.ThreadMember | Discord.PartialThreadMember>,
63
+ thread: Discord.AnyThreadChannel,
64
+ };
65
+ threadUpdate: { oldThread: Discord.AnyThreadChannel, newThread: Discord.AnyThreadChannel };
66
+ typingStart: { typing: Discord.Typing };
67
+ userUpdate: { oldUser: Discord.User | Discord.PartialUser, newUser: Discord.User };
68
+ voiceStateUpdate: { oldState: Discord.VoiceState, newState: Discord.VoiceState };
69
+ webhookUpdate: { channel: Discord.TextChannel | Discord.NewsChannel | Discord.VoiceChannel };
70
+ interactionCreate: { interaction: Discord.Interaction };
71
+ shardDisconnect: { closeEvent: Discord.CloseEvent, shardId: number };
72
+ shardError: { error: Error, shardId: number };
73
+ shardReady: { shardId: number, unavailableGuilds: Set<Discord.Snowflake> | undefined };
74
+ shardReconnecting: { shardId: number };
75
+ shardResume: { shardId: number, replayedEvents: number };
76
+ stageInstanceCreate: { stageInstance: Discord.StageInstance };
77
+ stageInstanceUpdate: { oldStageInstance: Discord.StageInstance | null, newStageInstance: Discord.StageInstance };
78
+ stageInstanceDelete: { stageInstance: Discord.StageInstance };
79
+ stickerCreate: { sticker: Discord.Sticker };
80
+ stickerDelete: { sticker: Discord.Sticker };
81
+ stickerUpdate: { oldSticker: Discord.Sticker, newSticker: Discord.Sticker };
82
+ guildScheduledEventCreate: { guildScheduledEvent: Discord.GuildScheduledEvent };
83
+ guildScheduledEventUpdate: {
84
+ oldGuildScheduledEvent: Discord.GuildScheduledEvent | null,
85
+ newGuildScheduledEvent: Discord.GuildScheduledEvent,
86
+ };
87
+ guildScheduledEventDelete: { guildScheduledEvent: Discord.GuildScheduledEvent };
88
+ guildScheduledEventUserAdd: { guildScheduledEvent: Discord.GuildScheduledEvent, user: Discord.User };
89
+ guildScheduledEventUserRemove: { guildScheduledEvent: Discord.GuildScheduledEvent, user: Discord.User };
90
+ autoModerationRuleCreate: { autoModerationRule: Discord.AutoModerationRule; };
91
+ autoModerationRuleDelete: { autoModerationRule: Discord.AutoModerationRule; };
92
+ autoModerationRuleUpdate: { oldAutoModerationRule: Discord.AutoModerationRule | null; newAutoModerationRule: Discord.AutoModerationRule; };
93
+ guildAuditLogEntryCreate: { auditLogEntry: Discord.GuildAuditLogsEntry, guild: Discord.Guild };
94
+ }
95
+
96
+ export type DBIEventCombinations<TNamespace extends NamespaceEnums> = {
97
+ [K in keyof (ClientEvents & NamespaceData[TNamespace]["customEvents"])]: {
98
+ name: K,
99
+ onExecute: (ctx: (ClientEvents & NamespaceData[TNamespace]["customEvents"])[K] & { other: Record<string, any>, locale?: { guild: DBILocale<TNamespace> }, eventName: string, nextClient: TDBIClientData<TNamespace> }) => Promise<any> | any
100
+ }
101
+ }[keyof (ClientEvents) | keyof NamespaceData[TNamespace]["customEvents"]];
102
+
103
+ export type TDBIEventOmitted<TNamespace extends NamespaceEnums> = Omit<DBIEvent<TNamespace>, "type" | "name" | "onExecute" | "client" | "dbi" | "toggle" | "disabled" | "at"> & { disabled?: boolean } & DBIEventCombinations<TNamespace>;
104
+
105
+ export type TDBIEventOrder = {
106
+ await?: boolean;
107
+ delayBefore?: number;
108
+ delayAfter?: number;
109
+ }
110
+
111
+ export class DBIEvent<TNamespace extends NamespaceEnums> {
112
+ readonly type: "Event";
113
+ other?: Record<string, any>;
114
+ triggerType?: "OneByOne" | "OneByOneGlobal" | "Random" | "First";
115
+ id?: string;
116
+ name: string;
117
+ onExecute: (...args: any[]) => any;
118
+ ordered?: TDBIEventOrder;
119
+ dbi: DBI<TNamespace>;
120
+ disabled: boolean = false;
121
+ flag?: string;
122
+ at?: number;
123
+ ttl?: number;
124
+ constructor(dbi: DBI<TNamespace>, cfg: TDBIEventOmitted<TNamespace>) {
125
+ this.dbi = dbi;
126
+ this.type = "Event";
127
+ this.id = cfg.id;
128
+ this.other = cfg.other;
129
+ this.name = cfg.name as any;
130
+ this.onExecute = cfg.onExecute;
131
+ this.ordered = cfg.ordered;
132
+ this.triggerType = cfg.triggerType ?? "OneByOneGlobal";
133
+ this.disabled ??= cfg.disabled;
134
+ this.flag = cfg.flag;
135
+ this.at = Date.now();
136
+ this.ttl = cfg.ttl;
137
+ }
138
+
139
+ toggle(disabled?: boolean) {
140
+ if (disabled === undefined) this.disabled = !this.disabled;
141
+ else this.disabled = disabled;
142
+ return this;
143
+ }
144
+
145
145
  }
@@ -1,97 +1,97 @@
1
- import Discord from "discord.js";
2
- import { NamespaceEnums, NamespaceData } from "../../generated/namespaceData";
3
- import { DBI } from "../DBI";
4
- import { DBIButton } from "./Components/Button";
5
- import { DBIChatInput } from "./ChatInput/ChatInput";
6
- import { DBILocale } from "./other/Locale";
7
- import { DBIMessageContextMenu } from "./other/MessageContextMenu";
8
- import { DBIModal } from "./Components/Modal";
9
- import { DBIStringSelectMenu } from "./Components/StringSelectMenu";
10
- import { DBIUserContextMenu } from "./other/UserContextMenu";
11
-
12
- export type TDBIInteractions<TNamespace extends NamespaceEnums> = DBIChatInput<TNamespace> | DBIButton<TNamespace> | DBIStringSelectMenu<TNamespace> | DBIMessageContextMenu<TNamespace> | DBIUserContextMenu<TNamespace> | DBIModal<TNamespace>;
13
-
14
- export interface IDBIBaseExecuteCtx<TNamespace extends NamespaceEnums> {
15
- interaction:
16
- | Discord.ChatInputCommandInteraction
17
- | Discord.UserContextMenuCommandInteraction
18
- | Discord.MessageContextMenuCommandInteraction
19
- | Discord.ModalSubmitInteraction
20
- | Discord.AutocompleteInteraction
21
- | Discord.AnySelectMenuInteraction
22
- | Discord.ButtonInteraction;
23
- locale: {
24
- user: DBILocale<TNamespace>,
25
- guild?: DBILocale<TNamespace>
26
- }
27
- dbi: DBI<TNamespace>;
28
- dbiInteraction: TDBIInteractions<TNamespace>;
29
- setRateLimit(type: TDBIRateLimitTypes, duration: number): Promise<any>;
30
- other: Record<string, any>;
31
- clientNamespace: NamespaceData[TNamespace]["clientNamespaces"];
32
- }
33
-
34
- export type TDBIReferencedData = ({ [key: string]: any, $ref: string, $unRef(): boolean } | string | number);
35
-
36
- export type TDBIInteractionTypes =
37
- | "ChatInput"
38
- | "UserContextMenu"
39
- | "MessageContextMenu"
40
- | "Modal"
41
- | "Autocomplete"
42
- | "StringSelectMenu"
43
- | "UserSelectMenu"
44
- | "ChannelSelectMenu"
45
- | "MentionableSelectMenu"
46
- | "RoleSelectMenu"
47
- | "Button";
48
-
49
- export type TDBIRateLimitTypes =
50
- | "User"
51
- | "Channel"
52
- | "Guild"
53
- | "Member"
54
- | "Message";
55
-
56
-
57
- export type DBIRateLimit = {
58
- type: TDBIRateLimitTypes;
59
- /**
60
- * Duration in milliseconds.
61
- */
62
- duration: number;
63
- }
64
-
65
- export class DBIBaseInteraction<TNamespace extends NamespaceEnums> {
66
- constructor(dbi: DBI<TNamespace>, cfg: Omit<DBIBaseInteraction<TNamespace>, "dbi" | "at">) {
67
- this.dbi = dbi;
68
- this.name = cfg.name;
69
- this.description = cfg.description;
70
- this.onExecute = cfg.onExecute;
71
- this.type = cfg.type;
72
- this.options = cfg.options;
73
- this.other = cfg.other;
74
- this.publish = cfg.publish ?? dbi.data.clients.first()?.namespace;
75
- this.rateLimits = cfg.rateLimits ?? [];
76
- this.flag = cfg.flag;
77
- this.at = Date.now();
78
- this.ttl = cfg.ttl;
79
- }
80
-
81
- publish?: NamespaceData[TNamespace]["clientNamespaces"];
82
- dbi: DBI<TNamespace>;
83
- name: string;
84
- description: string;
85
- readonly type: TDBIInteractionTypes;
86
- options?: any | any[];
87
- other?: Record<string, any> & { messageCommand?: { aliases?: string[] } };
88
- rateLimits?: DBIRateLimit[];
89
- flag?: string;
90
- ttl?: number;
91
- at?: number;
92
- toJSON(overrides: any): any { }
93
-
94
- onExecute(ctx: IDBIBaseExecuteCtx<TNamespace>): Promise<void> | void {
95
-
96
- }
1
+ import Discord from "discord.js";
2
+ import { NamespaceEnums, NamespaceData } from "../../generated/namespaceData";
3
+ import { DBI } from "../DBI";
4
+ import { DBIButton } from "./Components/Button";
5
+ import { DBIChatInput } from "./ChatInput/ChatInput";
6
+ import { DBILocale } from "./other/Locale";
7
+ import { DBIMessageContextMenu } from "./other/MessageContextMenu";
8
+ import { DBIModal } from "./Components/Modal";
9
+ import { DBIStringSelectMenu } from "./Components/StringSelectMenu";
10
+ import { DBIUserContextMenu } from "./other/UserContextMenu";
11
+
12
+ export type TDBIInteractions<TNamespace extends NamespaceEnums> = DBIChatInput<TNamespace> | DBIButton<TNamespace> | DBIStringSelectMenu<TNamespace> | DBIMessageContextMenu<TNamespace> | DBIUserContextMenu<TNamespace> | DBIModal<TNamespace>;
13
+
14
+ export interface IDBIBaseExecuteCtx<TNamespace extends NamespaceEnums> {
15
+ interaction:
16
+ | Discord.ChatInputCommandInteraction
17
+ | Discord.UserContextMenuCommandInteraction
18
+ | Discord.MessageContextMenuCommandInteraction
19
+ | Discord.ModalSubmitInteraction
20
+ | Discord.AutocompleteInteraction
21
+ | Discord.AnySelectMenuInteraction
22
+ | Discord.ButtonInteraction;
23
+ locale: {
24
+ user: DBILocale<TNamespace>,
25
+ guild?: DBILocale<TNamespace>
26
+ }
27
+ dbi: DBI<TNamespace>;
28
+ dbiInteraction: TDBIInteractions<TNamespace>;
29
+ setRateLimit(type: TDBIRateLimitTypes, duration: number): Promise<any>;
30
+ other: Record<string, any>;
31
+ clientNamespace: NamespaceData[TNamespace]["clientNamespaces"];
32
+ }
33
+
34
+ export type TDBIReferencedData = ({ [key: string]: any, $ref: string, $unRef(): boolean } | string | number);
35
+
36
+ export type TDBIInteractionTypes =
37
+ | "ChatInput"
38
+ | "UserContextMenu"
39
+ | "MessageContextMenu"
40
+ | "Modal"
41
+ | "Autocomplete"
42
+ | "StringSelectMenu"
43
+ | "UserSelectMenu"
44
+ | "ChannelSelectMenu"
45
+ | "MentionableSelectMenu"
46
+ | "RoleSelectMenu"
47
+ | "Button";
48
+
49
+ export type TDBIRateLimitTypes =
50
+ | "User"
51
+ | "Channel"
52
+ | "Guild"
53
+ | "Member"
54
+ | "Message";
55
+
56
+
57
+ export type DBIRateLimit = {
58
+ type: TDBIRateLimitTypes;
59
+ /**
60
+ * Duration in milliseconds.
61
+ */
62
+ duration: number;
63
+ }
64
+
65
+ export class DBIBaseInteraction<TNamespace extends NamespaceEnums> {
66
+ constructor(dbi: DBI<TNamespace>, cfg: Omit<DBIBaseInteraction<TNamespace>, "dbi" | "at">) {
67
+ this.dbi = dbi;
68
+ this.name = cfg.name;
69
+ this.description = cfg.description;
70
+ this.onExecute = cfg.onExecute;
71
+ this.type = cfg.type;
72
+ this.options = cfg.options;
73
+ this.other = cfg.other;
74
+ this.publish = cfg.publish ?? dbi.data.clients.first()?.namespace;
75
+ this.rateLimits = cfg.rateLimits ?? [];
76
+ this.flag = cfg.flag;
77
+ this.at = Date.now();
78
+ this.ttl = cfg.ttl;
79
+ }
80
+
81
+ publish?: NamespaceData[TNamespace]["clientNamespaces"];
82
+ dbi: DBI<TNamespace>;
83
+ name: string;
84
+ description: string;
85
+ readonly type: TDBIInteractionTypes;
86
+ options?: any | any[];
87
+ other?: Record<string, any> & { messageCommand?: { aliases?: string[] } };
88
+ rateLimits?: DBIRateLimit[];
89
+ flag?: string;
90
+ ttl?: number;
91
+ at?: number;
92
+ toJSON(overrides: any): any { }
93
+
94
+ onExecute(ctx: IDBIBaseExecuteCtx<TNamespace>): Promise<void> | void {
95
+
96
+ }
97
97
  }
@@ -1,19 +1,19 @@
1
- import { NamespaceEnums, NamespaceData } from "../../../generated/namespaceData";
2
- import { DBI } from "../../DBI";
3
-
4
- export type TDBICustomEventOmitted<TNamespace extends NamespaceEnums, CEventName extends keyof NamespaceData[TNamespace]["customEvents"] = keyof NamespaceData[TNamespace]["customEvents"]> = Omit<DBICustomEvent<TNamespace, CEventName>, "type" | "dbi" | "toJSON" | "trigger">;
5
- export class DBICustomEvent<TNamespace extends NamespaceEnums, CEventName extends keyof NamespaceData[TNamespace]["customEvents"] = keyof NamespaceData[TNamespace]["customEvents"]> {
6
- dbi: DBI<TNamespace>;
7
- name: CEventName;
8
- map: {[key: string]: string};
9
- type: string;
10
- trigger(args: NamespaceData[TNamespace]["customEvents"][CEventName]) {
11
- return this.dbi.data.clients.first().client.emit(this.name as string, { ...args, _DIRECT_: true});
12
- }
13
- constructor(dbi: DBI<TNamespace>, cfg: TDBICustomEventOmitted<TNamespace, CEventName>) {
14
- this.dbi = dbi;
15
- this.name = cfg.name;
16
- this.map = cfg.map;
17
- this.type = "CustomEvent";
18
- }
1
+ import { NamespaceEnums, NamespaceData } from "../../../generated/namespaceData";
2
+ import { DBI } from "../../DBI";
3
+
4
+ export type TDBICustomEventOmitted<TNamespace extends NamespaceEnums, CEventName extends keyof NamespaceData[TNamespace]["customEvents"] = keyof NamespaceData[TNamespace]["customEvents"]> = Omit<DBICustomEvent<TNamespace, CEventName>, "type" | "dbi" | "toJSON" | "trigger">;
5
+ export class DBICustomEvent<TNamespace extends NamespaceEnums, CEventName extends keyof NamespaceData[TNamespace]["customEvents"] = keyof NamespaceData[TNamespace]["customEvents"]> {
6
+ dbi: DBI<TNamespace>;
7
+ name: CEventName;
8
+ map: {[key: string]: string};
9
+ type: string;
10
+ trigger(args: NamespaceData[TNamespace]["customEvents"][CEventName]) {
11
+ return this.dbi.data.clients.first().client.emit(this.name as string, { ...args, _DIRECT_: true});
12
+ }
13
+ constructor(dbi: DBI<TNamespace>, cfg: TDBICustomEventOmitted<TNamespace, CEventName>) {
14
+ this.dbi = dbi;
15
+ this.name = cfg.name;
16
+ this.map = cfg.map;
17
+ this.type = "CustomEvent";
18
+ }
19
19
  }