@mostfeatured/dbi 0.1.27 → 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.
- package/.gitattributes +2 -2
- package/.hintrc +7 -7
- package/.vscode/settings.json +2 -2
- package/LICENSE +674 -674
- package/dist/DBI.d.ts +4 -4
- package/dist/DBI.d.ts.map +1 -1
- package/dist/DBI.js.map +1 -1
- package/dist/Events.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +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.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 +2 -2
- 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
|
@@ -1,119 +1,119 @@
|
|
|
1
|
-
import { Guild } from "discord.js";
|
|
2
|
-
import { NamespaceEnums } from "../../generated/namespaceData";
|
|
3
|
-
import { DBI } from "../DBI";
|
|
4
|
-
import { TDBIEventOrder } from "../types/Event";
|
|
5
|
-
|
|
6
|
-
export function hookEventListeners(dbi: DBI<NamespaceEnums>): () => any {
|
|
7
|
-
|
|
8
|
-
function getClientByEvent(value) {
|
|
9
|
-
return value.triggerType == "OneByOne"
|
|
10
|
-
? dbi.data.clients.next(`Event:${value.name}`)
|
|
11
|
-
: value.triggerType == "OneByOneGlobal"
|
|
12
|
-
? dbi.data.clients.next("Event")
|
|
13
|
-
: value.triggerType == "Random"
|
|
14
|
-
? dbi.data.clients.random()
|
|
15
|
-
: dbi.data.clients.first();
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
async function handle(eventName: string, ...args: any[]) {
|
|
19
|
-
if (!dbi.data.eventMap[eventName]) return;
|
|
20
|
-
|
|
21
|
-
let isDirect = args?.[0]?._DIRECT_ ?? false;
|
|
22
|
-
if (isDirect) delete args[0]._DIRECT_;
|
|
23
|
-
|
|
24
|
-
let ctxArgs =
|
|
25
|
-
isDirect
|
|
26
|
-
? args[0]
|
|
27
|
-
: (dbi.data.eventMap[eventName] as any).reduce((all, current, index) => {
|
|
28
|
-
all[current] = args[index];
|
|
29
|
-
return all;
|
|
30
|
-
}, {});
|
|
31
|
-
|
|
32
|
-
let other = {};
|
|
33
|
-
|
|
34
|
-
let guildLocaleName = args.reduce((all, current) => {
|
|
35
|
-
if (current?.guild?.id) return current?.guild?.preferredLocale?.split?.("-")?.[0];
|
|
36
|
-
if (current instanceof Guild) return current?.preferredLocale?.split?.("-")?.[0];
|
|
37
|
-
return all;
|
|
38
|
-
}, null);
|
|
39
|
-
let guildLocale = guildLocaleName ? (dbi.data.locales.has(guildLocaleName) ? dbi.data.locales.get(guildLocaleName) : dbi.data.locales.get(dbi.config.defaults.locale.name)) : null;
|
|
40
|
-
|
|
41
|
-
let locale = guildLocale ? { guild: guildLocale } : null;
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
let awaitedEvents = [];
|
|
45
|
-
let unAwaitedEvents = [];
|
|
46
|
-
for (let i = 0; i < dbi.data.events.size; i++) {
|
|
47
|
-
const value = dbi.data.events.at(i);
|
|
48
|
-
if (value.name == eventName) {
|
|
49
|
-
if (value.ordered?.await) {
|
|
50
|
-
awaitedEvents.push(value);
|
|
51
|
-
} else {
|
|
52
|
-
unAwaitedEvents.push(value);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
let arg = { eventName, ...ctxArgs, other, locale };
|
|
58
|
-
|
|
59
|
-
for (let i = 0; i < unAwaitedEvents.length; i++) {
|
|
60
|
-
const value = unAwaitedEvents[i];
|
|
61
|
-
|
|
62
|
-
if (value?.disabled) continue;
|
|
63
|
-
|
|
64
|
-
if (value.ordered?.delayBefore) await new Promise(resolve => setTimeout(resolve, value.ordered.delayBefore));
|
|
65
|
-
|
|
66
|
-
if (!(await dbi.events.trigger("beforeEvent", { ...arg, dbiEvent: value }))) continue;
|
|
67
|
-
|
|
68
|
-
if (dbi.config.strict) {
|
|
69
|
-
value.onExecute({ ...arg, nextClient: getClientByEvent(value) });
|
|
70
|
-
} else {
|
|
71
|
-
try {
|
|
72
|
-
value.onExecute({ ...arg, nextClient: getClientByEvent(value) })?.catch(error => {
|
|
73
|
-
dbi.events.trigger("eventError", { ...arg, error, dbiEvent: value });
|
|
74
|
-
});
|
|
75
|
-
} catch (error) {
|
|
76
|
-
dbi.events.trigger("eventError", { ...arg, error, dbiEvent: value });
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
if (value.ordered?.delayAfter) await new Promise(resolve => setTimeout(resolve, value.ordered.delayAfter));
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
for (let i = 0; i < awaitedEvents.length; i++) {
|
|
83
|
-
const value = awaitedEvents[i];
|
|
84
|
-
|
|
85
|
-
if (value?.disabled) continue;
|
|
86
|
-
|
|
87
|
-
if (!(await dbi.events.trigger("beforeEvent", { ...arg, dbiEvent: value }))) continue;
|
|
88
|
-
|
|
89
|
-
if (value.ordered?.delayBefore) await new Promise(resolve => setTimeout(resolve, value.ordered.delayBefore));
|
|
90
|
-
|
|
91
|
-
if (dbi.config.strict) {
|
|
92
|
-
await value.onExecute({ ...arg, nextClient: getClientByEvent(value) });
|
|
93
|
-
} else {
|
|
94
|
-
try {
|
|
95
|
-
await value.onExecute({ ...arg, nextClient: getClientByEvent(value) })?.catch(error => {
|
|
96
|
-
dbi.events.trigger("eventError", { ...arg, error, dbiEvent: value });
|
|
97
|
-
});
|
|
98
|
-
} catch (error) {
|
|
99
|
-
await dbi.events.trigger("eventError", { ...arg, error, dbiEvent: value });
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
if (value.ordered?.delayAfter) await new Promise(resolve => setTimeout(resolve, value.ordered.delayAfter));
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
dbi.events.trigger("afterEvent", arg)
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
let firstClient = dbi.data.clients.first().client;
|
|
109
|
-
let originalEmit = firstClient.emit;
|
|
110
|
-
|
|
111
|
-
firstClient.emit = function (eventName, ...args) {
|
|
112
|
-
handle(eventName, ...args);
|
|
113
|
-
return originalEmit.call(this, eventName, ...args);
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
return () => {
|
|
117
|
-
firstClient.emit = originalEmit;
|
|
118
|
-
}
|
|
1
|
+
import { Guild } from "discord.js";
|
|
2
|
+
import { NamespaceEnums } from "../../generated/namespaceData";
|
|
3
|
+
import { DBI } from "../DBI";
|
|
4
|
+
import { TDBIEventOrder } from "../types/Event";
|
|
5
|
+
|
|
6
|
+
export function hookEventListeners(dbi: DBI<NamespaceEnums>): () => any {
|
|
7
|
+
|
|
8
|
+
function getClientByEvent(value) {
|
|
9
|
+
return value.triggerType == "OneByOne"
|
|
10
|
+
? dbi.data.clients.next(`Event:${value.name}`)
|
|
11
|
+
: value.triggerType == "OneByOneGlobal"
|
|
12
|
+
? dbi.data.clients.next("Event")
|
|
13
|
+
: value.triggerType == "Random"
|
|
14
|
+
? dbi.data.clients.random()
|
|
15
|
+
: dbi.data.clients.first();
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
async function handle(eventName: string, ...args: any[]) {
|
|
19
|
+
if (!dbi.data.eventMap[eventName]) return;
|
|
20
|
+
|
|
21
|
+
let isDirect = args?.[0]?._DIRECT_ ?? false;
|
|
22
|
+
if (isDirect) delete args[0]._DIRECT_;
|
|
23
|
+
|
|
24
|
+
let ctxArgs =
|
|
25
|
+
isDirect
|
|
26
|
+
? args[0]
|
|
27
|
+
: (dbi.data.eventMap[eventName] as any).reduce((all, current, index) => {
|
|
28
|
+
all[current] = args[index];
|
|
29
|
+
return all;
|
|
30
|
+
}, {});
|
|
31
|
+
|
|
32
|
+
let other = {};
|
|
33
|
+
|
|
34
|
+
let guildLocaleName = args.reduce((all, current) => {
|
|
35
|
+
if (current?.guild?.id) return current?.guild?.preferredLocale?.split?.("-")?.[0];
|
|
36
|
+
if (current instanceof Guild) return current?.preferredLocale?.split?.("-")?.[0];
|
|
37
|
+
return all;
|
|
38
|
+
}, null);
|
|
39
|
+
let guildLocale = guildLocaleName ? (dbi.data.locales.has(guildLocaleName) ? dbi.data.locales.get(guildLocaleName) : dbi.data.locales.get(dbi.config.defaults.locale.name)) : null;
|
|
40
|
+
|
|
41
|
+
let locale = guildLocale ? { guild: guildLocale } : null;
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
let awaitedEvents = [];
|
|
45
|
+
let unAwaitedEvents = [];
|
|
46
|
+
for (let i = 0; i < dbi.data.events.size; i++) {
|
|
47
|
+
const value = dbi.data.events.at(i);
|
|
48
|
+
if (value.name == eventName) {
|
|
49
|
+
if (value.ordered?.await) {
|
|
50
|
+
awaitedEvents.push(value);
|
|
51
|
+
} else {
|
|
52
|
+
unAwaitedEvents.push(value);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
let arg = { eventName, ...ctxArgs, other, locale };
|
|
58
|
+
|
|
59
|
+
for (let i = 0; i < unAwaitedEvents.length; i++) {
|
|
60
|
+
const value = unAwaitedEvents[i];
|
|
61
|
+
|
|
62
|
+
if (value?.disabled) continue;
|
|
63
|
+
|
|
64
|
+
if (value.ordered?.delayBefore) await new Promise(resolve => setTimeout(resolve, value.ordered.delayBefore));
|
|
65
|
+
|
|
66
|
+
if (!(await dbi.events.trigger("beforeEvent", { ...arg, dbiEvent: value }))) continue;
|
|
67
|
+
|
|
68
|
+
if (dbi.config.strict) {
|
|
69
|
+
value.onExecute({ ...arg, nextClient: getClientByEvent(value) });
|
|
70
|
+
} else {
|
|
71
|
+
try {
|
|
72
|
+
value.onExecute({ ...arg, nextClient: getClientByEvent(value) })?.catch(error => {
|
|
73
|
+
dbi.events.trigger("eventError", { ...arg, error, dbiEvent: value });
|
|
74
|
+
});
|
|
75
|
+
} catch (error) {
|
|
76
|
+
dbi.events.trigger("eventError", { ...arg, error, dbiEvent: value });
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
if (value.ordered?.delayAfter) await new Promise(resolve => setTimeout(resolve, value.ordered.delayAfter));
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
for (let i = 0; i < awaitedEvents.length; i++) {
|
|
83
|
+
const value = awaitedEvents[i];
|
|
84
|
+
|
|
85
|
+
if (value?.disabled) continue;
|
|
86
|
+
|
|
87
|
+
if (!(await dbi.events.trigger("beforeEvent", { ...arg, dbiEvent: value }))) continue;
|
|
88
|
+
|
|
89
|
+
if (value.ordered?.delayBefore) await new Promise(resolve => setTimeout(resolve, value.ordered.delayBefore));
|
|
90
|
+
|
|
91
|
+
if (dbi.config.strict) {
|
|
92
|
+
await value.onExecute({ ...arg, nextClient: getClientByEvent(value) });
|
|
93
|
+
} else {
|
|
94
|
+
try {
|
|
95
|
+
await value.onExecute({ ...arg, nextClient: getClientByEvent(value) })?.catch(error => {
|
|
96
|
+
dbi.events.trigger("eventError", { ...arg, error, dbiEvent: value });
|
|
97
|
+
});
|
|
98
|
+
} catch (error) {
|
|
99
|
+
await dbi.events.trigger("eventError", { ...arg, error, dbiEvent: value });
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
if (value.ordered?.delayAfter) await new Promise(resolve => setTimeout(resolve, value.ordered.delayAfter));
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
dbi.events.trigger("afterEvent", arg)
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
let firstClient = dbi.data.clients.first().client;
|
|
109
|
+
let originalEmit = firstClient.emit;
|
|
110
|
+
|
|
111
|
+
firstClient.emit = function (eventName, ...args) {
|
|
112
|
+
handle(eventName, ...args);
|
|
113
|
+
return originalEmit.call(this, eventName, ...args);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
return () => {
|
|
117
|
+
firstClient.emit = originalEmit;
|
|
118
|
+
}
|
|
119
119
|
}
|