@mostfeatured/dbi 0.1.47 → 0.2.0
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/dist/src/DBI.d.ts.map +1 -0
- package/dist/src/DBI.js.map +1 -0
- package/dist/src/Events.d.ts.map +1 -0
- package/dist/src/Events.js.map +1 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/methods/handleMessageCommands.d.ts.map +1 -0
- package/dist/src/methods/handleMessageCommands.js.map +1 -0
- package/dist/src/methods/hookEventListeners.d.ts.map +1 -0
- package/dist/src/methods/hookEventListeners.js.map +1 -0
- package/dist/src/methods/hookInteractionListeners.d.ts.map +1 -0
- package/dist/{methods → src/methods}/hookInteractionListeners.js +22 -12
- package/dist/src/methods/hookInteractionListeners.js.map +1 -0
- package/dist/src/methods/publishInteractions.d.ts.map +1 -0
- package/dist/src/methods/publishInteractions.js.map +1 -0
- package/dist/src/types/ApplicationRoleConnectionMetadata.d.ts.map +1 -0
- package/dist/src/types/ApplicationRoleConnectionMetadata.js.map +1 -0
- package/dist/src/types/Builders/ButtonBuilder.d.ts.map +1 -0
- package/dist/src/types/Builders/ButtonBuilder.js.map +1 -0
- package/dist/src/types/Builders/ChannelSelectMenuBuilder.d.ts.map +1 -0
- package/dist/src/types/Builders/ChannelSelectMenuBuilder.js.map +1 -0
- package/dist/src/types/Builders/MentionableSelectMenuBuilder.d.ts.map +1 -0
- package/dist/src/types/Builders/MentionableSelectMenuBuilder.js.map +1 -0
- package/dist/src/types/Builders/ModalBuilder.d.ts.map +1 -0
- package/dist/src/types/Builders/ModalBuilder.js.map +1 -0
- package/dist/src/types/Builders/RoleSelectMenuBuilder.d.ts.map +1 -0
- package/dist/src/types/Builders/RoleSelectMenuBuilder.js.map +1 -0
- package/dist/src/types/Builders/StringSelectMenuBuilder.d.ts.map +1 -0
- package/dist/src/types/Builders/StringSelectMenuBuilder.js.map +1 -0
- package/dist/src/types/Builders/UserSelectMenuBuilder.d.ts.map +1 -0
- package/dist/src/types/Builders/UserSelectMenuBuilder.js.map +1 -0
- package/dist/src/types/ChatInput/ChatInput.d.ts.map +1 -0
- package/dist/src/types/ChatInput/ChatInput.js.map +1 -0
- package/dist/{types → src/types}/ChatInput/ChatInputOptions.d.ts +2 -2
- package/dist/src/types/ChatInput/ChatInputOptions.d.ts.map +1 -0
- package/dist/src/types/ChatInput/ChatInputOptions.js.map +1 -0
- package/dist/src/types/Components/Button.d.ts.map +1 -0
- package/dist/src/types/Components/Button.js.map +1 -0
- package/dist/src/types/Components/ChannelSelectMenu.d.ts.map +1 -0
- package/dist/src/types/Components/ChannelSelectMenu.js.map +1 -0
- package/dist/src/types/Components/HTMLComponentsV2/HTMLComponentsV2Handlers.d.ts.map +1 -0
- package/dist/src/types/Components/HTMLComponentsV2/HTMLComponentsV2Handlers.js.map +1 -0
- package/dist/src/types/Components/HTMLComponentsV2/index.d.ts +91 -0
- package/dist/src/types/Components/HTMLComponentsV2/index.d.ts.map +1 -0
- package/dist/src/types/Components/HTMLComponentsV2/index.js +300 -0
- package/dist/src/types/Components/HTMLComponentsV2/index.js.map +1 -0
- package/dist/src/types/Components/HTMLComponentsV2/parser.d.ts.map +1 -0
- package/dist/{types → src/types}/Components/HTMLComponentsV2/parser.js +11 -4
- package/dist/src/types/Components/HTMLComponentsV2/parser.js.map +1 -0
- package/dist/src/types/Components/HTMLComponentsV2/svelteParser.d.ts +35 -0
- package/dist/src/types/Components/HTMLComponentsV2/svelteParser.d.ts.map +1 -0
- package/dist/src/types/Components/HTMLComponentsV2/svelteParser.js +822 -0
- package/dist/src/types/Components/HTMLComponentsV2/svelteParser.js.map +1 -0
- package/dist/src/types/Components/HTMLComponentsV2/svelteRenderer.d.ts +24 -0
- package/dist/src/types/Components/HTMLComponentsV2/svelteRenderer.d.ts.map +1 -0
- package/dist/src/types/Components/HTMLComponentsV2/svelteRenderer.js +294 -0
- package/dist/src/types/Components/HTMLComponentsV2/svelteRenderer.js.map +1 -0
- package/dist/src/types/Components/MentionableSelectMenu.d.ts.map +1 -0
- package/dist/src/types/Components/MentionableSelectMenu.js.map +1 -0
- package/dist/src/types/Components/Modal.d.ts.map +1 -0
- package/dist/src/types/Components/Modal.js.map +1 -0
- package/dist/src/types/Components/RoleSelectMenu.d.ts.map +1 -0
- package/dist/src/types/Components/RoleSelectMenu.js.map +1 -0
- package/dist/src/types/Components/StringSelectMenu.d.ts.map +1 -0
- package/dist/src/types/Components/StringSelectMenu.js.map +1 -0
- package/dist/src/types/Components/UserSelectMenu.d.ts.map +1 -0
- package/dist/src/types/Components/UserSelectMenu.js.map +1 -0
- package/dist/src/types/Event.d.ts.map +1 -0
- package/dist/src/types/Event.js.map +1 -0
- package/dist/src/types/Interaction.d.ts.map +1 -0
- package/dist/src/types/Interaction.js.map +1 -0
- package/dist/src/types/other/CustomEvent.d.ts.map +1 -0
- package/dist/src/types/other/CustomEvent.js.map +1 -0
- package/dist/src/types/other/FakeMessageInteraction.d.ts.map +1 -0
- package/dist/src/types/other/FakeMessageInteraction.js.map +1 -0
- package/dist/src/types/other/InteractionLocale.d.ts.map +1 -0
- package/dist/src/types/other/InteractionLocale.js.map +1 -0
- package/dist/src/types/other/Locale.d.ts.map +1 -0
- package/dist/src/types/other/Locale.js.map +1 -0
- package/dist/src/types/other/MessageContextMenu.d.ts.map +1 -0
- package/dist/src/types/other/MessageContextMenu.js.map +1 -0
- package/dist/src/types/other/UserContextMenu.d.ts.map +1 -0
- package/dist/src/types/other/UserContextMenu.js.map +1 -0
- package/dist/src/utils/MemoryStore.d.ts.map +1 -0
- package/dist/src/utils/MemoryStore.js.map +1 -0
- package/dist/src/utils/UtilTypes.d.ts.map +1 -0
- package/dist/src/utils/UtilTypes.js.map +1 -0
- package/dist/src/utils/customId.d.ts.map +1 -0
- package/dist/src/utils/customId.js.map +1 -0
- package/dist/src/utils/permissions.d.ts.map +1 -0
- package/dist/src/utils/permissions.js.map +1 -0
- package/dist/src/utils/recursiveImport.d.ts.map +1 -0
- package/dist/src/utils/recursiveImport.js.map +1 -0
- package/dist/src/utils/recursiveUnload.d.ts.map +1 -0
- package/dist/src/utils/recursiveUnload.js.map +1 -0
- package/dist/src/utils/unloadModule.d.ts.map +1 -0
- package/dist/src/utils/unloadModule.js.map +1 -0
- package/dist/test/index.d.ts +2 -0
- package/dist/test/index.d.ts.map +1 -0
- package/dist/test/index.js +103 -0
- package/dist/test/index.js.map +1 -0
- package/docs/ADVANCED_FEATURES.md +836 -0
- package/docs/API_REFERENCE.md +925 -0
- package/docs/CHAT_INPUT.md +807 -0
- package/docs/COMPONENTS.md +1035 -0
- package/docs/EVENTS.md +564 -0
- package/docs/GETTING_STARTED.md +394 -0
- package/docs/LOCALIZATION.md +773 -0
- package/docs/README.md +341 -0
- package/docs/SVELTE_COMPONENTS.md +955 -0
- package/generated/globals.d.ts +1 -0
- package/generated/index.d.ts +30 -0
- package/generated/svelte-dbi.d.ts +588 -0
- package/package.json +57 -47
- package/readme.md +168 -491
- package/src/methods/hookInteractionListeners.ts +23 -12
- package/src/types/Components/HTMLComponentsV2/index.ts +353 -12
- package/src/types/Components/HTMLComponentsV2/parser.ts +14 -4
- package/src/types/Components/HTMLComponentsV2/svelteParser.ts +904 -0
- package/src/types/Components/HTMLComponentsV2/svelteRenderer.ts +332 -0
- package/test/index.ts +105 -0
- package/test/product-showcase.svelte +199 -0
- package/tsconfig.json +13 -3
- package/dist/DBI.d.ts.map +0 -1
- package/dist/DBI.js.map +0 -1
- package/dist/Events.d.ts.map +0 -1
- package/dist/Events.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/methods/handleMessageCommands.d.ts.map +0 -1
- package/dist/methods/handleMessageCommands.js.map +0 -1
- package/dist/methods/hookEventListeners.d.ts.map +0 -1
- package/dist/methods/hookEventListeners.js.map +0 -1
- package/dist/methods/hookInteractionListeners.d.ts.map +0 -1
- package/dist/methods/hookInteractionListeners.js.map +0 -1
- package/dist/methods/publishInteractions.d.ts.map +0 -1
- package/dist/methods/publishInteractions.js.map +0 -1
- package/dist/types/ApplicationRoleConnectionMetadata.d.ts.map +0 -1
- package/dist/types/ApplicationRoleConnectionMetadata.js.map +0 -1
- package/dist/types/Builders/ButtonBuilder.d.ts.map +0 -1
- package/dist/types/Builders/ButtonBuilder.js.map +0 -1
- package/dist/types/Builders/ChannelSelectMenuBuilder.d.ts.map +0 -1
- package/dist/types/Builders/ChannelSelectMenuBuilder.js.map +0 -1
- package/dist/types/Builders/MentionableSelectMenuBuilder.d.ts.map +0 -1
- package/dist/types/Builders/MentionableSelectMenuBuilder.js.map +0 -1
- package/dist/types/Builders/ModalBuilder.d.ts.map +0 -1
- package/dist/types/Builders/ModalBuilder.js.map +0 -1
- package/dist/types/Builders/RoleSelectMenuBuilder.d.ts.map +0 -1
- package/dist/types/Builders/RoleSelectMenuBuilder.js.map +0 -1
- package/dist/types/Builders/StringSelectMenuBuilder.d.ts.map +0 -1
- package/dist/types/Builders/StringSelectMenuBuilder.js.map +0 -1
- package/dist/types/Builders/UserSelectMenuBuilder.d.ts.map +0 -1
- package/dist/types/Builders/UserSelectMenuBuilder.js.map +0 -1
- package/dist/types/ChatInput/ChatInput.d.ts.map +0 -1
- package/dist/types/ChatInput/ChatInput.js.map +0 -1
- package/dist/types/ChatInput/ChatInputOptions.d.ts.map +0 -1
- package/dist/types/ChatInput/ChatInputOptions.js.map +0 -1
- package/dist/types/Components/Button.d.ts.map +0 -1
- package/dist/types/Components/Button.js.map +0 -1
- package/dist/types/Components/ChannelSelectMenu.d.ts.map +0 -1
- package/dist/types/Components/ChannelSelectMenu.js.map +0 -1
- package/dist/types/Components/HTMLComponentsV2/HTMLComponentsV2Handlers.d.ts.map +0 -1
- package/dist/types/Components/HTMLComponentsV2/HTMLComponentsV2Handlers.js.map +0 -1
- package/dist/types/Components/HTMLComponentsV2/index.d.ts +0 -19
- package/dist/types/Components/HTMLComponentsV2/index.d.ts.map +0 -1
- package/dist/types/Components/HTMLComponentsV2/index.js +0 -31
- package/dist/types/Components/HTMLComponentsV2/index.js.map +0 -1
- package/dist/types/Components/HTMLComponentsV2/parser.d.ts.map +0 -1
- package/dist/types/Components/HTMLComponentsV2/parser.js.map +0 -1
- package/dist/types/Components/MentionableSelectMenu.d.ts.map +0 -1
- package/dist/types/Components/MentionableSelectMenu.js.map +0 -1
- package/dist/types/Components/Modal.d.ts.map +0 -1
- package/dist/types/Components/Modal.js.map +0 -1
- package/dist/types/Components/RoleSelectMenu.d.ts.map +0 -1
- package/dist/types/Components/RoleSelectMenu.js.map +0 -1
- package/dist/types/Components/StringSelectMenu.d.ts.map +0 -1
- package/dist/types/Components/StringSelectMenu.js.map +0 -1
- package/dist/types/Components/UserSelectMenu.d.ts.map +0 -1
- package/dist/types/Components/UserSelectMenu.js.map +0 -1
- package/dist/types/Event.d.ts.map +0 -1
- package/dist/types/Event.js.map +0 -1
- package/dist/types/Interaction.d.ts.map +0 -1
- package/dist/types/Interaction.js.map +0 -1
- package/dist/types/other/CustomEvent.d.ts.map +0 -1
- package/dist/types/other/CustomEvent.js.map +0 -1
- package/dist/types/other/FakeMessageInteraction.d.ts.map +0 -1
- package/dist/types/other/FakeMessageInteraction.js.map +0 -1
- package/dist/types/other/InteractionLocale.d.ts.map +0 -1
- package/dist/types/other/InteractionLocale.js.map +0 -1
- package/dist/types/other/Locale.d.ts.map +0 -1
- package/dist/types/other/Locale.js.map +0 -1
- package/dist/types/other/MessageContextMenu.d.ts.map +0 -1
- package/dist/types/other/MessageContextMenu.js.map +0 -1
- package/dist/types/other/UserContextMenu.d.ts.map +0 -1
- package/dist/types/other/UserContextMenu.js.map +0 -1
- package/dist/utils/MemoryStore.d.ts.map +0 -1
- package/dist/utils/MemoryStore.js.map +0 -1
- package/dist/utils/UtilTypes.d.ts.map +0 -1
- package/dist/utils/UtilTypes.js.map +0 -1
- package/dist/utils/customId.d.ts.map +0 -1
- package/dist/utils/customId.js.map +0 -1
- package/dist/utils/permissions.d.ts.map +0 -1
- package/dist/utils/permissions.js.map +0 -1
- package/dist/utils/recursiveImport.d.ts.map +0 -1
- package/dist/utils/recursiveImport.js.map +0 -1
- package/dist/utils/recursiveUnload.d.ts.map +0 -1
- package/dist/utils/recursiveUnload.js.map +0 -1
- package/dist/utils/unloadModule.d.ts.map +0 -1
- package/dist/utils/unloadModule.js.map +0 -1
- package/examples/modal/dbi.js +0 -30
- package/examples/modal/login.js +0 -15
- package/examples/modal/package.json +0 -15
- package/examples/modal/publish.js +0 -13
- package/examples/modal/src/chatInput.js +0 -38
- package/examples/modal/src/components.js +0 -33
- package/examples/modal/src/event.js +0 -20
- package/examples/modal/src/interactionlocales.js +0 -24
- package/examples/modal/src/locales.js +0 -38
- package/examples/modal/src/modal.js +0 -28
- /package/dist/{DBI.d.ts → src/DBI.d.ts} +0 -0
- /package/dist/{DBI.js → src/DBI.js} +0 -0
- /package/dist/{Events.d.ts → src/Events.d.ts} +0 -0
- /package/dist/{Events.js → src/Events.js} +0 -0
- /package/dist/{data → src/data}/eventMap.json +0 -0
- /package/dist/{index.d.ts → src/index.d.ts} +0 -0
- /package/dist/{index.js → src/index.js} +0 -0
- /package/dist/{methods → src/methods}/handleMessageCommands.d.ts +0 -0
- /package/dist/{methods → src/methods}/handleMessageCommands.js +0 -0
- /package/dist/{methods → src/methods}/hookEventListeners.d.ts +0 -0
- /package/dist/{methods → src/methods}/hookEventListeners.js +0 -0
- /package/dist/{methods → src/methods}/hookInteractionListeners.d.ts +0 -0
- /package/dist/{methods → src/methods}/publishInteractions.d.ts +0 -0
- /package/dist/{methods → src/methods}/publishInteractions.js +0 -0
- /package/dist/{types → src/types}/ApplicationRoleConnectionMetadata.d.ts +0 -0
- /package/dist/{types → src/types}/ApplicationRoleConnectionMetadata.js +0 -0
- /package/dist/{types → src/types}/Builders/ButtonBuilder.d.ts +0 -0
- /package/dist/{types → src/types}/Builders/ButtonBuilder.js +0 -0
- /package/dist/{types → src/types}/Builders/ChannelSelectMenuBuilder.d.ts +0 -0
- /package/dist/{types → src/types}/Builders/ChannelSelectMenuBuilder.js +0 -0
- /package/dist/{types → src/types}/Builders/MentionableSelectMenuBuilder.d.ts +0 -0
- /package/dist/{types → src/types}/Builders/MentionableSelectMenuBuilder.js +0 -0
- /package/dist/{types → src/types}/Builders/ModalBuilder.d.ts +0 -0
- /package/dist/{types → src/types}/Builders/ModalBuilder.js +0 -0
- /package/dist/{types → src/types}/Builders/RoleSelectMenuBuilder.d.ts +0 -0
- /package/dist/{types → src/types}/Builders/RoleSelectMenuBuilder.js +0 -0
- /package/dist/{types → src/types}/Builders/StringSelectMenuBuilder.d.ts +0 -0
- /package/dist/{types → src/types}/Builders/StringSelectMenuBuilder.js +0 -0
- /package/dist/{types → src/types}/Builders/UserSelectMenuBuilder.d.ts +0 -0
- /package/dist/{types → src/types}/Builders/UserSelectMenuBuilder.js +0 -0
- /package/dist/{types → src/types}/ChatInput/ChatInput.d.ts +0 -0
- /package/dist/{types → src/types}/ChatInput/ChatInput.js +0 -0
- /package/dist/{types → src/types}/ChatInput/ChatInputOptions.js +0 -0
- /package/dist/{types → src/types}/Components/Button.d.ts +0 -0
- /package/dist/{types → src/types}/Components/Button.js +0 -0
- /package/dist/{types → src/types}/Components/ChannelSelectMenu.d.ts +0 -0
- /package/dist/{types → src/types}/Components/ChannelSelectMenu.js +0 -0
- /package/dist/{types → src/types}/Components/HTMLComponentsV2/HTMLComponentsV2Handlers.d.ts +0 -0
- /package/dist/{types → src/types}/Components/HTMLComponentsV2/HTMLComponentsV2Handlers.js +0 -0
- /package/dist/{types → src/types}/Components/HTMLComponentsV2/parser.d.ts +0 -0
- /package/dist/{types → src/types}/Components/MentionableSelectMenu.d.ts +0 -0
- /package/dist/{types → src/types}/Components/MentionableSelectMenu.js +0 -0
- /package/dist/{types → src/types}/Components/Modal.d.ts +0 -0
- /package/dist/{types → src/types}/Components/Modal.js +0 -0
- /package/dist/{types → src/types}/Components/RoleSelectMenu.d.ts +0 -0
- /package/dist/{types → src/types}/Components/RoleSelectMenu.js +0 -0
- /package/dist/{types → src/types}/Components/StringSelectMenu.d.ts +0 -0
- /package/dist/{types → src/types}/Components/StringSelectMenu.js +0 -0
- /package/dist/{types → src/types}/Components/UserSelectMenu.d.ts +0 -0
- /package/dist/{types → src/types}/Components/UserSelectMenu.js +0 -0
- /package/dist/{types → src/types}/Event.d.ts +0 -0
- /package/dist/{types → src/types}/Event.js +0 -0
- /package/dist/{types → src/types}/Interaction.d.ts +0 -0
- /package/dist/{types → src/types}/Interaction.js +0 -0
- /package/dist/{types → src/types}/other/CustomEvent.d.ts +0 -0
- /package/dist/{types → src/types}/other/CustomEvent.js +0 -0
- /package/dist/{types → src/types}/other/FakeMessageInteraction.d.ts +0 -0
- /package/dist/{types → src/types}/other/FakeMessageInteraction.js +0 -0
- /package/dist/{types → src/types}/other/InteractionLocale.d.ts +0 -0
- /package/dist/{types → src/types}/other/InteractionLocale.js +0 -0
- /package/dist/{types → src/types}/other/Locale.d.ts +0 -0
- /package/dist/{types → src/types}/other/Locale.js +0 -0
- /package/dist/{types → src/types}/other/MessageContextMenu.d.ts +0 -0
- /package/dist/{types → src/types}/other/MessageContextMenu.js +0 -0
- /package/dist/{types → src/types}/other/UserContextMenu.d.ts +0 -0
- /package/dist/{types → src/types}/other/UserContextMenu.js +0 -0
- /package/dist/{utils → src/utils}/MemoryStore.d.ts +0 -0
- /package/dist/{utils → src/utils}/MemoryStore.js +0 -0
- /package/dist/{utils → src/utils}/UtilTypes.d.ts +0 -0
- /package/dist/{utils → src/utils}/UtilTypes.js +0 -0
- /package/dist/{utils → src/utils}/customId.d.ts +0 -0
- /package/dist/{utils → src/utils}/customId.js +0 -0
- /package/dist/{utils → src/utils}/permissions.d.ts +0 -0
- /package/dist/{utils → src/utils}/permissions.js +0 -0
- /package/dist/{utils → src/utils}/recursiveImport.d.ts +0 -0
- /package/dist/{utils → src/utils}/recursiveImport.js +0 -0
- /package/dist/{utils → src/utils}/recursiveUnload.d.ts +0 -0
- /package/dist/{utils → src/utils}/recursiveUnload.js +0 -0
- /package/dist/{utils → src/utils}/unloadModule.d.ts +0 -0
- /package/dist/{utils → src/utils}/unloadModule.js +0 -0
package/docs/README.md
ADDED
|
@@ -0,0 +1,341 @@
|
|
|
1
|
+
# DBI - Discord Bot Infrastructure
|
|
2
|
+
|
|
3
|
+
<div align="center">
|
|
4
|
+
|
|
5
|
+
**The most advanced, modern, and developer-friendly Discord bot framework available.**
|
|
6
|
+
|
|
7
|
+
[](https://www.npmjs.com/package/@mostfeatured/dbi)
|
|
8
|
+
[](https://discord.js.org)
|
|
9
|
+
[](https://www.typescriptlang.org/)
|
|
10
|
+
|
|
11
|
+
</div>
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 🌟 Why DBI?
|
|
16
|
+
|
|
17
|
+
DBI (Discord Bot Infrastructure) is not just another Discord bot template—it's a **powerful NPM module** that provides a complete infrastructure for building production-ready Discord bots with minimal boilerplate.
|
|
18
|
+
|
|
19
|
+
### Key Features
|
|
20
|
+
|
|
21
|
+
| Feature | Description |
|
|
22
|
+
|---------|-------------|
|
|
23
|
+
| 🎯 **Slash Commands** | Full support for Discord's application commands with type-safe options |
|
|
24
|
+
| 🧩 **Components V2** | Buttons, Select Menus, Modals with built-in state management |
|
|
25
|
+
| ⚡ **Svelte Integration** | Build reactive Discord UIs with Svelte 5 components |
|
|
26
|
+
| 🌍 **Localization** | Multi-language support for both content and interactions |
|
|
27
|
+
| 📨 **Message Commands** | Automatic slash-to-message command conversion |
|
|
28
|
+
| 🔄 **Reference System** | Pass complex data through components without database |
|
|
29
|
+
| ⏱️ **Rate Limiting** | Built-in per-user, channel, guild rate limiting |
|
|
30
|
+
| 🔀 **Multi-Client** | Support for multiple bot clients simultaneously |
|
|
31
|
+
| 📦 **Hybrid Sharding** | Built-in support for discord-hybrid-sharding |
|
|
32
|
+
| 🔒 **Type Safety** | Full TypeScript support with intelligent autocomplete |
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## 📚 Documentation
|
|
37
|
+
|
|
38
|
+
| Document | Description |
|
|
39
|
+
|----------|-------------|
|
|
40
|
+
| [Getting Started](./GETTING_STARTED.md) | Installation and basic setup |
|
|
41
|
+
| [Chat Input Commands](./CHAT_INPUT.md) | Slash commands and options |
|
|
42
|
+
| [Components](./COMPONENTS.md) | Buttons, Select Menus, Modals |
|
|
43
|
+
| [Events](./EVENTS.md) | Discord events and Custom Events |
|
|
44
|
+
| [Localization](./LOCALIZATION.md) | Multi-language support |
|
|
45
|
+
| [Svelte Components](./SVELTE_COMPONENTS.md) | Reactive UI with Svelte 5 |
|
|
46
|
+
| [Advanced Features](./ADVANCED_FEATURES.md) | References, Rate Limiting, Message Commands |
|
|
47
|
+
| [API Reference](./API_REFERENCE.md) | Complete API documentation |
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## 🚀 Quick Start
|
|
52
|
+
|
|
53
|
+
### Installation
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
npm install @mostfeatured/dbi discord.js
|
|
57
|
+
# or
|
|
58
|
+
pnpm add @mostfeatured/dbi discord.js
|
|
59
|
+
# or
|
|
60
|
+
yarn add @mostfeatured/dbi discord.js
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### Project Structure
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
my-bot/
|
|
67
|
+
├── dbi.js # DBI configuration
|
|
68
|
+
├── login.js # Bot startup script
|
|
69
|
+
├── publish.js # Command publishing script
|
|
70
|
+
└── src/ # Your bot features
|
|
71
|
+
├── commands/
|
|
72
|
+
├── events/
|
|
73
|
+
├── components/
|
|
74
|
+
└── locales/
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### Step 1: Configure DBI (`dbi.js`)
|
|
78
|
+
|
|
79
|
+
```javascript
|
|
80
|
+
const { createDBI } = require("@mostfeatured/dbi");
|
|
81
|
+
|
|
82
|
+
const dbi = createDBI("my-bot", {
|
|
83
|
+
strict: true,
|
|
84
|
+
discord: {
|
|
85
|
+
token: process.env.DISCORD_TOKEN,
|
|
86
|
+
options: {
|
|
87
|
+
intents: ["Guilds", "GuildMessages"]
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
defaults: {
|
|
91
|
+
locale: { name: "en" },
|
|
92
|
+
defaultMemberPermissions: ["SendMessages"],
|
|
93
|
+
directMessages: false
|
|
94
|
+
},
|
|
95
|
+
references: {
|
|
96
|
+
autoClear: {
|
|
97
|
+
ttl: 60 * 60 * 1000, // 1 hour
|
|
98
|
+
check: 60 * 1000 // Check every minute
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
|
|
103
|
+
module.exports = dbi;
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### Step 2: Create a Command (`src/commands/ping.js`)
|
|
107
|
+
|
|
108
|
+
```javascript
|
|
109
|
+
const dbi = require("../dbi");
|
|
110
|
+
|
|
111
|
+
dbi.register(({ ChatInput }) => {
|
|
112
|
+
ChatInput({
|
|
113
|
+
name: "ping",
|
|
114
|
+
description: "Check the bot's latency",
|
|
115
|
+
async onExecute({ interaction, dbi }) {
|
|
116
|
+
const latency = dbi.client().client.ws.ping;
|
|
117
|
+
await interaction.reply(`🏓 Pong! Latency: ${latency}ms`);
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
});
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
### Step 3: Start the Bot (`login.js`)
|
|
124
|
+
|
|
125
|
+
```javascript
|
|
126
|
+
const { Utils } = require("@mostfeatured/dbi");
|
|
127
|
+
const dbi = require("./dbi");
|
|
128
|
+
|
|
129
|
+
(async () => {
|
|
130
|
+
// Import all files from src/
|
|
131
|
+
await Utils.recursiveImport("./src");
|
|
132
|
+
|
|
133
|
+
// Load all registered features
|
|
134
|
+
await dbi.load();
|
|
135
|
+
|
|
136
|
+
// Connect to Discord
|
|
137
|
+
await dbi.login();
|
|
138
|
+
|
|
139
|
+
console.log(`✅ Logged in as ${dbi.client().client.user.tag}`);
|
|
140
|
+
})();
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
### Step 4: Publish Commands (`publish.js`)
|
|
144
|
+
|
|
145
|
+
```javascript
|
|
146
|
+
const { Utils } = require("@mostfeatured/dbi");
|
|
147
|
+
const dbi = require("./dbi");
|
|
148
|
+
|
|
149
|
+
(async () => {
|
|
150
|
+
await Utils.recursiveImport("./src");
|
|
151
|
+
await dbi.load();
|
|
152
|
+
|
|
153
|
+
// Publish to a specific guild (for development)
|
|
154
|
+
await dbi.publish("Guild", "YOUR_GUILD_ID");
|
|
155
|
+
|
|
156
|
+
// Or publish globally (for production)
|
|
157
|
+
// await dbi.publish("Global");
|
|
158
|
+
|
|
159
|
+
await dbi.unload();
|
|
160
|
+
console.log("✅ Commands published!");
|
|
161
|
+
})();
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
## 🎯 Core Concepts
|
|
167
|
+
|
|
168
|
+
### The Register Pattern
|
|
169
|
+
|
|
170
|
+
DBI uses a register pattern to define all bot features:
|
|
171
|
+
|
|
172
|
+
```javascript
|
|
173
|
+
dbi.register(({ ChatInput, Button, Event, Locale }) => {
|
|
174
|
+
// Define features here
|
|
175
|
+
ChatInput({ /* ... */ });
|
|
176
|
+
Button({ /* ... */ });
|
|
177
|
+
Event({ /* ... */ });
|
|
178
|
+
Locale({ /* ... */ });
|
|
179
|
+
});
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
This pattern provides:
|
|
183
|
+
- **Dependency injection** - Access only what you need
|
|
184
|
+
- **Type safety** - Full autocomplete support
|
|
185
|
+
- **Organization** - Group related features together
|
|
186
|
+
- **Hot reloading** - Support for `onUnload` callbacks
|
|
187
|
+
|
|
188
|
+
### Available Register Functions
|
|
189
|
+
|
|
190
|
+
| Function | Description |
|
|
191
|
+
|----------|-------------|
|
|
192
|
+
| `ChatInput` | Slash commands |
|
|
193
|
+
| `Button` | Button components |
|
|
194
|
+
| `StringSelectMenu` | String select menus |
|
|
195
|
+
| `UserSelectMenu` | User select menus |
|
|
196
|
+
| `RoleSelectMenu` | Role select menus |
|
|
197
|
+
| `ChannelSelectMenu` | Channel select menus |
|
|
198
|
+
| `MentionableSelectMenu` | Mentionable select menus |
|
|
199
|
+
| `Modal` | Modal dialogs |
|
|
200
|
+
| `MessageContextMenu` | Message context menu commands |
|
|
201
|
+
| `UserContextMenu` | User context menu commands |
|
|
202
|
+
| `Event` | Discord events |
|
|
203
|
+
| `Locale` | Content localization |
|
|
204
|
+
| `InteractionLocale` | Interaction name localization |
|
|
205
|
+
| `CustomEvent` | Custom event definitions |
|
|
206
|
+
| `HTMLComponentsV2` | Svelte/Eta template components |
|
|
207
|
+
| `ChatInputOptions` | Command option builders |
|
|
208
|
+
| `onUnload` | Cleanup callback for hot reloading |
|
|
209
|
+
|
|
210
|
+
### Inline Listeners
|
|
211
|
+
|
|
212
|
+
Create one-time use components without pre-registration:
|
|
213
|
+
|
|
214
|
+
```javascript
|
|
215
|
+
dbi.register(({ ChatInput, createInlineButton }) => {
|
|
216
|
+
ChatInput({
|
|
217
|
+
name: "confirm",
|
|
218
|
+
description: "Confirm an action",
|
|
219
|
+
async onExecute({ interaction }) {
|
|
220
|
+
const confirmBtn = createInlineButton({
|
|
221
|
+
options: { style: "Success", label: "Confirm" },
|
|
222
|
+
onExecute({ interaction }) {
|
|
223
|
+
interaction.reply("Confirmed!");
|
|
224
|
+
}
|
|
225
|
+
});
|
|
226
|
+
|
|
227
|
+
await interaction.reply({
|
|
228
|
+
content: "Are you sure?",
|
|
229
|
+
components: [
|
|
230
|
+
{
|
|
231
|
+
type: 1,
|
|
232
|
+
components: [confirmBtn.toJSON()]
|
|
233
|
+
}
|
|
234
|
+
]
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
});
|
|
238
|
+
});
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
---
|
|
242
|
+
|
|
243
|
+
## 💡 Example: Complete Feature
|
|
244
|
+
|
|
245
|
+
Here's a complete example showing multiple DBI features working together:
|
|
246
|
+
|
|
247
|
+
```javascript
|
|
248
|
+
const dbi = require("../dbi");
|
|
249
|
+
const Discord = require("discord.js");
|
|
250
|
+
|
|
251
|
+
dbi.register(({ ChatInput, ChatInputOptions, Button, Locale }) => {
|
|
252
|
+
|
|
253
|
+
// Localization
|
|
254
|
+
Locale({
|
|
255
|
+
name: "en",
|
|
256
|
+
data: {
|
|
257
|
+
poll: {
|
|
258
|
+
title: "Poll: {0}",
|
|
259
|
+
voted: "You voted for: {0}",
|
|
260
|
+
results: "Results so far:"
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
});
|
|
264
|
+
|
|
265
|
+
// Button handler
|
|
266
|
+
Button({
|
|
267
|
+
name: "poll-vote",
|
|
268
|
+
onExecute({ interaction, data, locale }) {
|
|
269
|
+
const [option] = data;
|
|
270
|
+
interaction.reply({
|
|
271
|
+
content: locale.user.data.poll.voted(option),
|
|
272
|
+
ephemeral: true
|
|
273
|
+
});
|
|
274
|
+
},
|
|
275
|
+
options: {
|
|
276
|
+
style: Discord.ButtonStyle.Primary
|
|
277
|
+
}
|
|
278
|
+
});
|
|
279
|
+
|
|
280
|
+
// Slash command
|
|
281
|
+
ChatInput({
|
|
282
|
+
name: "poll",
|
|
283
|
+
description: "Create a poll",
|
|
284
|
+
options: [
|
|
285
|
+
ChatInputOptions.string({
|
|
286
|
+
name: "question",
|
|
287
|
+
description: "The poll question",
|
|
288
|
+
required: true
|
|
289
|
+
}),
|
|
290
|
+
ChatInputOptions.string({
|
|
291
|
+
name: "options",
|
|
292
|
+
description: "Comma-separated options",
|
|
293
|
+
required: true
|
|
294
|
+
})
|
|
295
|
+
],
|
|
296
|
+
async onExecute({ interaction, locale, dbi }) {
|
|
297
|
+
const question = interaction.options.getString("question");
|
|
298
|
+
const options = interaction.options.getString("options").split(",");
|
|
299
|
+
|
|
300
|
+
const buttons = options.map(opt =>
|
|
301
|
+
dbi.interaction("poll-vote").toJSON({
|
|
302
|
+
overrides: { label: opt.trim() },
|
|
303
|
+
reference: { data: [opt.trim()] }
|
|
304
|
+
})
|
|
305
|
+
);
|
|
306
|
+
|
|
307
|
+
await interaction.reply({
|
|
308
|
+
content: locale.user.data.poll.title(question),
|
|
309
|
+
components: [
|
|
310
|
+
{
|
|
311
|
+
type: Discord.ComponentType.ActionRow,
|
|
312
|
+
components: buttons
|
|
313
|
+
}
|
|
314
|
+
]
|
|
315
|
+
});
|
|
316
|
+
}
|
|
317
|
+
});
|
|
318
|
+
});
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
---
|
|
322
|
+
|
|
323
|
+
## 🔗 Related Links
|
|
324
|
+
|
|
325
|
+
- [Discord.js Documentation](https://discord.js.org/)
|
|
326
|
+
- [Discord Developer Portal](https://discord.com/developers/applications)
|
|
327
|
+
- [Discord API Documentation](https://discord.com/developers/docs)
|
|
328
|
+
|
|
329
|
+
---
|
|
330
|
+
|
|
331
|
+
## 📄 License
|
|
332
|
+
|
|
333
|
+
MIT License - See [LICENSE](../LICENSE) for details.
|
|
334
|
+
|
|
335
|
+
---
|
|
336
|
+
|
|
337
|
+
<div align="center">
|
|
338
|
+
|
|
339
|
+
**Made with ❤️ by [TheArmagan](https://github.com/TheArmagan) and the MostFeatured team**
|
|
340
|
+
|
|
341
|
+
</div>
|