@mostfeatured/dbi 0.1.47 → 0.2.1

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 (299) hide show
  1. package/dist/src/DBI.d.ts.map +1 -0
  2. package/dist/src/DBI.js.map +1 -0
  3. package/dist/src/Events.d.ts.map +1 -0
  4. package/dist/src/Events.js.map +1 -0
  5. package/dist/src/index.d.ts.map +1 -0
  6. package/dist/src/index.js.map +1 -0
  7. package/dist/src/methods/handleMessageCommands.d.ts.map +1 -0
  8. package/dist/src/methods/handleMessageCommands.js.map +1 -0
  9. package/dist/src/methods/hookEventListeners.d.ts.map +1 -0
  10. package/dist/src/methods/hookEventListeners.js.map +1 -0
  11. package/dist/src/methods/hookInteractionListeners.d.ts.map +1 -0
  12. package/dist/{methods → src/methods}/hookInteractionListeners.js +22 -12
  13. package/dist/src/methods/hookInteractionListeners.js.map +1 -0
  14. package/dist/src/methods/publishInteractions.d.ts.map +1 -0
  15. package/dist/src/methods/publishInteractions.js.map +1 -0
  16. package/dist/src/types/ApplicationRoleConnectionMetadata.d.ts.map +1 -0
  17. package/dist/src/types/ApplicationRoleConnectionMetadata.js.map +1 -0
  18. package/dist/src/types/Builders/ButtonBuilder.d.ts.map +1 -0
  19. package/dist/src/types/Builders/ButtonBuilder.js.map +1 -0
  20. package/dist/src/types/Builders/ChannelSelectMenuBuilder.d.ts.map +1 -0
  21. package/dist/src/types/Builders/ChannelSelectMenuBuilder.js.map +1 -0
  22. package/dist/src/types/Builders/MentionableSelectMenuBuilder.d.ts.map +1 -0
  23. package/dist/src/types/Builders/MentionableSelectMenuBuilder.js.map +1 -0
  24. package/dist/src/types/Builders/ModalBuilder.d.ts.map +1 -0
  25. package/dist/src/types/Builders/ModalBuilder.js.map +1 -0
  26. package/dist/src/types/Builders/RoleSelectMenuBuilder.d.ts.map +1 -0
  27. package/dist/src/types/Builders/RoleSelectMenuBuilder.js.map +1 -0
  28. package/dist/src/types/Builders/StringSelectMenuBuilder.d.ts.map +1 -0
  29. package/dist/src/types/Builders/StringSelectMenuBuilder.js.map +1 -0
  30. package/dist/src/types/Builders/UserSelectMenuBuilder.d.ts.map +1 -0
  31. package/dist/src/types/Builders/UserSelectMenuBuilder.js.map +1 -0
  32. package/dist/src/types/ChatInput/ChatInput.d.ts.map +1 -0
  33. package/dist/src/types/ChatInput/ChatInput.js.map +1 -0
  34. package/dist/{types → src/types}/ChatInput/ChatInputOptions.d.ts +2 -2
  35. package/dist/src/types/ChatInput/ChatInputOptions.d.ts.map +1 -0
  36. package/dist/src/types/ChatInput/ChatInputOptions.js.map +1 -0
  37. package/dist/src/types/Components/Button.d.ts.map +1 -0
  38. package/dist/src/types/Components/Button.js.map +1 -0
  39. package/dist/src/types/Components/ChannelSelectMenu.d.ts.map +1 -0
  40. package/dist/src/types/Components/ChannelSelectMenu.js.map +1 -0
  41. package/dist/src/types/Components/HTMLComponentsV2/HTMLComponentsV2Handlers.d.ts.map +1 -0
  42. package/dist/src/types/Components/HTMLComponentsV2/HTMLComponentsV2Handlers.js.map +1 -0
  43. package/dist/src/types/Components/HTMLComponentsV2/index.d.ts +91 -0
  44. package/dist/src/types/Components/HTMLComponentsV2/index.d.ts.map +1 -0
  45. package/dist/src/types/Components/HTMLComponentsV2/index.js +300 -0
  46. package/dist/src/types/Components/HTMLComponentsV2/index.js.map +1 -0
  47. package/dist/src/types/Components/HTMLComponentsV2/parser.d.ts.map +1 -0
  48. package/dist/{types → src/types}/Components/HTMLComponentsV2/parser.js +11 -4
  49. package/dist/src/types/Components/HTMLComponentsV2/parser.js.map +1 -0
  50. package/dist/src/types/Components/HTMLComponentsV2/svelteParser.d.ts +35 -0
  51. package/dist/src/types/Components/HTMLComponentsV2/svelteParser.d.ts.map +1 -0
  52. package/dist/src/types/Components/HTMLComponentsV2/svelteParser.js +822 -0
  53. package/dist/src/types/Components/HTMLComponentsV2/svelteParser.js.map +1 -0
  54. package/dist/src/types/Components/HTMLComponentsV2/svelteRenderer.d.ts +24 -0
  55. package/dist/src/types/Components/HTMLComponentsV2/svelteRenderer.d.ts.map +1 -0
  56. package/dist/src/types/Components/HTMLComponentsV2/svelteRenderer.js +294 -0
  57. package/dist/src/types/Components/HTMLComponentsV2/svelteRenderer.js.map +1 -0
  58. package/dist/src/types/Components/MentionableSelectMenu.d.ts.map +1 -0
  59. package/dist/src/types/Components/MentionableSelectMenu.js.map +1 -0
  60. package/dist/src/types/Components/Modal.d.ts.map +1 -0
  61. package/dist/src/types/Components/Modal.js.map +1 -0
  62. package/dist/src/types/Components/RoleSelectMenu.d.ts.map +1 -0
  63. package/dist/src/types/Components/RoleSelectMenu.js.map +1 -0
  64. package/dist/src/types/Components/StringSelectMenu.d.ts.map +1 -0
  65. package/dist/src/types/Components/StringSelectMenu.js.map +1 -0
  66. package/dist/src/types/Components/UserSelectMenu.d.ts.map +1 -0
  67. package/dist/src/types/Components/UserSelectMenu.js.map +1 -0
  68. package/dist/src/types/Event.d.ts.map +1 -0
  69. package/dist/src/types/Event.js.map +1 -0
  70. package/dist/src/types/Interaction.d.ts.map +1 -0
  71. package/dist/src/types/Interaction.js.map +1 -0
  72. package/dist/src/types/other/CustomEvent.d.ts.map +1 -0
  73. package/dist/src/types/other/CustomEvent.js.map +1 -0
  74. package/dist/src/types/other/FakeMessageInteraction.d.ts.map +1 -0
  75. package/dist/src/types/other/FakeMessageInteraction.js.map +1 -0
  76. package/dist/src/types/other/InteractionLocale.d.ts.map +1 -0
  77. package/dist/src/types/other/InteractionLocale.js.map +1 -0
  78. package/dist/src/types/other/Locale.d.ts.map +1 -0
  79. package/dist/src/types/other/Locale.js.map +1 -0
  80. package/dist/src/types/other/MessageContextMenu.d.ts.map +1 -0
  81. package/dist/src/types/other/MessageContextMenu.js.map +1 -0
  82. package/dist/src/types/other/UserContextMenu.d.ts.map +1 -0
  83. package/dist/src/types/other/UserContextMenu.js.map +1 -0
  84. package/dist/src/utils/MemoryStore.d.ts.map +1 -0
  85. package/dist/src/utils/MemoryStore.js.map +1 -0
  86. package/dist/src/utils/UtilTypes.d.ts.map +1 -0
  87. package/dist/src/utils/UtilTypes.js.map +1 -0
  88. package/dist/src/utils/customId.d.ts.map +1 -0
  89. package/dist/src/utils/customId.js.map +1 -0
  90. package/dist/src/utils/permissions.d.ts.map +1 -0
  91. package/dist/src/utils/permissions.js.map +1 -0
  92. package/dist/src/utils/recursiveImport.d.ts.map +1 -0
  93. package/dist/src/utils/recursiveImport.js.map +1 -0
  94. package/dist/src/utils/recursiveUnload.d.ts.map +1 -0
  95. package/dist/src/utils/recursiveUnload.js.map +1 -0
  96. package/dist/src/utils/unloadModule.d.ts.map +1 -0
  97. package/dist/src/utils/unloadModule.js.map +1 -0
  98. package/dist/test/index.d.ts +2 -0
  99. package/dist/test/index.d.ts.map +1 -0
  100. package/dist/test/index.js +103 -0
  101. package/dist/test/index.js.map +1 -0
  102. package/docs/ADVANCED_FEATURES.md +836 -0
  103. package/docs/API_REFERENCE.md +925 -0
  104. package/docs/CHAT_INPUT.md +807 -0
  105. package/docs/COMPONENTS.md +1035 -0
  106. package/docs/EVENTS.md +564 -0
  107. package/docs/GETTING_STARTED.md +394 -0
  108. package/docs/LOCALIZATION.md +773 -0
  109. package/docs/README.md +341 -0
  110. package/docs/SVELTE_COMPONENTS.md +955 -0
  111. package/generated/globals.d.ts +1 -0
  112. package/generated/index.d.ts +30 -0
  113. package/generated/svelte-dbi.d.ts +588 -0
  114. package/package.json +57 -47
  115. package/readme.md +168 -491
  116. package/src/methods/hookInteractionListeners.ts +23 -12
  117. package/src/types/Components/HTMLComponentsV2/index.ts +353 -12
  118. package/src/types/Components/HTMLComponentsV2/parser.ts +14 -4
  119. package/src/types/Components/HTMLComponentsV2/svelteParser.ts +904 -0
  120. package/src/types/Components/HTMLComponentsV2/svelteRenderer.ts +332 -0
  121. package/test/index.ts +105 -0
  122. package/test/product-showcase.svelte +199 -0
  123. package/tsconfig.json +13 -3
  124. package/dist/DBI.d.ts.map +0 -1
  125. package/dist/DBI.js.map +0 -1
  126. package/dist/Events.d.ts.map +0 -1
  127. package/dist/Events.js.map +0 -1
  128. package/dist/index.d.ts.map +0 -1
  129. package/dist/index.js.map +0 -1
  130. package/dist/methods/handleMessageCommands.d.ts.map +0 -1
  131. package/dist/methods/handleMessageCommands.js.map +0 -1
  132. package/dist/methods/hookEventListeners.d.ts.map +0 -1
  133. package/dist/methods/hookEventListeners.js.map +0 -1
  134. package/dist/methods/hookInteractionListeners.d.ts.map +0 -1
  135. package/dist/methods/hookInteractionListeners.js.map +0 -1
  136. package/dist/methods/publishInteractions.d.ts.map +0 -1
  137. package/dist/methods/publishInteractions.js.map +0 -1
  138. package/dist/types/ApplicationRoleConnectionMetadata.d.ts.map +0 -1
  139. package/dist/types/ApplicationRoleConnectionMetadata.js.map +0 -1
  140. package/dist/types/Builders/ButtonBuilder.d.ts.map +0 -1
  141. package/dist/types/Builders/ButtonBuilder.js.map +0 -1
  142. package/dist/types/Builders/ChannelSelectMenuBuilder.d.ts.map +0 -1
  143. package/dist/types/Builders/ChannelSelectMenuBuilder.js.map +0 -1
  144. package/dist/types/Builders/MentionableSelectMenuBuilder.d.ts.map +0 -1
  145. package/dist/types/Builders/MentionableSelectMenuBuilder.js.map +0 -1
  146. package/dist/types/Builders/ModalBuilder.d.ts.map +0 -1
  147. package/dist/types/Builders/ModalBuilder.js.map +0 -1
  148. package/dist/types/Builders/RoleSelectMenuBuilder.d.ts.map +0 -1
  149. package/dist/types/Builders/RoleSelectMenuBuilder.js.map +0 -1
  150. package/dist/types/Builders/StringSelectMenuBuilder.d.ts.map +0 -1
  151. package/dist/types/Builders/StringSelectMenuBuilder.js.map +0 -1
  152. package/dist/types/Builders/UserSelectMenuBuilder.d.ts.map +0 -1
  153. package/dist/types/Builders/UserSelectMenuBuilder.js.map +0 -1
  154. package/dist/types/ChatInput/ChatInput.d.ts.map +0 -1
  155. package/dist/types/ChatInput/ChatInput.js.map +0 -1
  156. package/dist/types/ChatInput/ChatInputOptions.d.ts.map +0 -1
  157. package/dist/types/ChatInput/ChatInputOptions.js.map +0 -1
  158. package/dist/types/Components/Button.d.ts.map +0 -1
  159. package/dist/types/Components/Button.js.map +0 -1
  160. package/dist/types/Components/ChannelSelectMenu.d.ts.map +0 -1
  161. package/dist/types/Components/ChannelSelectMenu.js.map +0 -1
  162. package/dist/types/Components/HTMLComponentsV2/HTMLComponentsV2Handlers.d.ts.map +0 -1
  163. package/dist/types/Components/HTMLComponentsV2/HTMLComponentsV2Handlers.js.map +0 -1
  164. package/dist/types/Components/HTMLComponentsV2/index.d.ts +0 -19
  165. package/dist/types/Components/HTMLComponentsV2/index.d.ts.map +0 -1
  166. package/dist/types/Components/HTMLComponentsV2/index.js +0 -31
  167. package/dist/types/Components/HTMLComponentsV2/index.js.map +0 -1
  168. package/dist/types/Components/HTMLComponentsV2/parser.d.ts.map +0 -1
  169. package/dist/types/Components/HTMLComponentsV2/parser.js.map +0 -1
  170. package/dist/types/Components/MentionableSelectMenu.d.ts.map +0 -1
  171. package/dist/types/Components/MentionableSelectMenu.js.map +0 -1
  172. package/dist/types/Components/Modal.d.ts.map +0 -1
  173. package/dist/types/Components/Modal.js.map +0 -1
  174. package/dist/types/Components/RoleSelectMenu.d.ts.map +0 -1
  175. package/dist/types/Components/RoleSelectMenu.js.map +0 -1
  176. package/dist/types/Components/StringSelectMenu.d.ts.map +0 -1
  177. package/dist/types/Components/StringSelectMenu.js.map +0 -1
  178. package/dist/types/Components/UserSelectMenu.d.ts.map +0 -1
  179. package/dist/types/Components/UserSelectMenu.js.map +0 -1
  180. package/dist/types/Event.d.ts.map +0 -1
  181. package/dist/types/Event.js.map +0 -1
  182. package/dist/types/Interaction.d.ts.map +0 -1
  183. package/dist/types/Interaction.js.map +0 -1
  184. package/dist/types/other/CustomEvent.d.ts.map +0 -1
  185. package/dist/types/other/CustomEvent.js.map +0 -1
  186. package/dist/types/other/FakeMessageInteraction.d.ts.map +0 -1
  187. package/dist/types/other/FakeMessageInteraction.js.map +0 -1
  188. package/dist/types/other/InteractionLocale.d.ts.map +0 -1
  189. package/dist/types/other/InteractionLocale.js.map +0 -1
  190. package/dist/types/other/Locale.d.ts.map +0 -1
  191. package/dist/types/other/Locale.js.map +0 -1
  192. package/dist/types/other/MessageContextMenu.d.ts.map +0 -1
  193. package/dist/types/other/MessageContextMenu.js.map +0 -1
  194. package/dist/types/other/UserContextMenu.d.ts.map +0 -1
  195. package/dist/types/other/UserContextMenu.js.map +0 -1
  196. package/dist/utils/MemoryStore.d.ts.map +0 -1
  197. package/dist/utils/MemoryStore.js.map +0 -1
  198. package/dist/utils/UtilTypes.d.ts.map +0 -1
  199. package/dist/utils/UtilTypes.js.map +0 -1
  200. package/dist/utils/customId.d.ts.map +0 -1
  201. package/dist/utils/customId.js.map +0 -1
  202. package/dist/utils/permissions.d.ts.map +0 -1
  203. package/dist/utils/permissions.js.map +0 -1
  204. package/dist/utils/recursiveImport.d.ts.map +0 -1
  205. package/dist/utils/recursiveImport.js.map +0 -1
  206. package/dist/utils/recursiveUnload.d.ts.map +0 -1
  207. package/dist/utils/recursiveUnload.js.map +0 -1
  208. package/dist/utils/unloadModule.d.ts.map +0 -1
  209. package/dist/utils/unloadModule.js.map +0 -1
  210. package/examples/modal/dbi.js +0 -30
  211. package/examples/modal/login.js +0 -15
  212. package/examples/modal/package.json +0 -15
  213. package/examples/modal/publish.js +0 -13
  214. package/examples/modal/src/chatInput.js +0 -38
  215. package/examples/modal/src/components.js +0 -33
  216. package/examples/modal/src/event.js +0 -20
  217. package/examples/modal/src/interactionlocales.js +0 -24
  218. package/examples/modal/src/locales.js +0 -38
  219. package/examples/modal/src/modal.js +0 -28
  220. /package/dist/{DBI.d.ts → src/DBI.d.ts} +0 -0
  221. /package/dist/{DBI.js → src/DBI.js} +0 -0
  222. /package/dist/{Events.d.ts → src/Events.d.ts} +0 -0
  223. /package/dist/{Events.js → src/Events.js} +0 -0
  224. /package/dist/{data → src/data}/eventMap.json +0 -0
  225. /package/dist/{index.d.ts → src/index.d.ts} +0 -0
  226. /package/dist/{index.js → src/index.js} +0 -0
  227. /package/dist/{methods → src/methods}/handleMessageCommands.d.ts +0 -0
  228. /package/dist/{methods → src/methods}/handleMessageCommands.js +0 -0
  229. /package/dist/{methods → src/methods}/hookEventListeners.d.ts +0 -0
  230. /package/dist/{methods → src/methods}/hookEventListeners.js +0 -0
  231. /package/dist/{methods → src/methods}/hookInteractionListeners.d.ts +0 -0
  232. /package/dist/{methods → src/methods}/publishInteractions.d.ts +0 -0
  233. /package/dist/{methods → src/methods}/publishInteractions.js +0 -0
  234. /package/dist/{types → src/types}/ApplicationRoleConnectionMetadata.d.ts +0 -0
  235. /package/dist/{types → src/types}/ApplicationRoleConnectionMetadata.js +0 -0
  236. /package/dist/{types → src/types}/Builders/ButtonBuilder.d.ts +0 -0
  237. /package/dist/{types → src/types}/Builders/ButtonBuilder.js +0 -0
  238. /package/dist/{types → src/types}/Builders/ChannelSelectMenuBuilder.d.ts +0 -0
  239. /package/dist/{types → src/types}/Builders/ChannelSelectMenuBuilder.js +0 -0
  240. /package/dist/{types → src/types}/Builders/MentionableSelectMenuBuilder.d.ts +0 -0
  241. /package/dist/{types → src/types}/Builders/MentionableSelectMenuBuilder.js +0 -0
  242. /package/dist/{types → src/types}/Builders/ModalBuilder.d.ts +0 -0
  243. /package/dist/{types → src/types}/Builders/ModalBuilder.js +0 -0
  244. /package/dist/{types → src/types}/Builders/RoleSelectMenuBuilder.d.ts +0 -0
  245. /package/dist/{types → src/types}/Builders/RoleSelectMenuBuilder.js +0 -0
  246. /package/dist/{types → src/types}/Builders/StringSelectMenuBuilder.d.ts +0 -0
  247. /package/dist/{types → src/types}/Builders/StringSelectMenuBuilder.js +0 -0
  248. /package/dist/{types → src/types}/Builders/UserSelectMenuBuilder.d.ts +0 -0
  249. /package/dist/{types → src/types}/Builders/UserSelectMenuBuilder.js +0 -0
  250. /package/dist/{types → src/types}/ChatInput/ChatInput.d.ts +0 -0
  251. /package/dist/{types → src/types}/ChatInput/ChatInput.js +0 -0
  252. /package/dist/{types → src/types}/ChatInput/ChatInputOptions.js +0 -0
  253. /package/dist/{types → src/types}/Components/Button.d.ts +0 -0
  254. /package/dist/{types → src/types}/Components/Button.js +0 -0
  255. /package/dist/{types → src/types}/Components/ChannelSelectMenu.d.ts +0 -0
  256. /package/dist/{types → src/types}/Components/ChannelSelectMenu.js +0 -0
  257. /package/dist/{types → src/types}/Components/HTMLComponentsV2/HTMLComponentsV2Handlers.d.ts +0 -0
  258. /package/dist/{types → src/types}/Components/HTMLComponentsV2/HTMLComponentsV2Handlers.js +0 -0
  259. /package/dist/{types → src/types}/Components/HTMLComponentsV2/parser.d.ts +0 -0
  260. /package/dist/{types → src/types}/Components/MentionableSelectMenu.d.ts +0 -0
  261. /package/dist/{types → src/types}/Components/MentionableSelectMenu.js +0 -0
  262. /package/dist/{types → src/types}/Components/Modal.d.ts +0 -0
  263. /package/dist/{types → src/types}/Components/Modal.js +0 -0
  264. /package/dist/{types → src/types}/Components/RoleSelectMenu.d.ts +0 -0
  265. /package/dist/{types → src/types}/Components/RoleSelectMenu.js +0 -0
  266. /package/dist/{types → src/types}/Components/StringSelectMenu.d.ts +0 -0
  267. /package/dist/{types → src/types}/Components/StringSelectMenu.js +0 -0
  268. /package/dist/{types → src/types}/Components/UserSelectMenu.d.ts +0 -0
  269. /package/dist/{types → src/types}/Components/UserSelectMenu.js +0 -0
  270. /package/dist/{types → src/types}/Event.d.ts +0 -0
  271. /package/dist/{types → src/types}/Event.js +0 -0
  272. /package/dist/{types → src/types}/Interaction.d.ts +0 -0
  273. /package/dist/{types → src/types}/Interaction.js +0 -0
  274. /package/dist/{types → src/types}/other/CustomEvent.d.ts +0 -0
  275. /package/dist/{types → src/types}/other/CustomEvent.js +0 -0
  276. /package/dist/{types → src/types}/other/FakeMessageInteraction.d.ts +0 -0
  277. /package/dist/{types → src/types}/other/FakeMessageInteraction.js +0 -0
  278. /package/dist/{types → src/types}/other/InteractionLocale.d.ts +0 -0
  279. /package/dist/{types → src/types}/other/InteractionLocale.js +0 -0
  280. /package/dist/{types → src/types}/other/Locale.d.ts +0 -0
  281. /package/dist/{types → src/types}/other/Locale.js +0 -0
  282. /package/dist/{types → src/types}/other/MessageContextMenu.d.ts +0 -0
  283. /package/dist/{types → src/types}/other/MessageContextMenu.js +0 -0
  284. /package/dist/{types → src/types}/other/UserContextMenu.d.ts +0 -0
  285. /package/dist/{types → src/types}/other/UserContextMenu.js +0 -0
  286. /package/dist/{utils → src/utils}/MemoryStore.d.ts +0 -0
  287. /package/dist/{utils → src/utils}/MemoryStore.js +0 -0
  288. /package/dist/{utils → src/utils}/UtilTypes.d.ts +0 -0
  289. /package/dist/{utils → src/utils}/UtilTypes.js +0 -0
  290. /package/dist/{utils → src/utils}/customId.d.ts +0 -0
  291. /package/dist/{utils → src/utils}/customId.js +0 -0
  292. /package/dist/{utils → src/utils}/permissions.d.ts +0 -0
  293. /package/dist/{utils → src/utils}/permissions.js +0 -0
  294. /package/dist/{utils → src/utils}/recursiveImport.d.ts +0 -0
  295. /package/dist/{utils → src/utils}/recursiveImport.js +0 -0
  296. /package/dist/{utils → src/utils}/recursiveUnload.d.ts +0 -0
  297. /package/dist/{utils → src/utils}/recursiveUnload.js +0 -0
  298. /package/dist/{utils → src/utils}/unloadModule.d.ts +0 -0
  299. /package/dist/{utils → src/utils}/unloadModule.js +0 -0
package/docs/EVENTS.md ADDED
@@ -0,0 +1,564 @@
1
+ # Events Guide
2
+
3
+ DBI provides a powerful event system for handling both Discord events and custom events. This guide covers how to work with events effectively.
4
+
5
+ ---
6
+
7
+ ## Table of Contents
8
+
9
+ - [Basic Events](#basic-events)
10
+ - [Multiple Event Handlers](#multiple-event-handlers)
11
+ - [Event Configuration](#event-configuration)
12
+ - [Custom Events](#custom-events)
13
+ - [DBI Events](#dbi-events)
14
+ - [Event Order and Flow](#event-order-and-flow)
15
+
16
+ ---
17
+
18
+ ## Basic Events
19
+
20
+ ### Simple Event Handler
21
+
22
+ ```javascript
23
+ dbi.register(({ Event }) => {
24
+ Event({
25
+ name: "clientReady", // Discord.js event name
26
+ id: "ready-logger", // Unique ID for this handler
27
+
28
+ onExecute({ client }) {
29
+ console.log(`✅ Bot is online as ${client.user.tag}`);
30
+ console.log(`📊 Serving ${client.guilds.cache.size} guilds`);
31
+ }
32
+ });
33
+ });
34
+ ```
35
+
36
+ ### Event Parameters
37
+
38
+ Each event receives its parameters in an object format:
39
+
40
+ ```javascript
41
+ dbi.register(({ Event }) => {
42
+ // Message events
43
+ Event({
44
+ name: "messageCreate",
45
+ id: "message-logger",
46
+
47
+ onExecute({ message }) {
48
+ if (message.author.bot) return;
49
+ console.log(`[${message.guild?.name}] ${message.author.tag}: ${message.content}`);
50
+ }
51
+ });
52
+
53
+ // Member events
54
+ Event({
55
+ name: "guildMemberAdd",
56
+ id: "welcome-handler",
57
+
58
+ async onExecute({ member }) {
59
+ const channel = member.guild.systemChannel;
60
+ if (channel) {
61
+ await channel.send(`Welcome ${member}! 👋`);
62
+ }
63
+ }
64
+ });
65
+
66
+ // Reaction events
67
+ Event({
68
+ name: "messageReactionAdd",
69
+ id: "reaction-roles",
70
+
71
+ onExecute({ reaction, user }) {
72
+ if (user.bot) return;
73
+ console.log(`${user.tag} reacted with ${reaction.emoji.name}`);
74
+ }
75
+ });
76
+ });
77
+ ```
78
+
79
+ ### Common Events Reference
80
+
81
+ | Event Name | Parameters | Description |
82
+ |------------|------------|-------------|
83
+ | `clientReady` | `{ client }` | Bot is connected and ready |
84
+ | `messageCreate` | `{ message }` | New message received |
85
+ | `messageDelete` | `{ message }` | Message was deleted |
86
+ | `messageUpdate` | `{ oldMessage, newMessage }` | Message was edited |
87
+ | `guildCreate` | `{ guild }` | Bot joined a guild |
88
+ | `guildDelete` | `{ guild }` | Bot left a guild |
89
+ | `guildMemberAdd` | `{ member }` | Member joined guild |
90
+ | `guildMemberRemove` | `{ member }` | Member left guild |
91
+ | `guildMemberUpdate` | `{ oldMember, newMember }` | Member updated |
92
+ | `interactionCreate` | `{ interaction }` | Any interaction received |
93
+ | `voiceStateUpdate` | `{ oldState, newState }` | Voice state changed |
94
+ | `channelCreate` | `{ channel }` | Channel created |
95
+ | `channelDelete` | `{ channel }` | Channel deleted |
96
+ | `roleCreate` | `{ role }` | Role created |
97
+ | `roleDelete` | `{ role }` | Role deleted |
98
+
99
+ ---
100
+
101
+ ## Multiple Event Handlers
102
+
103
+ You can register multiple handlers for the same event using unique IDs.
104
+
105
+ ### Multiple Handlers
106
+
107
+ ```javascript
108
+ dbi.register(({ Event }) => {
109
+ // First handler - logging
110
+ Event({
111
+ name: "messageCreate",
112
+ id: "message-logger",
113
+
114
+ onExecute({ message }) {
115
+ console.log(`Message: ${message.id}`);
116
+ }
117
+ });
118
+
119
+ // Second handler - auto-moderation
120
+ Event({
121
+ name: "messageCreate",
122
+ id: "auto-mod",
123
+
124
+ onExecute({ message }) {
125
+ if (containsBadWords(message.content)) {
126
+ message.delete();
127
+ }
128
+ }
129
+ });
130
+
131
+ // Third handler - leveling system
132
+ Event({
133
+ name: "messageCreate",
134
+ id: "leveling",
135
+
136
+ async onExecute({ message }) {
137
+ if (message.author.bot) return;
138
+ await addXP(message.author.id, 10);
139
+ }
140
+ });
141
+ });
142
+ ```
143
+
144
+ ### Toggling Event Handlers
145
+
146
+ ```javascript
147
+ dbi.register(({ Event }) => {
148
+ Event({
149
+ name: "messageCreate",
150
+ id: "togglable-logger",
151
+ disabled: false, // Can start disabled
152
+
153
+ onExecute({ message }) {
154
+ console.log(message.content);
155
+ }
156
+ });
157
+ });
158
+
159
+ // Toggle the handler programmatically
160
+ const handler = dbi.event("togglable-logger");
161
+
162
+ handler.toggle(); // Toggle state
163
+ handler.toggle(true); // Disable
164
+ handler.toggle(false); // Enable
165
+
166
+ console.log(handler.disabled); // Check state
167
+ ```
168
+
169
+ ---
170
+
171
+ ## Event Configuration
172
+
173
+ ### Trigger Types
174
+
175
+ Control how events are handled across multiple clients:
176
+
177
+ ```javascript
178
+ dbi.register(({ Event }) => {
179
+ Event({
180
+ name: "messageCreate",
181
+ id: "my-handler",
182
+
183
+ // "OneByOne" - Each client triggers sequentially
184
+ // "OneByOneGlobal" - Global sequential (default)
185
+ // "Random" - Random client handles
186
+ // "First" - First client only
187
+ triggerType: "OneByOneGlobal",
188
+
189
+ onExecute({ message, nextClient }) {
190
+ // nextClient is available for multi-client setups
191
+ console.log(`Handled by: ${nextClient?.namespace}`);
192
+ }
193
+ });
194
+ });
195
+ ```
196
+
197
+ ### Ordered Execution
198
+
199
+ Control execution order with delays:
200
+
201
+ ```javascript
202
+ dbi.register(({ Event }) => {
203
+ Event({
204
+ name: "messageCreate",
205
+ id: "ordered-handler",
206
+
207
+ ordered: {
208
+ await: true, // Wait for async completion
209
+ delayBefore: 100, // Wait 100ms before executing
210
+ delayAfter: 50 // Wait 50ms after executing
211
+ },
212
+
213
+ async onExecute({ message }) {
214
+ await doAsyncWork(message);
215
+ }
216
+ });
217
+ });
218
+ ```
219
+
220
+ ### Conditional Loading with Flags
221
+
222
+ ```javascript
223
+ dbi.register(({ Event }) => {
224
+ Event({
225
+ name: "messageCreate",
226
+ id: "debug-logger",
227
+ flag: "debug", // Only load with debug flag
228
+
229
+ onExecute({ message }) {
230
+ console.log("[DEBUG]", message);
231
+ }
232
+ });
233
+ });
234
+
235
+ // Load with debug events
236
+ await dbi.load("debug");
237
+
238
+ // Load without debug events
239
+ await dbi.load();
240
+ ```
241
+
242
+ ### Event TTL (Inline Events)
243
+
244
+ ```javascript
245
+ dbi.register(({ createInlineEvent }) => {
246
+ // Create a temporary event that auto-removes
247
+ createInlineEvent({
248
+ name: "messageCreate",
249
+ ttl: 60000, // Auto-remove after 1 minute
250
+
251
+ onExecute({ message }) {
252
+ if (message.content === "special") {
253
+ message.reply("You found it!");
254
+ }
255
+ }
256
+ });
257
+ });
258
+ ```
259
+
260
+ ---
261
+
262
+ ## Custom Events
263
+
264
+ Define your own events that can be triggered programmatically.
265
+
266
+ ### Defining Custom Events
267
+
268
+ ```javascript
269
+ dbi.register(({ CustomEvent, Event }) => {
270
+ // Define a custom event structure
271
+ CustomEvent({
272
+ name: "userLevelUp",
273
+ map: {
274
+ userId: "userId",
275
+ newLevel: "newLevel",
276
+ guild: "guild"
277
+ }
278
+ });
279
+
280
+ // Listen for the custom event
281
+ Event({
282
+ name: "userLevelUp",
283
+ id: "levelup-announcer",
284
+
285
+ onExecute({ userId, newLevel, guild }) {
286
+ const channel = guild.systemChannel;
287
+ if (channel) {
288
+ channel.send(`🎉 <@${userId}> reached level ${newLevel}!`);
289
+ }
290
+ }
291
+ });
292
+ });
293
+
294
+ // Trigger the custom event from anywhere
295
+ dbi.emit("userLevelUp", {
296
+ userId: "123456789",
297
+ newLevel: 10,
298
+ guild: someGuild
299
+ });
300
+ ```
301
+
302
+ ### Custom Event with Direct Trigger
303
+
304
+ ```javascript
305
+ dbi.register(({ CustomEvent }) => {
306
+ const levelUpEvent = CustomEvent({
307
+ name: "playerLevelUp",
308
+ map: {
309
+ playerId: "playerId",
310
+ level: "level",
311
+ rewards: "rewards"
312
+ }
313
+ });
314
+
315
+ // Trigger using the returned object
316
+ levelUpEvent.trigger({
317
+ playerId: "12345",
318
+ level: 5,
319
+ rewards: ["gold", "exp_boost"]
320
+ });
321
+ });
322
+ ```
323
+
324
+ ---
325
+
326
+ ## DBI Events
327
+
328
+ DBI provides internal events for interaction and event lifecycle management.
329
+
330
+ ### Available DBI Events
331
+
332
+ | Event | Description | Data |
333
+ |-------|-------------|------|
334
+ | `clientsReady` | All clients connected | - |
335
+ | `beforeInteraction` | Before handling interaction | Context object |
336
+ | `afterInteraction` | After handling interaction | Context object |
337
+ | `interactionError` | Error during interaction | Context + error |
338
+ | `interactionRateLimit` | Rate limit triggered | Rate limit info |
339
+ | `beforeEvent` | Before event handler | Event data |
340
+ | `afterEvent` | After event handler | Event data |
341
+ | `eventError` | Error during event | Event data + error |
342
+ | `messageCommandArgumentError` | Invalid message command arg | Error details |
343
+ | `messageCommandDirectMessageUsageError` | DM command not allowed | Error details |
344
+ | `messageCommandDefaultMemberPermissionsError` | Missing permissions | Error details |
345
+
346
+ ### Before/After Interaction
347
+
348
+ ```javascript
349
+ // Listen for interaction events
350
+ dbi.events.on("beforeInteraction", async (ctx) => {
351
+ console.log(`Interaction: ${ctx.dbiInteraction.name}`);
352
+ console.log(`User: ${ctx.interaction.user.tag}`);
353
+
354
+ // Return true to continue, false to stop
355
+ return true;
356
+ });
357
+
358
+ dbi.events.on("afterInteraction", async (ctx) => {
359
+ console.log(`Completed: ${ctx.dbiInteraction.name}`);
360
+ return true;
361
+ });
362
+ ```
363
+
364
+ ### Error Handling
365
+
366
+ ```javascript
367
+ dbi.events.on("interactionError", async ({ interaction, dbiInteraction, error }) => {
368
+ console.error(`Error in ${dbiInteraction.name}:`, error);
369
+
370
+ // Notify the user
371
+ try {
372
+ if (interaction.replied || interaction.deferred) {
373
+ await interaction.followUp({
374
+ content: "An error occurred. Please try again later.",
375
+ ephemeral: true
376
+ });
377
+ } else {
378
+ await interaction.reply({
379
+ content: "An error occurred. Please try again later.",
380
+ ephemeral: true
381
+ });
382
+ }
383
+ } catch (e) {
384
+ console.error("Could not send error message:", e);
385
+ }
386
+
387
+ return true;
388
+ });
389
+
390
+ dbi.events.on("eventError", async ({ eventName, dbiEvent, error }) => {
391
+ console.error(`Error in event ${eventName}:`, error);
392
+ return true;
393
+ });
394
+ ```
395
+
396
+ ### Rate Limiting
397
+
398
+ ```javascript
399
+ dbi.events.on("interactionRateLimit", async ({
400
+ interaction,
401
+ dbiInteraction,
402
+ rateLimit,
403
+ remainingTime
404
+ }) => {
405
+ const seconds = Math.ceil(remainingTime / 1000);
406
+
407
+ await interaction.reply({
408
+ content: `⏳ Slow down! Try again in ${seconds} seconds.`,
409
+ ephemeral: true
410
+ });
411
+
412
+ return false; // Don't execute the interaction
413
+ });
414
+ ```
415
+
416
+ ### Message Command Errors
417
+
418
+ ```javascript
419
+ const { ApplicationCommandOptionType } = require("discord.js");
420
+
421
+ dbi.events.on("messageCommandArgumentError", ({
422
+ message,
423
+ interaction,
424
+ dbiInteraction,
425
+ error
426
+ }) => {
427
+ message.reply(
428
+ `❌ Invalid argument \`${error.option.name}\` (Index: ${error.index}).\n` +
429
+ `Error: \`${error.type}\`\n` +
430
+ `Expected: \`${ApplicationCommandOptionType[error.option.type]}\``
431
+ );
432
+
433
+ return false; // Don't execute the command
434
+ });
435
+
436
+ dbi.events.on("messageCommandDirectMessageUsageError", ({ message }) => {
437
+ message.reply("❌ This command cannot be used in DMs.");
438
+ return false;
439
+ });
440
+
441
+ dbi.events.on("messageCommandDefaultMemberPermissionsError", ({
442
+ message,
443
+ permissions
444
+ }) => {
445
+ message.reply(`❌ You need these permissions: ${permissions.join(", ")}`);
446
+ return false;
447
+ });
448
+ ```
449
+
450
+ ### One-Time Event Handlers
451
+
452
+ ```javascript
453
+ // Handler that runs only once
454
+ dbi.events.on("clientsReady", () => {
455
+ console.log("Bot is ready!");
456
+ }, { once: true });
457
+ ```
458
+
459
+ ### Removing Event Handlers
460
+
461
+ ```javascript
462
+ // on() returns a function to remove the handler
463
+ const removeHandler = dbi.events.on("beforeInteraction", (ctx) => {
464
+ console.log("Interaction received");
465
+ return true;
466
+ });
467
+
468
+ // Later, remove the handler
469
+ removeHandler();
470
+ ```
471
+
472
+ ---
473
+
474
+ ## Event Order and Flow
475
+
476
+ ### Interaction Flow
477
+
478
+ 1. Discord sends interaction
479
+ 2. `beforeInteraction` event fires
480
+ 3. Rate limit check
481
+ 4. `interactionRateLimit` event if limited
482
+ 5. Interaction handler executes
483
+ 6. `afterInteraction` event fires
484
+ 7. If error: `interactionError` event fires
485
+
486
+ ### Event Flow
487
+
488
+ 1. Discord sends event
489
+ 2. `beforeEvent` event fires
490
+ 3. Event handler executes
491
+ 4. `afterEvent` event fires
492
+ 5. If error: `eventError` event fires
493
+
494
+ ### Best Practices
495
+
496
+ ```javascript
497
+ // ✅ Good - Use specific event IDs
498
+ Event({
499
+ name: "messageCreate",
500
+ id: "spam-filter-v1", // Descriptive ID
501
+ onExecute({ message }) { /* ... */ }
502
+ });
503
+
504
+ // ❌ Bad - Missing ID causes conflicts
505
+ Event({
506
+ name: "messageCreate",
507
+ // No ID - will throw error if strict mode is on
508
+ onExecute({ message }) { /* ... */ }
509
+ });
510
+
511
+ // ✅ Good - Return early from bot messages
512
+ Event({
513
+ name: "messageCreate",
514
+ id: "my-handler",
515
+ onExecute({ message }) {
516
+ if (message.author.bot) return; // Ignore bots
517
+ // Handle user messages
518
+ }
519
+ });
520
+
521
+ // ✅ Good - Use async/await properly
522
+ Event({
523
+ name: "guildMemberAdd",
524
+ id: "welcome",
525
+ async onExecute({ member }) {
526
+ try {
527
+ await member.send("Welcome!");
528
+ } catch (error) {
529
+ console.error("Could not DM member:", error);
530
+ }
531
+ }
532
+ });
533
+ ```
534
+
535
+ ---
536
+
537
+ ## Guild Locale in Events
538
+
539
+ Access guild locale in events:
540
+
541
+ ```javascript
542
+ dbi.register(({ Event }) => {
543
+ Event({
544
+ name: "messageCreate",
545
+ id: "localized-response",
546
+
547
+ onExecute({ message, locale }) {
548
+ if (message.content === "!hello") {
549
+ // Use guild's locale for response
550
+ const greeting = locale?.guild?.data?.greeting?.() || "Hello!";
551
+ message.reply(greeting);
552
+ }
553
+ }
554
+ });
555
+ });
556
+ ```
557
+
558
+ ---
559
+
560
+ ## Next Steps
561
+
562
+ - [Localization](./LOCALIZATION.md) - Multi-language support
563
+ - [Advanced Features](./ADVANCED_FEATURES.md) - Message commands, multi-client
564
+ - [API Reference](./API_REFERENCE.md) - Complete API documentation