@mostfeatured/dbi 0.0.80 → 0.0.82

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 (244) hide show
  1. package/dist/{src/DBI.d.ts → DBI.d.ts} +15 -0
  2. package/dist/DBI.d.ts.map +1 -0
  3. package/dist/{src/DBI.js → DBI.js} +33 -1
  4. package/dist/DBI.js.map +1 -0
  5. package/dist/{src/Events.d.ts → Events.d.ts} +17 -1
  6. package/dist/Events.d.ts.map +1 -0
  7. package/dist/Events.js.map +1 -0
  8. package/dist/index.d.ts.map +1 -0
  9. package/dist/index.js.map +1 -0
  10. package/dist/methods/handleMessageCommands.d.ts +6 -0
  11. package/dist/methods/handleMessageCommands.d.ts.map +1 -0
  12. package/dist/methods/handleMessageCommands.js +301 -0
  13. package/dist/methods/handleMessageCommands.js.map +1 -0
  14. package/dist/methods/hookEventListeners.d.ts.map +1 -0
  15. package/dist/methods/hookEventListeners.js.map +1 -0
  16. package/dist/methods/hookInteractionListeners.d.ts.map +1 -0
  17. package/dist/{src/methods → methods}/hookInteractionListeners.js +1 -1
  18. package/dist/methods/hookInteractionListeners.js.map +1 -0
  19. package/dist/methods/publishInteractions.d.ts.map +1 -0
  20. package/dist/methods/publishInteractions.js.map +1 -0
  21. package/dist/types/ApplicationRoleConnectionMetadata.d.ts.map +1 -0
  22. package/dist/types/ApplicationRoleConnectionMetadata.js.map +1 -0
  23. package/dist/types/Builders/ButtonBuilder.d.ts.map +1 -0
  24. package/dist/types/Builders/ButtonBuilder.js.map +1 -0
  25. package/dist/types/Builders/ChannelSelectMenuBuilder.d.ts.map +1 -0
  26. package/dist/types/Builders/ChannelSelectMenuBuilder.js.map +1 -0
  27. package/dist/types/Builders/MentionableSelectMenuBuilder.d.ts.map +1 -0
  28. package/dist/types/Builders/MentionableSelectMenuBuilder.js.map +1 -0
  29. package/dist/types/Builders/ModalBuilder.d.ts.map +1 -0
  30. package/dist/types/Builders/ModalBuilder.js.map +1 -0
  31. package/dist/types/Builders/RoleSelectMenuBuilder.d.ts.map +1 -0
  32. package/dist/types/Builders/RoleSelectMenuBuilder.js.map +1 -0
  33. package/dist/types/Builders/StringSelectMenuBuilder.d.ts.map +1 -0
  34. package/dist/types/Builders/StringSelectMenuBuilder.js.map +1 -0
  35. package/dist/types/Builders/UserSelectMenuBuilder.d.ts.map +1 -0
  36. package/dist/types/Builders/UserSelectMenuBuilder.js.map +1 -0
  37. package/dist/types/ChatInput/ChatInput.d.ts.map +1 -0
  38. package/dist/types/ChatInput/ChatInput.js.map +1 -0
  39. package/dist/{src/types → types}/ChatInput/ChatInputOptions.d.ts +6 -6
  40. package/dist/types/ChatInput/ChatInputOptions.d.ts.map +1 -0
  41. package/dist/types/ChatInput/ChatInputOptions.js.map +1 -0
  42. package/dist/types/Components/Button.d.ts.map +1 -0
  43. package/dist/types/Components/Button.js.map +1 -0
  44. package/dist/types/Components/ChannelSelectMenu.d.ts.map +1 -0
  45. package/dist/types/Components/ChannelSelectMenu.js.map +1 -0
  46. package/dist/types/Components/MentionableSelectMenu.d.ts.map +1 -0
  47. package/dist/types/Components/MentionableSelectMenu.js.map +1 -0
  48. package/dist/types/Components/Modal.d.ts.map +1 -0
  49. package/dist/types/Components/Modal.js.map +1 -0
  50. package/dist/types/Components/RoleSelectMenu.d.ts.map +1 -0
  51. package/dist/types/Components/RoleSelectMenu.js.map +1 -0
  52. package/dist/types/Components/StringSelectMenu.d.ts.map +1 -0
  53. package/dist/types/Components/StringSelectMenu.js.map +1 -0
  54. package/dist/types/Components/UserSelectMenu.d.ts.map +1 -0
  55. package/dist/types/Components/UserSelectMenu.js.map +1 -0
  56. package/dist/types/Event.d.ts.map +1 -0
  57. package/dist/types/Event.js.map +1 -0
  58. package/dist/{src/types → types}/Interaction.d.ts +5 -1
  59. package/dist/types/Interaction.d.ts.map +1 -0
  60. package/dist/types/Interaction.js.map +1 -0
  61. package/dist/types/other/CustomEvent.d.ts.map +1 -0
  62. package/dist/types/other/CustomEvent.js.map +1 -0
  63. package/dist/types/other/FakeMessageInteraction.d.ts +75 -0
  64. package/dist/types/other/FakeMessageInteraction.d.ts.map +1 -0
  65. package/dist/types/other/FakeMessageInteraction.js +311 -0
  66. package/dist/types/other/FakeMessageInteraction.js.map +1 -0
  67. package/dist/types/other/InteractionLocale.d.ts.map +1 -0
  68. package/dist/types/other/InteractionLocale.js.map +1 -0
  69. package/dist/types/other/Locale.d.ts.map +1 -0
  70. package/dist/types/other/Locale.js.map +1 -0
  71. package/dist/types/other/MessageContextMenu.d.ts.map +1 -0
  72. package/dist/types/other/MessageContextMenu.js.map +1 -0
  73. package/dist/types/other/UserContextMenu.d.ts.map +1 -0
  74. package/dist/types/other/UserContextMenu.js.map +1 -0
  75. package/dist/utils/MemoryStore.d.ts.map +1 -0
  76. package/dist/utils/MemoryStore.js.map +1 -0
  77. package/dist/utils/UtilTypes.d.ts.map +1 -0
  78. package/dist/utils/UtilTypes.js.map +1 -0
  79. package/dist/utils/customId.d.ts.map +1 -0
  80. package/dist/utils/customId.js.map +1 -0
  81. package/dist/utils/permissions.d.ts.map +1 -0
  82. package/dist/utils/permissions.js.map +1 -0
  83. package/dist/utils/recursiveImport.d.ts.map +1 -0
  84. package/dist/utils/recursiveImport.js.map +1 -0
  85. package/dist/utils/recursiveUnload.d.ts.map +1 -0
  86. package/dist/utils/recursiveUnload.js.map +1 -0
  87. package/dist/utils/unloadModule.d.ts.map +1 -0
  88. package/dist/utils/unloadModule.js.map +1 -0
  89. package/package.json +3 -2
  90. package/readme.md +35 -0
  91. package/src/DBI.ts +53 -1
  92. package/src/Events.ts +10 -1
  93. package/src/methods/handleMessageCommands.ts +310 -0
  94. package/src/methods/hookInteractionListeners.ts +1 -2
  95. package/src/types/ChatInput/ChatInputOptions.ts +3 -3
  96. package/src/types/Interaction.ts +1 -1
  97. package/src/types/other/FakeMessageInteraction.ts +294 -0
  98. package/dist/src/DBI.d.ts.map +0 -1
  99. package/dist/src/DBI.js.map +0 -1
  100. package/dist/src/Events.d.ts.map +0 -1
  101. package/dist/src/Events.js.map +0 -1
  102. package/dist/src/index.d.ts.map +0 -1
  103. package/dist/src/index.js.map +0 -1
  104. package/dist/src/methods/hookEventListeners.d.ts.map +0 -1
  105. package/dist/src/methods/hookEventListeners.js.map +0 -1
  106. package/dist/src/methods/hookInteractionListeners.d.ts.map +0 -1
  107. package/dist/src/methods/hookInteractionListeners.js.map +0 -1
  108. package/dist/src/methods/publishInteractions.d.ts.map +0 -1
  109. package/dist/src/methods/publishInteractions.js.map +0 -1
  110. package/dist/src/types/ApplicationRoleConnectionMetadata.d.ts.map +0 -1
  111. package/dist/src/types/ApplicationRoleConnectionMetadata.js.map +0 -1
  112. package/dist/src/types/Builders/ButtonBuilder.d.ts.map +0 -1
  113. package/dist/src/types/Builders/ButtonBuilder.js.map +0 -1
  114. package/dist/src/types/Builders/ChannelSelectMenuBuilder.d.ts.map +0 -1
  115. package/dist/src/types/Builders/ChannelSelectMenuBuilder.js.map +0 -1
  116. package/dist/src/types/Builders/MentionableSelectMenuBuilder.d.ts.map +0 -1
  117. package/dist/src/types/Builders/MentionableSelectMenuBuilder.js.map +0 -1
  118. package/dist/src/types/Builders/ModalBuilder.d.ts.map +0 -1
  119. package/dist/src/types/Builders/ModalBuilder.js.map +0 -1
  120. package/dist/src/types/Builders/RoleSelectMenuBuilder.d.ts.map +0 -1
  121. package/dist/src/types/Builders/RoleSelectMenuBuilder.js.map +0 -1
  122. package/dist/src/types/Builders/StringSelectMenuBuilder.d.ts.map +0 -1
  123. package/dist/src/types/Builders/StringSelectMenuBuilder.js.map +0 -1
  124. package/dist/src/types/Builders/UserSelectMenuBuilder.d.ts.map +0 -1
  125. package/dist/src/types/Builders/UserSelectMenuBuilder.js.map +0 -1
  126. package/dist/src/types/ChatInput/ChatInput.d.ts.map +0 -1
  127. package/dist/src/types/ChatInput/ChatInput.js.map +0 -1
  128. package/dist/src/types/ChatInput/ChatInputOptions.d.ts.map +0 -1
  129. package/dist/src/types/ChatInput/ChatInputOptions.js.map +0 -1
  130. package/dist/src/types/Components/Button.d.ts.map +0 -1
  131. package/dist/src/types/Components/Button.js.map +0 -1
  132. package/dist/src/types/Components/ChannelSelectMenu.d.ts.map +0 -1
  133. package/dist/src/types/Components/ChannelSelectMenu.js.map +0 -1
  134. package/dist/src/types/Components/MentionableSelectMenu.d.ts.map +0 -1
  135. package/dist/src/types/Components/MentionableSelectMenu.js.map +0 -1
  136. package/dist/src/types/Components/Modal.d.ts.map +0 -1
  137. package/dist/src/types/Components/Modal.js.map +0 -1
  138. package/dist/src/types/Components/RoleSelectMenu.d.ts.map +0 -1
  139. package/dist/src/types/Components/RoleSelectMenu.js.map +0 -1
  140. package/dist/src/types/Components/StringSelectMenu.d.ts.map +0 -1
  141. package/dist/src/types/Components/StringSelectMenu.js.map +0 -1
  142. package/dist/src/types/Components/UserSelectMenu.d.ts.map +0 -1
  143. package/dist/src/types/Components/UserSelectMenu.js.map +0 -1
  144. package/dist/src/types/Event.d.ts.map +0 -1
  145. package/dist/src/types/Event.js.map +0 -1
  146. package/dist/src/types/Interaction.d.ts.map +0 -1
  147. package/dist/src/types/Interaction.js.map +0 -1
  148. package/dist/src/types/other/CustomEvent.d.ts.map +0 -1
  149. package/dist/src/types/other/CustomEvent.js.map +0 -1
  150. package/dist/src/types/other/InteractionLocale.d.ts.map +0 -1
  151. package/dist/src/types/other/InteractionLocale.js.map +0 -1
  152. package/dist/src/types/other/Locale.d.ts.map +0 -1
  153. package/dist/src/types/other/Locale.js.map +0 -1
  154. package/dist/src/types/other/MessageContextMenu.d.ts.map +0 -1
  155. package/dist/src/types/other/MessageContextMenu.js.map +0 -1
  156. package/dist/src/types/other/UserContextMenu.d.ts.map +0 -1
  157. package/dist/src/types/other/UserContextMenu.js.map +0 -1
  158. package/dist/src/utils/MemoryStore.d.ts.map +0 -1
  159. package/dist/src/utils/MemoryStore.js.map +0 -1
  160. package/dist/src/utils/UtilTypes.d.ts.map +0 -1
  161. package/dist/src/utils/UtilTypes.js.map +0 -1
  162. package/dist/src/utils/customId.d.ts.map +0 -1
  163. package/dist/src/utils/customId.js.map +0 -1
  164. package/dist/src/utils/permissions.d.ts.map +0 -1
  165. package/dist/src/utils/permissions.js.map +0 -1
  166. package/dist/src/utils/recursiveImport.d.ts.map +0 -1
  167. package/dist/src/utils/recursiveImport.js.map +0 -1
  168. package/dist/src/utils/recursiveUnload.d.ts.map +0 -1
  169. package/dist/src/utils/recursiveUnload.js.map +0 -1
  170. package/dist/src/utils/unloadModule.d.ts.map +0 -1
  171. package/dist/src/utils/unloadModule.js.map +0 -1
  172. package/dist/test.d.ts +0 -2
  173. package/dist/test.d.ts.map +0 -1
  174. package/dist/test.js +0 -27
  175. package/dist/test.js.map +0 -1
  176. /package/dist/{src/Events.js → Events.js} +0 -0
  177. /package/dist/{src/data → data}/eventMap.json +0 -0
  178. /package/dist/{src/index.d.ts → index.d.ts} +0 -0
  179. /package/dist/{src/index.js → index.js} +0 -0
  180. /package/dist/{src/methods → methods}/hookEventListeners.d.ts +0 -0
  181. /package/dist/{src/methods → methods}/hookEventListeners.js +0 -0
  182. /package/dist/{src/methods → methods}/hookInteractionListeners.d.ts +0 -0
  183. /package/dist/{src/methods → methods}/publishInteractions.d.ts +0 -0
  184. /package/dist/{src/methods → methods}/publishInteractions.js +0 -0
  185. /package/dist/{src/types → types}/ApplicationRoleConnectionMetadata.d.ts +0 -0
  186. /package/dist/{src/types → types}/ApplicationRoleConnectionMetadata.js +0 -0
  187. /package/dist/{src/types → types}/Builders/ButtonBuilder.d.ts +0 -0
  188. /package/dist/{src/types → types}/Builders/ButtonBuilder.js +0 -0
  189. /package/dist/{src/types → types}/Builders/ChannelSelectMenuBuilder.d.ts +0 -0
  190. /package/dist/{src/types → types}/Builders/ChannelSelectMenuBuilder.js +0 -0
  191. /package/dist/{src/types → types}/Builders/MentionableSelectMenuBuilder.d.ts +0 -0
  192. /package/dist/{src/types → types}/Builders/MentionableSelectMenuBuilder.js +0 -0
  193. /package/dist/{src/types → types}/Builders/ModalBuilder.d.ts +0 -0
  194. /package/dist/{src/types → types}/Builders/ModalBuilder.js +0 -0
  195. /package/dist/{src/types → types}/Builders/RoleSelectMenuBuilder.d.ts +0 -0
  196. /package/dist/{src/types → types}/Builders/RoleSelectMenuBuilder.js +0 -0
  197. /package/dist/{src/types → types}/Builders/StringSelectMenuBuilder.d.ts +0 -0
  198. /package/dist/{src/types → types}/Builders/StringSelectMenuBuilder.js +0 -0
  199. /package/dist/{src/types → types}/Builders/UserSelectMenuBuilder.d.ts +0 -0
  200. /package/dist/{src/types → types}/Builders/UserSelectMenuBuilder.js +0 -0
  201. /package/dist/{src/types → types}/ChatInput/ChatInput.d.ts +0 -0
  202. /package/dist/{src/types → types}/ChatInput/ChatInput.js +0 -0
  203. /package/dist/{src/types → types}/ChatInput/ChatInputOptions.js +0 -0
  204. /package/dist/{src/types → types}/Components/Button.d.ts +0 -0
  205. /package/dist/{src/types → types}/Components/Button.js +0 -0
  206. /package/dist/{src/types → types}/Components/ChannelSelectMenu.d.ts +0 -0
  207. /package/dist/{src/types → types}/Components/ChannelSelectMenu.js +0 -0
  208. /package/dist/{src/types → types}/Components/MentionableSelectMenu.d.ts +0 -0
  209. /package/dist/{src/types → types}/Components/MentionableSelectMenu.js +0 -0
  210. /package/dist/{src/types → types}/Components/Modal.d.ts +0 -0
  211. /package/dist/{src/types → types}/Components/Modal.js +0 -0
  212. /package/dist/{src/types → types}/Components/RoleSelectMenu.d.ts +0 -0
  213. /package/dist/{src/types → types}/Components/RoleSelectMenu.js +0 -0
  214. /package/dist/{src/types → types}/Components/StringSelectMenu.d.ts +0 -0
  215. /package/dist/{src/types → types}/Components/StringSelectMenu.js +0 -0
  216. /package/dist/{src/types → types}/Components/UserSelectMenu.d.ts +0 -0
  217. /package/dist/{src/types → types}/Components/UserSelectMenu.js +0 -0
  218. /package/dist/{src/types → types}/Event.d.ts +0 -0
  219. /package/dist/{src/types → types}/Event.js +0 -0
  220. /package/dist/{src/types → types}/Interaction.js +0 -0
  221. /package/dist/{src/types → types}/other/CustomEvent.d.ts +0 -0
  222. /package/dist/{src/types → types}/other/CustomEvent.js +0 -0
  223. /package/dist/{src/types → types}/other/InteractionLocale.d.ts +0 -0
  224. /package/dist/{src/types → types}/other/InteractionLocale.js +0 -0
  225. /package/dist/{src/types → types}/other/Locale.d.ts +0 -0
  226. /package/dist/{src/types → types}/other/Locale.js +0 -0
  227. /package/dist/{src/types → types}/other/MessageContextMenu.d.ts +0 -0
  228. /package/dist/{src/types → types}/other/MessageContextMenu.js +0 -0
  229. /package/dist/{src/types → types}/other/UserContextMenu.d.ts +0 -0
  230. /package/dist/{src/types → types}/other/UserContextMenu.js +0 -0
  231. /package/dist/{src/utils → utils}/MemoryStore.d.ts +0 -0
  232. /package/dist/{src/utils → utils}/MemoryStore.js +0 -0
  233. /package/dist/{src/utils → utils}/UtilTypes.d.ts +0 -0
  234. /package/dist/{src/utils → utils}/UtilTypes.js +0 -0
  235. /package/dist/{src/utils → utils}/customId.d.ts +0 -0
  236. /package/dist/{src/utils → utils}/customId.js +0 -0
  237. /package/dist/{src/utils → utils}/permissions.d.ts +0 -0
  238. /package/dist/{src/utils → utils}/permissions.js +0 -0
  239. /package/dist/{src/utils → utils}/recursiveImport.d.ts +0 -0
  240. /package/dist/{src/utils → utils}/recursiveImport.js +0 -0
  241. /package/dist/{src/utils → utils}/recursiveUnload.d.ts +0 -0
  242. /package/dist/{src/utils → utils}/recursiveUnload.js +0 -0
  243. /package/dist/{src/utils → utils}/unloadModule.d.ts +0 -0
  244. /package/dist/{src/utils → utils}/unloadModule.js +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recursiveImport.js","sourceRoot":"","sources":["../../src/utils/recursiveImport.ts"],"names":[],"mappings":";;;;AAAA,oDAAoB;AACpB,wDAAwB;AAExB;;;GAGG;AACI,KAAK,UAAU,eAAe,CAAC,UAAkB,EAAE,OAAiB,CAAC,KAAK,CAAC,EAAE,SAAmB,CAAC,OAAO,EAAC,SAAS,EAAC,WAAW,CAAC;IACpI,IAAI,KAAK,GAAG,MAAM,YAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3E,IAAI,OAAO,GAAG,SAAS,CAAC;IAExB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;QACxB,IAAI,QAAQ,GAAG,cAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,QAAQ,GAAG,cAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,cAAI,CAAC,GAAG,GAAG,CAAC,EAAE;YACtC,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;gBACtB,MAAM,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;aACtC;iBAAM,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;gBAC5F,yBAAa,QAAQ,+CAAC,CAAC;aACxB;SACF;KACF;AACH,CAAC;AAfD,0CAeC","sourcesContent":["import fs from \"fs\";\r\nimport path from \"path\";\r\n\r\n/**\r\n * @example\r\n * await recursiveImport(\"./src\", [\".js\"], [\".d.ts\"])\r\n */\r\nexport async function recursiveImport(folderPath: string, exts: string[] = [\".js\"], ignore: string[] = [\".d.ts\",\".js.map\",\".d.ts.map\"]): Promise<any> {\r\n let files = await fs.promises.readdir(folderPath, { withFileTypes: true });\r\n let dirName = __dirname;\r\n\r\n for (const file of files) {\r\n let filePath = path.resolve(folderPath, file.name);\r\n let relative = path.relative(dirName, filePath);\r\n if (!relative.includes(`${path.sep}-`)) {\r\n if (file.isDirectory()) {\r\n await recursiveImport(filePath, exts)\r\n } else if (exts.some(i => file.name.endsWith(i)) && !ignore.some(i => file.name.endsWith(i))) {\r\n await import(filePath);\r\n }\r\n }\r\n }\r\n}"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recursiveUnload.d.ts","sourceRoot":"","sources":["../../src/utils/recursiveUnload.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,EAAY,EAAE,MAAM,GAAE,MAAM,EAAoC,GAAG,OAAO,CAAC,GAAG,CAAC,CAepJ"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recursiveUnload.js","sourceRoot":"","sources":["../../src/utils/recursiveUnload.ts"],"names":[],"mappings":";;;;AAAA,oDAAoB;AACpB,wDAAwB;AACxB,iDAA8C;AAE9C;;;;GAIG;AACI,KAAK,UAAU,eAAe,CAAC,UAAkB,EAAE,OAAiB,CAAC,KAAK,CAAC,EAAE,SAAmB,CAAC,OAAO,EAAC,SAAS,EAAC,WAAW,CAAC;IACpI,IAAI,KAAK,GAAG,MAAM,YAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3E,IAAI,OAAO,GAAG,SAAS,CAAC;IAExB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;QACxB,IAAI,QAAQ,GAAG,cAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,QAAQ,GAAG,cAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,cAAI,CAAC,GAAG,GAAG,CAAC,EAAE;YACtC,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;gBACtB,MAAM,eAAe,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;aACtC;iBAAM,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE;gBAC5F,IAAA,2BAAY,EAAC,QAAQ,CAAC,CAAA;aACvB;SACF;KACF;AACH,CAAC;AAfD,0CAeC","sourcesContent":["import fs from \"fs\";\r\nimport path from \"path\";\r\nimport { unloadModule } from \"./unloadModule\";\r\n\r\n/**\r\n * @example\r\n * await recursiveUnload(\"./src\", [\".js\"], [\".d.ts\"])\r\n * await dbi.unload()\r\n */\r\nexport async function recursiveUnload(folderPath: string, exts: string[] = [\".js\"], ignore: string[] = [\".d.ts\",\".js.map\",\".d.ts.map\"]): Promise<any> {\r\n let files = await fs.promises.readdir(folderPath, { withFileTypes: true });\r\n let dirName = __dirname;\r\n\r\n for (const file of files) {\r\n let filePath = path.resolve(folderPath, file.name);\r\n let relative = path.relative(dirName, filePath);\r\n if (!relative.includes(`${path.sep}-`)) {\r\n if (file.isDirectory()) {\r\n await recursiveUnload(filePath, exts)\r\n } else if (exts.some(i => file.name.endsWith(i)) && !ignore.some(i => file.name.endsWith(i))) {\r\n unloadModule(filePath)\r\n }\r\n }\r\n }\r\n}"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unloadModule.d.ts","sourceRoot":"","sources":["../../src/utils/unloadModule.ts"],"names":[],"mappings":"AAAA,wBAAgB,YAAY,CAAC,UAAU,KAAA,QAMtC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unloadModule.js","sourceRoot":"","sources":["../../src/utils/unloadModule.ts"],"names":[],"mappings":";;;AAAA,SAAgB,YAAY,CAAC,UAAU;IACrC,IAAI,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC3C,IAAI,UAAU,EAAE;QACd,KAAK,IAAI,KAAK,IAAI,UAAU,CAAC,QAAQ;YAAE,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;KAC/D;IACD,OAAO,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;AACnC,CAAC;AAND,oCAMC","sourcesContent":["export function unloadModule(modulePath) {\r\n let nodeModule = require.cache[modulePath];\r\n if (nodeModule) {\r\n for (let child of nodeModule.children) unloadModule(child.id);\r\n }\r\n delete require.cache[modulePath];\r\n}"]}
package/package.json CHANGED
@@ -6,11 +6,12 @@
6
6
  "discord-hybrid-sharding": "github:meister03/discord-hybrid-sharding",
7
7
  "discord.js": "^14.13.0",
8
8
  "lodash": "^4.17.21",
9
+ "plsargs": "^0.1.6",
9
10
  "snakecase-keys": "^5.4.2",
10
11
  "stuffs": "^0.1.21"
11
12
  },
12
13
  "name": "@mostfeatured/dbi",
13
- "version": "0.0.80",
14
+ "version": "0.0.82",
14
15
  "main": "dist/index.js",
15
16
  "type": "commonjs",
16
17
  "private": false,
@@ -40,4 +41,4 @@
40
41
  "access": "public",
41
42
  "registry": "https://registry.npmjs.org/"
42
43
  }
43
- }
44
+ }
package/readme.md CHANGED
@@ -35,8 +35,26 @@ let dbi = createDBI("xd", {
35
35
  ttl: 60 * 1000 * 60,
36
36
  check: 60 * 1000
37
37
  }
38
+ },
39
+ // Message Commands are optional. Message Commands work trough emulating the slash commands..
40
+ messageCommands: {
41
+ prefixes: ["!", "."],
42
+ typeAliases: {
43
+ booleans: {
44
+ "true": true,
45
+ "false": false,
46
+ "yes": true,
47
+ "no": false,
48
+ }
49
+ }
38
50
  }
39
51
  });
52
+
53
+ dbi.events.on("messageCommandArgumentError", (data) => {
54
+ data.message.reply(`‼️ Invalid argument \`${data.error.option.name}\` (Index: \`${data.error.index}\`). Error Kind: \`${data.error.type}\`. Expected: \`${ApplicationCommandOptionType[data.error.option.type]}\`${data.error.extra ? ` with any of \`${data.error.extra.map(i => i.name).join(", ")}\`` : ""}.`);
55
+ return false;
56
+ });
57
+
40
58
  module.exports = dbi;
41
59
  ```
42
60
 
@@ -307,9 +325,26 @@ let dbi = createDBI("xd", {
307
325
  ttl: 60 * 1000 * 60,
308
326
  check: 60 * 1000
309
327
  }
328
+ },
329
+ // Mesaj Komutları isteğe bağlıdır. Mesaj Komutları slash komutlarını taklit ederek çalışır. Yani siz sadece slash komut kodlasanız bile uyumlu olarak çalışacaktır.
330
+ messageCommands: {
331
+ prefixes: ["!", "."],
332
+ typeAliases: {
333
+ booleans: {
334
+ "true": true,
335
+ "false": false,
336
+ "yes": true,
337
+ "no": false,
338
+ }
339
+ }
310
340
  }
311
341
  });
312
342
 
343
+ dbi.events.on("messageCommandArgumentError", (data) => {
344
+ data.message.reply(`‼️ Hatalı argument \`${data.error.option.name}\` (Konum: \`${data.error.index}\`). Hata Tipi: \`${data.error.type}\`. Beklenen: \`${ApplicationCommandOptionType[data.error.option.type]}\`${data.error.extra ? ` şunlardan herhangi biri \`${data.error.extra.map(i => i.name).join(", ")}\`` : ""}.`);
345
+ return false;
346
+ });
347
+
313
348
  module.exports = dbi;
314
349
  ```
315
350
 
package/src/DBI.ts CHANGED
@@ -25,6 +25,7 @@ import { DBIUserSelectMenu, TDBIUserSelectMenuOmitted } from "./types/Components
25
25
  import { DBIMentionableSelectMenu, TDBIMentionableSelectMenuOmitted } from "./types/Components/MentionableSelectMenu";
26
26
  import { DBIChannelSelectMenu, TDBIChannelSelectMenuOmitted } from "./types/Components/ChannelSelectMenu";
27
27
  import { DBIRoleSelectMenu, TDBIRoleSelectMenuOmitted } from "./types/Components/RoleSelectMenu";
28
+ import { handleMessageCommands } from "./methods/handleMessageCommands";
28
29
 
29
30
  export interface DBIStore {
30
31
  get(key: string, defaultValue?: any): Promise<any>;
@@ -61,6 +62,12 @@ export interface DBIConfig {
61
62
  };
62
63
 
63
64
  strict: boolean;
65
+ messageCommands?: {
66
+ prefixes: string[];
67
+ typeAliases: {
68
+ booleans: Record<string, boolean>;
69
+ }
70
+ }
64
71
  }
65
72
 
66
73
  export interface DBIConfigConstructor {
@@ -98,6 +105,16 @@ export interface DBIConfigConstructor {
98
105
  }
99
106
 
100
107
  strict?: boolean;
108
+
109
+ messageCommands?: {
110
+ prefixes: string[];
111
+ typeAliases?: {
112
+ /**
113
+ * Example: {"yes": true, "no": false}
114
+ */
115
+ booleans?: Record<string, boolean>;
116
+ }
117
+ }
101
118
  }
102
119
 
103
120
  export interface DBIRegisterAPI<TNamespace extends NamespaceEnums> {
@@ -167,6 +184,25 @@ export class DBI<TNamespace extends NamespaceEnums, TOtherData = Record<string,
167
184
  ...(config.references || {})
168
185
  }
169
186
 
187
+ if (config.messageCommands) {
188
+ if (config.strict && !config.messageCommands?.prefixes?.length) throw new Error("No message command prefixes provided.");
189
+
190
+ let { typeAliases } = config.messageCommands;
191
+
192
+ config.messageCommands.typeAliases = {
193
+ booleans: typeAliases.booleans ?? {
194
+ "true": true,
195
+ "false": false,
196
+ "yes": true,
197
+ "no": false,
198
+ "y": true,
199
+ "n": false,
200
+ "1": true,
201
+ "0": false
202
+ }
203
+ };
204
+ }
205
+
170
206
  // @ts-ignore
171
207
  this.config = config;
172
208
 
@@ -235,10 +271,11 @@ export class DBI<TNamespace extends NamespaceEnums, TOtherData = Record<string,
235
271
 
236
272
  private async _hookListeners() {
237
273
  if (this._hooked) return;
274
+ const self = this;
238
275
  this._hooked = true;
239
276
  this.data.unloaders.add(hookInteractionListeners(this as any));
240
277
  this.data.unloaders.add(hookEventListeners(this as any));
241
- if (typeof this.config.references.autoClear != "undefined") {
278
+ if (typeof this.config.references.autoClear !== "undefined") {
242
279
  this.data.unloaders.add((() => {
243
280
  let interval = setInterval(() => {
244
281
  this.data.refs.forEach(({ at, ttl }, key) => {
@@ -252,6 +289,20 @@ export class DBI<TNamespace extends NamespaceEnums, TOtherData = Record<string,
252
289
  }
253
290
  })());
254
291
  }
292
+ if (typeof this.config.messageCommands !== "undefined") {
293
+ this.data.unloaders.add((() => {
294
+ const { client } = this.client();
295
+
296
+ function onMessage(message: Discord.Message) {
297
+ handleMessageCommands(self as any, message);
298
+ }
299
+
300
+ client.on("messageCreate", onMessage);
301
+ return () => {
302
+ client.off("messageCreate", onMessage);
303
+ }
304
+ })());
305
+ }
255
306
  }
256
307
 
257
308
  private async _unhookListeners() {
@@ -414,6 +465,7 @@ export class DBI<TNamespace extends NamespaceEnums, TOtherData = Record<string,
414
465
  },
415
466
  });
416
467
  }
468
+ self.data.interactions.sort((a, b) => a.name.length - b.name.length);
417
469
  }
418
470
 
419
471
  emit<TEventName extends keyof (NamespaceData[TNamespace]["customEvents"] & ClientEvents)>(name: TEventName, args: (NamespaceData[TNamespace]["customEvents"] & ClientEvents)[TEventName]): void {
package/src/Events.ts CHANGED
@@ -1,10 +1,13 @@
1
1
  import { NamespaceEnums, NamespaceData } from "../generated/namespaceData";
2
2
  import { DBI } from "./DBI";
3
+ import { TDBIMessageCommandArgumentErrorTypes } from "./methods/handleMessageCommands";
3
4
  import { ClientEvents } from "./types/Event";
4
5
  import { IDBIBaseExecuteCtx, TDBIRateLimitTypes } from "./types/Interaction";
6
+ import { FakeMessageInteraction } from "./types/other/FakeMessageInteraction";
5
7
  import { DBILocale } from "./types/other/Locale";
8
+ import Discord from "discord.js";
6
9
 
7
- export type TDBIEventNames = "beforeInteraction" | "afterInteraction" | "interactionRateLimit" | "beforeEvent" | "afterEvent" | "interactionError" | "eventError";
10
+ export type TDBIEventNames = "beforeInteraction" | "afterInteraction" | "interactionRateLimit" | "beforeEvent" | "afterEvent" | "interactionError" | "eventError" | "messageCommandArgumentError";
8
11
 
9
12
  export type TDBIEventHandlerCtx<TNamespace extends NamespaceEnums> = {
10
13
  [K in keyof (ClientEvents & NamespaceData[TNamespace]["customEvents"])]: { other: Record<string, any>, locale?: { guild: DBILocale<TNamespace> }, eventName: K } & (ClientEvents & NamespaceData[TNamespace]["customEvents"])[K]
@@ -69,6 +72,12 @@ export class Events<TNamespace extends NamespaceEnums> {
69
72
  options?: { once: boolean }
70
73
  ): (() => any);
71
74
 
75
+ on(
76
+ eventName: "messageCommandArgumentError",
77
+ handler: (data: { message: Discord.Message, interaction: FakeMessageInteraction, error: { type: TDBIMessageCommandArgumentErrorTypes, option: any, index: number, extra?: any }, value: any }) => Promise<boolean> | boolean,
78
+ options?: { once: boolean }
79
+ ): (() => any);
80
+
72
81
  on(eventName: TDBIEventNames, handler: (data: any) => Promise<boolean> | boolean, options: { once: boolean } = { once: false }): (() => any) {
73
82
  if (!this.handlers.hasOwnProperty(eventName)) this.handlers[eventName] = [];
74
83
  if (options.once) {
@@ -0,0 +1,310 @@
1
+ import { ApplicationCommandType, ChatInputCommandInteraction, Message, MessagePayload, ApplicationCommandOptionType } from "discord.js";
2
+ import { NamespaceEnums } from "../../generated/namespaceData";
3
+ import { DBI } from "../DBI";
4
+ import { FakeMessageInteraction } from "../types/other/FakeMessageInteraction";
5
+ import { TDBILocaleString } from "../types/other/Locale";
6
+
7
+ const INTEGER_REGEX = /^-?\d+$/;
8
+ const NUMBER_REGEX = /^-?\d+(?:\.\d+)?$/;
9
+
10
+ export type TDBIMessageCommandArgumentErrorTypes = "MissingRequiredOption" | "MinLength" | "MaxLength" | "InvalidChoice" | "InvalidInteger" | "MinInteger" | "MaxInteger" | "InvalidNumber" | "MinNumber" | "MaxNumber" | "InvalidBoolean" | "InvalidUser" | "InvalidChannel" | "InvalidRole" | "InvalidMentionable" | "InvalidCompleteChoice";
11
+
12
+ export async function handleMessageCommands(dbi: DBI<NamespaceEnums>, message: Message) {
13
+ const chatInputs = dbi.data.interactions.filter(i => i.type === "ChatInput");
14
+ const prefixes = dbi.config.messageCommands.prefixes ?? [];
15
+ if (!prefixes.length) return;
16
+ const content = message.content;
17
+ const usedPrefix = prefixes.find(p => content.startsWith(p));
18
+ if (!usedPrefix) return;
19
+ const contentWithoutPrefix = content.slice(usedPrefix?.length ?? 0);
20
+ const contentLower = contentWithoutPrefix.toLowerCase();
21
+
22
+ let locale: string = message.guild.preferredLocale?.split("-")?.at(0) || dbi.config.defaults.locale as any;
23
+ let usedAlias: string | undefined;
24
+ let chatInput = chatInputs.find(i => {
25
+ let found = contentLower.startsWith(i.name);
26
+ if (found) return true;
27
+ let alias = i.other?.messageCommand?.aliases?.find(a => contentLower.startsWith(a));
28
+ if (alias) {
29
+ usedAlias = alias;
30
+ return true;
31
+ }
32
+ return false;
33
+ });
34
+ let commandName = usedAlias ?? chatInput?.name;
35
+
36
+ if (!chatInput) {
37
+ fLoop: for (const [localeInterName, localeData] of dbi.data.interactionLocales) {
38
+ for (const [localeName, translation] of Object.entries(localeData.data || {})) {
39
+ if (contentLower.startsWith(translation.name)) {
40
+ commandName = translation.name;
41
+ locale = localeName;
42
+ chatInput = chatInputs.find(i => i.name === localeData.name);
43
+ break fLoop;
44
+ }
45
+ }
46
+ }
47
+ }
48
+
49
+ if (!chatInput) return;
50
+
51
+ const interaction = new FakeMessageInteraction(dbi, message, chatInput, locale, commandName, usedPrefix);
52
+
53
+ if (chatInput.options.length) {
54
+ let errorType: TDBIMessageCommandArgumentErrorTypes;
55
+ let lastOption: any;
56
+ let lastValue: any;
57
+ let lastExtra: any;
58
+ let lastIndex: number;
59
+ for (let i = 0; i < chatInput.options.length; i++) {
60
+ lastIndex = i;
61
+ const option: any = interaction.dbiChatInputOptions[i];
62
+ const value = interaction.parsedArgs.get(option.name)?.value;
63
+
64
+ lastOption = option;
65
+ lastValue = value;
66
+
67
+ switch (option.type) {
68
+ case ApplicationCommandOptionType.String: {
69
+ if (option.autocomplete && option.onComplete) {
70
+ let choices = await option.onComplete({
71
+ interaction,
72
+ value
73
+ });
74
+ if (!choices.length) choices = await option.onComplete({
75
+ interaction,
76
+ value: ""
77
+ });
78
+ if (choices.length > 20) throw new Error("Autocomplete returned more than 20 choices.");
79
+ lastExtra = choices;
80
+ if (!choices.find(c => c.name === value || c.value === value)) {
81
+ if (value) {
82
+ errorType = "InvalidCompleteChoice";
83
+ break;
84
+ } else if (option.required && !value) {
85
+ errorType = "MissingRequiredOption";
86
+ break;
87
+ }
88
+ }
89
+ option._choices = choices;
90
+ }
91
+
92
+ if (option.choices) {
93
+ const localeData = dbi.data.interactionLocales.get(chatInput.name)?.data;
94
+ const choicesLocaleData = localeData?.[locale as TDBILocaleString]?.options?.[option.name]?.choices;
95
+ if (!option.choices.find(c => c.name === value || c.value === value || (choicesLocaleData?.[c.value] && choicesLocaleData?.[c.value] === value))) {
96
+ lastExtra = option.choices.map(c => ({ name: choicesLocaleData?.[c.value] ?? c.name, value: c.value }));
97
+ if (value) {
98
+ errorType = "InvalidChoice";
99
+ break;
100
+ } else if (option.required && !value) {
101
+ errorType = "MissingRequiredOption";
102
+ break;
103
+ }
104
+ }
105
+ break;
106
+ }
107
+
108
+ if (option.minLength && value.length < option.minLength) {
109
+ errorType = "MinLength";
110
+ break;
111
+ }
112
+ if (option.maxLength && value.length > option.maxLength) {
113
+ errorType = "MaxLength";
114
+ break;
115
+ }
116
+
117
+ break;
118
+ }
119
+ case ApplicationCommandOptionType.Integer: {
120
+ let parsedInt = parseInt(value);
121
+
122
+ if (option.autocomplete && option.onComplete) {
123
+ let choices = await option.onComplete({
124
+ interaction,
125
+ value
126
+ });
127
+ if (!choices.length) choices = await option.onComplete({
128
+ interaction,
129
+ value: ""
130
+ });
131
+ if (choices.length > 20) throw new Error("Autocomplete returned more than 20 choices.");
132
+ lastExtra = choices;
133
+ if (!choices.find(c => c.value === parsedInt || c.name === value)) {
134
+ if (value) {
135
+ errorType = "InvalidCompleteChoice";
136
+ break;
137
+ } else if (option.required && !value) {
138
+ errorType = "MissingRequiredOption";
139
+ break;
140
+ }
141
+ }
142
+ option._choices = choices;
143
+ break;
144
+ }
145
+
146
+ if (option.choices) {
147
+ const localeData = dbi.data.interactionLocales.get(chatInput.name)?.data;
148
+ const choicesLocaleData = localeData?.[locale as TDBILocaleString]?.options?.[option.name]?.choices;
149
+ if (!option.choices.find(c => c.value === parsedInt || c.name === value || (choicesLocaleData?.[c.value] && choicesLocaleData?.[c.value] === value))) {
150
+ lastExtra = option.choices.map(c => ({ name: choicesLocaleData?.[c.value] ?? c.name, value: c.value }));
151
+ if (value) {
152
+ errorType = "InvalidChoice";
153
+ break;
154
+ } else if (option.required && !value) {
155
+ errorType = "MissingRequiredOption";
156
+ break;
157
+ }
158
+ }
159
+ break;
160
+ }
161
+
162
+ if (!INTEGER_REGEX.test(value)) {
163
+ errorType = "InvalidInteger";
164
+ break;
165
+ }
166
+
167
+ if (option.minValue && parsedInt < option.minValue) {
168
+ errorType = "MinInteger";
169
+ break;
170
+ }
171
+
172
+ if (option.maxValue && parsedInt > option.maxValue) {
173
+ errorType = "MaxInteger";
174
+ break;
175
+ }
176
+
177
+ break;
178
+ }
179
+ case ApplicationCommandOptionType.Number: {
180
+ let parsedFloat = parseFloat(value);
181
+
182
+ if (option.autocomplete && option.onComplete) {
183
+ let choices = await option.onComplete({
184
+ interaction,
185
+ value
186
+ });
187
+ if (!choices.length) choices = await option.onComplete({
188
+ interaction,
189
+ value: ""
190
+ });
191
+ if (choices.length > 20) throw new Error("Autocomplete returned more than 20 choices.");
192
+ lastExtra = choices;
193
+ if (!choices.find(c => c.value === parsedFloat || c.name === value)) {
194
+ if (value) {
195
+ errorType = "InvalidCompleteChoice";
196
+ break;
197
+ } else if (option.required && !value) {
198
+ errorType = "MissingRequiredOption";
199
+ break;
200
+ }
201
+ }
202
+ option._choices = choices;
203
+ break;
204
+ }
205
+
206
+ if (option.choices) {
207
+ const localeData = dbi.data.interactionLocales.get(chatInput.name)?.data;
208
+ const choicesLocaleData = localeData?.[locale as TDBILocaleString]?.options?.[option.name]?.choices;
209
+ if (!option.choices.find(c => c.value === parsedFloat || c.name === value || (choicesLocaleData?.[c.value] && choicesLocaleData?.[c.value] === value))) {
210
+ lastExtra = option.choices.map(c => ({ name: choicesLocaleData?.[c.value] ?? c.name, value: c.value }));
211
+ if (value) {
212
+ errorType = "InvalidChoice";
213
+ break;
214
+ } else if (option.required && !value) {
215
+ errorType = "MissingRequiredOption";
216
+ break;
217
+ }
218
+ }
219
+ break;
220
+ }
221
+
222
+ if (!NUMBER_REGEX.test(value)) {
223
+ errorType = "InvalidNumber";
224
+ break;
225
+ }
226
+
227
+ if (option.minValue && parsedFloat < option.minValue) {
228
+ errorType = "MinNumber";
229
+ break;
230
+ }
231
+
232
+ if (option.maxValue && parsedFloat > option.maxValue) {
233
+ errorType = "MaxNumber";
234
+ break;
235
+ }
236
+ break;
237
+ }
238
+ case ApplicationCommandOptionType.Boolean: {
239
+ let boolKeys = Object.keys(dbi.config.messageCommands.typeAliases.booleans);
240
+ if (!boolKeys.includes(value.toLowerCase())) {
241
+ errorType = "InvalidBoolean";
242
+ break;
243
+ }
244
+ break;
245
+ }
246
+ case ApplicationCommandOptionType.User: {
247
+ if (!interaction.options.getUser(option.name)) {
248
+ errorType = "InvalidUser";
249
+ break;
250
+ }
251
+ break;
252
+ }
253
+ case ApplicationCommandOptionType.Channel: {
254
+ if (!interaction.options.getChannel(option.name, null, option.channelTypes)) {
255
+ errorType = "InvalidChannel";
256
+ break;
257
+ }
258
+ break;
259
+ }
260
+ case ApplicationCommandOptionType.Role: {
261
+ if (!interaction.options.getRole(option.name)) {
262
+ errorType = "InvalidRole";
263
+ break;
264
+ }
265
+ break;
266
+ }
267
+ case ApplicationCommandOptionType.Mentionable: {
268
+ if (!interaction.options.getMentionable(option.name)) {
269
+ errorType = "InvalidMentionable";
270
+ break;
271
+ }
272
+ break;
273
+ }
274
+ case ApplicationCommandOptionType.Attachment: {
275
+ if (option.required && !value) {
276
+ errorType = "MissingRequiredOption";
277
+ }
278
+ break;
279
+ }
280
+ }
281
+
282
+ if (errorType) {
283
+ break;
284
+ } else {
285
+ lastExtra = null;
286
+ lastIndex = null;
287
+ lastOption = null;
288
+ lastValue = null;
289
+ }
290
+ }
291
+
292
+ if (errorType) {
293
+ let res = await dbi.events.trigger("messageCommandArgumentError", {
294
+ interaction,
295
+ message,
296
+ error: {
297
+ type: errorType,
298
+ option: lastOption,
299
+ extra: lastExtra,
300
+ index: lastIndex
301
+ },
302
+ value: lastValue
303
+ });
304
+ if (!res) return;
305
+ }
306
+ }
307
+
308
+
309
+ dbi.data.clients.first().client.emit("interactionCreate", interaction as any);
310
+ }
@@ -7,9 +7,8 @@ const componentTypes = ["Button", "StringSelectMenu", "UserSelectMenu", "RoleSel
7
7
 
8
8
  export function hookInteractionListeners(dbi: DBI<NamespaceEnums>): () => any {
9
9
  async function handle(inter: Discord.Interaction<"cached">) {
10
-
11
10
  const dbiInter =
12
- dbi.data.interactions.find(i => {
11
+ (inter as any).dbiChatInput ?? dbi.data.interactions.find(i => {
13
12
  let isUsesCustomId = (inter.isButton() || inter.isAnySelectMenu() || inter.isModalSubmit());
14
13
  let parsedId = isUsesCustomId ? parseCustomId(dbi, (inter as any).customId) : null;
15
14
  return (
@@ -19,7 +19,7 @@ export class DBIChatInputOptions<TNamespace extends NamespaceEnums> {
19
19
  constructor(dbi: DBI<TNamespace>) {
20
20
  this.dbi = dbi;
21
21
  }
22
- stringAutocomplete(cfg: TDBIBaseOption & TDBIMinMaxLength & { onComplete(ctx: IDBICompleteCtx<TNamespace, string>): Promise<TDBIValueName<string>[]> }) {
22
+ stringAutocomplete(cfg: TDBIBaseOption & TDBIMinMaxLength & { onComplete(ctx: IDBICompleteCtx<TNamespace, string>): Promise<TDBIValueName<string>[]> | TDBIValueName<string>[] }) {
23
23
  return {
24
24
  type: Discord.ApplicationCommandOptionType.String,
25
25
  name: cfg.name,
@@ -60,7 +60,7 @@ export class DBIChatInputOptions<TNamespace extends NamespaceEnums> {
60
60
  };
61
61
  }
62
62
 
63
- numberAutocomplete(cfg: TDBIBaseOption & TDBIMinMaxValue & { onComplete(ctx: IDBICompleteCtx<TNamespace, string>): Promise<TDBIValueName<number>[]> }) {
63
+ numberAutocomplete(cfg: TDBIBaseOption & TDBIMinMaxValue & { onComplete(ctx: IDBICompleteCtx<TNamespace, string>): Promise<TDBIValueName<number>[]> | TDBIValueName<number>[] }) {
64
64
  return {
65
65
  type: Discord.ApplicationCommandOptionType.Number,
66
66
  name: cfg.name,
@@ -102,7 +102,7 @@ export class DBIChatInputOptions<TNamespace extends NamespaceEnums> {
102
102
  };
103
103
  }
104
104
 
105
- integerAutocomplete(cfg: TDBIBaseOption & TDBIMinMaxValue & { onComplete(ctx: IDBICompleteCtx<TNamespace, string>): Promise<TDBIValueName<number>[]> }) {
105
+ integerAutocomplete(cfg: TDBIBaseOption & TDBIMinMaxValue & { onComplete(ctx: IDBICompleteCtx<TNamespace, string>): Promise<TDBIValueName<number>[]> | TDBIValueName<number>[] }) {
106
106
  return {
107
107
  type: Discord.ApplicationCommandOptionType.Integer,
108
108
  name: cfg.name,
@@ -81,7 +81,7 @@ export class DBIBaseInteraction<TNamespace extends NamespaceEnums> {
81
81
  description: string;
82
82
  readonly type: TDBIInteractionTypes;
83
83
  options?: any | any[];
84
- other?: Record<string, any>;
84
+ other?: Record<string, any> & { messageCommand: { aliases: string[] } };
85
85
  rateLimits?: DBIRateLimit[];
86
86
  toJSON(overrides: any): any { }
87
87