@mostfeatured/dbi 0.1.29 → 0.1.31
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/.gitattributes +2 -2
- package/.hintrc +7 -7
- package/.vscode/settings.json +2 -2
- package/LICENSE +674 -674
- package/dist/DBI.js.map +1 -1
- package/dist/Events.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/methods/handleMessageCommands.js +1 -1
- package/dist/methods/handleMessageCommands.js.map +1 -1
- package/dist/methods/hookEventListeners.js.map +1 -1
- package/dist/methods/hookInteractionListeners.js.map +1 -1
- package/dist/methods/publishInteractions.js.map +1 -1
- package/dist/types/ApplicationRoleConnectionMetadata.js.map +1 -1
- package/dist/types/Builders/ButtonBuilder.js.map +1 -1
- package/dist/types/Builders/ChannelSelectMenuBuilder.js.map +1 -1
- package/dist/types/Builders/MentionableSelectMenuBuilder.js.map +1 -1
- package/dist/types/Builders/ModalBuilder.js.map +1 -1
- package/dist/types/Builders/RoleSelectMenuBuilder.js.map +1 -1
- package/dist/types/Builders/StringSelectMenuBuilder.js.map +1 -1
- package/dist/types/Builders/UserSelectMenuBuilder.js.map +1 -1
- package/dist/types/ChatInput/ChatInput.js.map +1 -1
- package/dist/types/ChatInput/ChatInputOptions.d.ts +16 -16
- package/dist/types/ChatInput/ChatInputOptions.d.ts.map +1 -1
- package/dist/types/ChatInput/ChatInputOptions.js.map +1 -1
- package/dist/types/Components/Button.js.map +1 -1
- package/dist/types/Components/ChannelSelectMenu.js.map +1 -1
- package/dist/types/Components/MentionableSelectMenu.js.map +1 -1
- package/dist/types/Components/Modal.js.map +1 -1
- package/dist/types/Components/RoleSelectMenu.js.map +1 -1
- package/dist/types/Components/StringSelectMenu.js.map +1 -1
- package/dist/types/Components/UserSelectMenu.js.map +1 -1
- package/dist/types/Event.js.map +1 -1
- package/dist/types/Interaction.d.ts +1 -0
- package/dist/types/Interaction.d.ts.map +1 -1
- package/dist/types/Interaction.js.map +1 -1
- package/dist/types/other/CustomEvent.js.map +1 -1
- package/dist/types/other/FakeMessageInteraction.js.map +1 -1
- package/dist/types/other/InteractionLocale.js.map +1 -1
- package/dist/types/other/Locale.js.map +1 -1
- package/dist/types/other/MessageContextMenu.js.map +1 -1
- package/dist/types/other/UserContextMenu.js.map +1 -1
- package/dist/utils/MemoryStore.js.map +1 -1
- package/dist/utils/UtilTypes.js.map +1 -1
- package/dist/utils/customId.js.map +1 -1
- package/dist/utils/permissions.js.map +1 -1
- package/dist/utils/recursiveImport.js.map +1 -1
- package/dist/utils/recursiveUnload.js.map +1 -1
- package/dist/utils/unloadModule.js.map +1 -1
- package/examples/modal/dbi.js +29 -29
- package/examples/modal/login.js +14 -14
- package/examples/modal/package.json +15 -15
- package/examples/modal/publish.js +12 -12
- package/examples/modal/src/chatInput.js +37 -37
- package/examples/modal/src/components.js +32 -32
- package/examples/modal/src/event.js +19 -19
- package/examples/modal/src/interactionlocales.js +23 -23
- package/examples/modal/src/locales.js +37 -37
- package/examples/modal/src/modal.js +27 -27
- package/generated/namespaceData.d.ts +14 -14
- package/package.json +45 -45
- package/readme.md +591 -591
- package/src/DBI.ts +1090 -1090
- package/src/Events.ts +189 -189
- package/src/data/eventMap.json +247 -247
- package/src/index.ts +23 -23
- package/src/methods/handleMessageCommands.ts +482 -482
- package/src/methods/hookEventListeners.ts +118 -118
- package/src/methods/hookInteractionListeners.ts +260 -260
- package/src/methods/publishInteractions.ts +255 -255
- package/src/types/ApplicationRoleConnectionMetadata.ts +19 -19
- package/src/types/Builders/ButtonBuilder.ts +52 -52
- package/src/types/Builders/ChannelSelectMenuBuilder.ts +52 -52
- package/src/types/Builders/MentionableSelectMenuBuilder.ts +52 -52
- package/src/types/Builders/ModalBuilder.ts +52 -52
- package/src/types/Builders/RoleSelectMenuBuilder.ts +52 -52
- package/src/types/Builders/StringSelectMenuBuilder.ts +52 -52
- package/src/types/Builders/UserSelectMenuBuilder.ts +52 -52
- package/src/types/ChatInput/ChatInput.ts +27 -27
- package/src/types/ChatInput/ChatInputOptions.ts +388 -388
- package/src/types/Components/Button.ts +38 -38
- package/src/types/Components/ChannelSelectMenu.ts +42 -42
- package/src/types/Components/MentionableSelectMenu.ts +42 -42
- package/src/types/Components/Modal.ts +45 -45
- package/src/types/Components/RoleSelectMenu.ts +42 -42
- package/src/types/Components/StringSelectMenu.ts +42 -42
- package/src/types/Components/UserSelectMenu.ts +42 -42
- package/src/types/Event.ts +144 -144
- package/src/types/Interaction.ts +96 -96
- package/src/types/other/CustomEvent.ts +18 -18
- package/src/types/other/FakeMessageInteraction.ts +407 -407
- package/src/types/other/InteractionLocale.ts +33 -33
- package/src/types/other/Locale.ts +69 -69
- package/src/types/other/MessageContextMenu.ts +26 -26
- package/src/types/other/UserContextMenu.ts +24 -24
- package/src/utils/MemoryStore.ts +27 -27
- package/src/utils/UtilTypes.ts +10 -10
- package/src/utils/customId.ts +44 -44
- package/src/utils/permissions.ts +4 -4
- package/src/utils/recursiveImport.ts +22 -22
- package/src/utils/recursiveUnload.ts +24 -24
- package/src/utils/unloadModule.ts +6 -6
- package/tsconfig.json +40 -40
package/src/types/Event.ts
CHANGED
|
@@ -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
|
}
|
package/src/types/Interaction.ts
CHANGED
|
@@ -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[], ignore?: boolean } };
|
|
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
|
}
|