diff --git a/src/components/_INFO.md b/src/components/_INFO.md new file mode 100644 index 0000000..ccf360e --- /dev/null +++ b/src/components/_INFO.md @@ -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 \ No newline at end of file diff --git a/src/core/api.ts b/src/core/api.ts index c775d3f..7eb4a03 100644 --- a/src/core/api.ts +++ b/src/core/api.ts @@ -8,6 +8,7 @@ export * from "./mappings/builder.js" export * from "./mappings/checker.js" export * from "./mappings/client.js" export * from "./mappings/code.js" +export * from "./mappings/component.js" export * from "./mappings/config.js" export * from "./mappings/console.js" export * from "./mappings/cooldown.js" diff --git a/src/core/main.ts b/src/core/main.ts index 086cd1f..c7161bf 100644 --- a/src/core/main.ts +++ b/src/core/main.ts @@ -18,6 +18,7 @@ export class ODOpenTicketMain extends api.ODMain { declare checkers: api.ODMappedCheckerManager declare builders: api.ODMappedBuilderManager + declare components: api.ODMappedComponentManager declare responders: api.ODMappedResponderManager declare actions: api.ODMappedActionManager declare verifybars: api.ODMappedVerifyBarManager @@ -86,6 +87,7 @@ export class ODOpenTicketMain extends api.ODMain { new api.ODMappedCheckerFunctionManager(debug) ), builders:new api.ODMappedBuilderManager(debug), + components:new api.ODMappedComponentManager(debug), client, responders:new api.ODMappedResponderManager(debug,client), actions:new api.ODMappedActionManager(debug), diff --git a/src/core/mappings/component.ts b/src/core/mappings/component.ts new file mode 100644 index 0000000..0b5c4df --- /dev/null +++ b/src/core/mappings/component.ts @@ -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 {} + +/**## ODMappedMessageComponentManager `class + * A special class with types for the Open Ticket `ODMessageComponentManager` class. + */ +export class ODMappedMessageComponentManager extends api.ODMessageComponentManager {} + +/**## ODMappedModalComponentManager `class + * A special class with types for the Open Ticket `ODModalComponentManager` class. + */ +export class ODMappedModalComponentManager extends api.ODModalComponentManager {} + +/**## ODMappedComponentManager `class + * A special class with types for the Open Ticket `ODBuilderManager` class. + */ +export class ODMappedComponentManager extends api.ODComponentManager {} \ No newline at end of file