Implemented ODComponents (Part 1)

This commit is contained in:
DJj123dj
2026-05-03 22:05:14 +02:00
parent 4eb9331bf4
commit 6bfa0e0f10
4 changed files with 69 additions and 0 deletions
+13
View File
@@ -0,0 +1,13 @@
Open Discord Components:
------------------------
The "Components" system will be the new way of creating message and modal templates in Open Discord with support for Discord components v2.
Messages, embeds, modals, buttons, etc are currently constructed using the "Builders" system located in `./src/builders/...`.
This will be replaced with the new component factories in `./src/components/...`.
### Timing
Messages, modals & components will slowly be migrated to the new system during upcoming updates. The full migration will happen after `Open Ticket v4.3` and the HTML Transcripts v3 are ready for it.
For more information, contact [DJj123dj](https://github.com/DJj123dj) on Discord, Github or via email
+1
View File
@@ -8,6 +8,7 @@ export * from "./mappings/builder.js"
export * from "./mappings/checker.js" export * from "./mappings/checker.js"
export * from "./mappings/client.js" export * from "./mappings/client.js"
export * from "./mappings/code.js" export * from "./mappings/code.js"
export * from "./mappings/component.js"
export * from "./mappings/config.js" export * from "./mappings/config.js"
export * from "./mappings/console.js" export * from "./mappings/console.js"
export * from "./mappings/cooldown.js" export * from "./mappings/cooldown.js"
+2
View File
@@ -18,6 +18,7 @@ export class ODOpenTicketMain extends api.ODMain {
declare checkers: api.ODMappedCheckerManager declare checkers: api.ODMappedCheckerManager
declare builders: api.ODMappedBuilderManager declare builders: api.ODMappedBuilderManager
declare components: api.ODMappedComponentManager
declare responders: api.ODMappedResponderManager declare responders: api.ODMappedResponderManager
declare actions: api.ODMappedActionManager declare actions: api.ODMappedActionManager
declare verifybars: api.ODMappedVerifyBarManager declare verifybars: api.ODMappedVerifyBarManager
@@ -86,6 +87,7 @@ export class ODOpenTicketMain extends api.ODMain {
new api.ODMappedCheckerFunctionManager(debug) new api.ODMappedCheckerFunctionManager(debug)
), ),
builders:new api.ODMappedBuilderManager(debug), builders:new api.ODMappedBuilderManager(debug),
components:new api.ODMappedComponentManager(debug),
client, client,
responders:new api.ODMappedResponderManager(debug,client), responders:new api.ODMappedResponderManager(debug,client),
actions:new api.ODMappedActionManager(debug), actions:new api.ODMappedActionManager(debug),
+53
View File
@@ -0,0 +1,53 @@
///////////////////////////////////////
//OPEN TICKET COMPONENT MAPPINGS
///////////////////////////////////////
import * as api from "@open-discord-bots/framework/api"
import * as discord from "discord.js"
/**## ODSharedComponentManagerIdMappings `interface`
* A list of all available IDs in the default `ODSharedComponentManager` class in `opendiscord`.
* It's used to generate typescript declarations for this class.
*/
export interface ODSharedComponentManagerIdMappings extends api.ODComponentManagerIdConstraint {
"opendiscord:example-component":{origin:"slash"|"text"|"other",params:{guild:discord.Guild|null,channel:discord.TextBasedChannel,user:discord.User},workers:"opendiscord:example-component"},
}
/**## ODMessageComponentManagerIdMappings `interface`
* A list of all available IDs in the default `ODMessageComponentManager` class in `opendiscord`.
* It's used to generate typescript declarations for this class.
*/
export interface ODMessageComponentManagerIdMappings extends api.ODComponentManagerIdConstraint {
"opendiscord:example-message":{origin:"slash"|"text"|"other",params:{guild:discord.Guild|null,channel:discord.TextBasedChannel,user:discord.User},workers:"opendiscord:example-message"},
}
/**## ODModalComponentManagerIdMappings `interface`
* A list of all available IDs in the default `ODModalComponentManager` class in `opendiscord`.
* It's used to generate typescript declarations for this class.
*/
export interface ODModalComponentManagerIdMappings extends api.ODComponentManagerIdConstraint {
"opendiscord:example-modal":{origin:"slash"|"text"|"other",params:{guild:discord.Guild|null,channel:discord.TextBasedChannel,user:discord.User},workers:"opendiscord:example-modal"},
}
/////////////////////////////
////// MAPPED MANAGERS //////
/////////////////////////////
/**## ODMappedSharedComponentManager `class
* A special class with types for the Open Ticket `ODSharedComponentManager` class.
*/
export class ODMappedSharedComponentManager extends api.ODSharedComponentManager<ODSharedComponentManagerIdMappings> {}
/**## ODMappedMessageComponentManager `class
* A special class with types for the Open Ticket `ODMessageComponentManager` class.
*/
export class ODMappedMessageComponentManager extends api.ODMessageComponentManager<ODMessageComponentManagerIdMappings> {}
/**## ODMappedModalComponentManager `class
* A special class with types for the Open Ticket `ODModalComponentManager` class.
*/
export class ODMappedModalComponentManager extends api.ODModalComponentManager<ODModalComponentManagerIdMappings> {}
/**## ODMappedComponentManager `class
* A special class with types for the Open Ticket `ODBuilderManager` class.
*/
export class ODMappedComponentManager extends api.ODComponentManager<ODSharedComponentManagerIdMappings,ODMessageComponentManagerIdMappings,ODModalComponentManagerIdMappings> {}