diff --git a/package.json b/package.json index 028b20e..e63fe72 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "license": "GPL-3.0-only", "dependencies": { "@discordjs/rest": "^2.6.1", - "@open-discord-bots/framework": "^0.3.4", + "@open-discord-bots/framework": "^0.3.8", "@types/node": "^22.5.0", "@types/terminal-kit": "^2.5.7", "ansis": "^4.2.0", diff --git a/src/core/mappings/component.ts b/src/core/mappings/component.ts index 0636c8b..42adc59 100644 --- a/src/core/mappings/component.ts +++ b/src/core/mappings/component.ts @@ -28,6 +28,14 @@ export interface ODModalComponentManagerIdMappings extends api.ODComponentManage //"opendiscord:example-modal":{origin:"slash"|"text"|"other",params:{guild:discord.Guild|null,channel:discord.TextBasedChannel,user:discord.User},workers:"opendiscord:example-modal"}, } +/**## ODComponentModifierManagerIdMappings `interface` + * A list of all available IDs in the default `ODComponentModifierManager` class in `opendiscord`. + * It's used to generate typescript declarations for this class. + */ +export interface ODComponentModifierManagerIdMappings extends api.ODComponentModifierManagerIdConstraint { + //"opendiscord:example-modifier":api.ODMessageComponentModifier, +} + ///////////////////////////// ////// MAPPED MANAGERS ////// ///////////////////////////// @@ -47,7 +55,12 @@ export class ODMappedMessageComponentManager extends api.ODMessageComponentManag */ export class ODMappedModalComponentManager extends api.ODModalComponentManager {} +/**## ODMappedComponentModifierManager `class + * A special class with types for the Open Ticket `ODComponentModifierManager` class. + */ +export class ODMappedComponentModifierManager extends api.ODComponentModifierManager {} + /**## 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 +export class ODMappedComponentManager extends api.ODComponentManager {} \ No newline at end of file diff --git a/src/core/mappings/event.ts b/src/core/mappings/event.ts index f6f4415..0aaf988 100644 --- a/src/core/mappings/event.ts +++ b/src/core/mappings/event.ts @@ -28,7 +28,7 @@ import { ODMappedVerifyBarManager } from "./verifybar.js" import { ODMappedStartScreenManager } from "./startscreen.js" import { ODMappedLiveStatusManager } from "./console.js" import { ODMappedProgressBarManager, ODMappedProgressBarRendererManager } from "./progressbar.js" -import { ODMappedComponentManager, ODMappedMessageComponentManager, ODMappedModalComponentManager, ODMappedSharedComponentManager } from "./component.js" +import { ODMappedComponentManager, ODMappedComponentModifierManager, ODMappedMessageComponentManager, ODMappedModalComponentManager, ODMappedSharedComponentManager } from "./component.js" import { ODMappedStateManager } from "./state.js" //OPEN TICKET MAPPINGSS @@ -263,6 +263,8 @@ export interface ODEventManagerIdMappings extends api.ODEventManagerIdConstraint "afterMessageComponentsLoaded": api.ODEvent<(shared:ODMappedMessageComponentManager, components:ODMappedComponentManager, actions:ODMappedActionManager) => api.ODPromiseVoid> "onModalComponentLoad": api.ODEvent<(shared:ODMappedModalComponentManager, components:ODMappedComponentManager, actions:ODMappedActionManager) => api.ODPromiseVoid> "afterModalComponentsLoaded": api.ODEvent<(shared:ODMappedModalComponentManager, components:ODMappedComponentManager, actions:ODMappedActionManager) => api.ODPromiseVoid> + "onComponentModifierLoad": api.ODEvent<(modifiers:ODMappedComponentModifierManager, msgComponents:ODMappedMessageComponentManager, msgBuilders:ODMappedMessageManager) => api.ODPromiseVoid> + "afterComponentModifiersLoaded": api.ODEvent<(modifiers:ODMappedComponentModifierManager, msgComponents:ODMappedMessageComponentManager, msgBuilders:ODMappedMessageManager) => api.ODPromiseVoid> //plugin loading before responders "onPluginBeforeResponderLoad": api.ODEvent<() => api.ODPromiseVoid>, diff --git a/src/core/mappings/state.ts b/src/core/mappings/state.ts index 6fd2fbb..fc61335 100644 --- a/src/core/mappings/state.ts +++ b/src/core/mappings/state.ts @@ -10,6 +10,7 @@ import * as discord from "discord.js" */ export interface ODStateManagerIdMappings extends api.ODStateManagerIdConstraint { "opendiscord:message-origin":ODMessageOriginState, + "opendiscord:verifybar":ODVerifybarState, } ///////////////////////////// @@ -21,9 +22,17 @@ export interface ODStateManagerIdMappings extends api.ODStateManagerIdConstraint */ export class ODMappedStateManager extends api.ODStateManager {} -/**## ODGeneralJsonConfig `class +/**## ODMessageOriginState `class * A special class with types for the Open Ticket message origin states. */ export class ODMessageOriginState extends api.ODState<{ - messageOrigin:"ticket-message"|"close-message"|"reopen-message"|"autoclose-message"|"claim-message"|"unclaim-message"|"pin-message"|"unpin-message" -}> {} \ No newline at end of file + messageOrigin:"slash"|"text"|"button"|"dropdown"|"modal"|"other", + messageType:"ticket-message"|"close-message"|"reopen-message"|"autoclose-message"|"claim-message"|"unclaim-message"|"pin-message"|"unpin-message", +},false,false> {} + +/**## ODVerifybarState `class + * A special class with types for the Open Ticket verifybar states. + */ +export class ODVerifybarState extends api.ODState<{ + verifybarId:string, +},false,true> {} \ No newline at end of file diff --git a/src/data/framework/eventLoader.ts b/src/data/framework/eventLoader.ts index bfa5916..fbe627c 100644 --- a/src/data/framework/eventLoader.ts +++ b/src/data/framework/eventLoader.ts @@ -219,6 +219,8 @@ export const loadAllEvents = () => { "afterMessageComponentsLoaded", "onModalComponentLoad", "afterModalComponentsLoaded", + "onComponentModifierLoad", + "afterComponentModifiersLoaded", //plugin loading before responders "onPluginBeforeResponderLoad", diff --git a/src/index.ts b/src/index.ts index da117be..9629ea6 100644 --- a/src/index.ts +++ b/src/index.ts @@ -652,7 +652,7 @@ const main = async () => { //load shared components opendiscord.log("Loading shared components...","system") if (opendiscord.sharedFuses.getFuse("sharedComponentsLoading")){ - //TODO TODO + //TODO!! } await opendiscord.events.get("onSharedComponentLoad").emit([opendiscord.components.shared,opendiscord.components,opendiscord.actions]) await opendiscord.events.get("afterSharedComponentsLoaded").emit([opendiscord.components.shared,opendiscord.components,opendiscord.actions]) @@ -660,7 +660,7 @@ const main = async () => { //load message components opendiscord.log("Loading message components...","system") if (opendiscord.sharedFuses.getFuse("messageComponentsLoading")){ - //TODO TODO + //TODO!! } await opendiscord.events.get("onMessageComponentLoad").emit([opendiscord.components.messages,opendiscord.components,opendiscord.actions]) await opendiscord.events.get("afterMessageComponentsLoaded").emit([opendiscord.components.messages,opendiscord.components,opendiscord.actions]) @@ -668,11 +668,19 @@ const main = async () => { //load modal components opendiscord.log("Loading modal components...","system") if (opendiscord.sharedFuses.getFuse("modalComponentsLoading")){ - //TODO TODO + //TODO!! } await opendiscord.events.get("onModalComponentLoad").emit([opendiscord.components.modals,opendiscord.components,opendiscord.actions]) await opendiscord.events.get("afterModalComponentsLoaded").emit([opendiscord.components.modals,opendiscord.components,opendiscord.actions]) + //load component modifiers + opendiscord.log("Loading component modifiers...","system") + if (opendiscord.sharedFuses.getFuse("componentModifiersLoading")){ + //TODO!! + } + await opendiscord.events.get("onComponentModifierLoad").emit([opendiscord.components.modifiers,opendiscord.components.messages,opendiscord.builders.messages]) + await opendiscord.events.get("afterComponentModifiersLoaded").emit([opendiscord.components.modifiers,opendiscord.components.messages,opendiscord.builders.messages]) + //plugin loading before responders await opendiscord.events.get("onPluginBeforeResponderLoad").emit([]) await opendiscord.events.get("afterPluginBeforeResponderLoaded").emit([])