From 7030b7011c7ea48afac5bcc63f7ff3063a06ac1e Mon Sep 17 00:00:00 2001 From: DJj123dj <80536295+DJj123dj@users.noreply.github.com> Date: Fri, 8 May 2026 17:17:59 +0200 Subject: [PATCH] Message States (Part 1) --- src/actions/closeTicket.ts | 2 +- src/core/mappings/database.ts | 8 +++++++- src/core/mappings/state.ts | 11 +++++++++-- src/data/framework/databaseLoader.ts | 12 +++++++----- src/data/framework/stateLoader.ts | 4 +++- 5 files changed, 27 insertions(+), 10 deletions(-) diff --git a/src/actions/closeTicket.ts b/src/actions/closeTicket.ts index 52253b2..27ece49 100644 --- a/src/actions/closeTicket.ts +++ b/src/actions/closeTicket.ts @@ -171,7 +171,7 @@ export const registerVerifyBars = async () => { opendiscord.verifybars.get("opendiscord:close-ticket-ticket-message").success.add([ new api.ODWorker("opendiscord:close-ticket",0,async (instance,params,origin,cancel) => { const {user,member,channel,guild} = instance - + //check permissions const permsResult = await opendiscord.permissions.checkCommandPerms(generalConfig.data.system.permissions.close,"support",user,member,channel,guild) if (!permsResult.hasPerms){ diff --git a/src/core/mappings/database.ts b/src/core/mappings/database.ts index 0429719..11ad62d 100644 --- a/src/core/mappings/database.ts +++ b/src/core/mappings/database.ts @@ -15,6 +15,7 @@ export interface ODDatabaseManagerIdMappings extends api.ODDatabaseManagerIdCons "opendiscord:tickets":ODTicketsDatabase, "opendiscord:users":ODUsersDatabase, "opendiscord:options":ODOptionsDatabase, + "opendiscord:message-states":ODMessageStatesDatabase, } ///////////////////////////////////////// @@ -89,4 +90,9 @@ export class ODUsersDatabase extends api.ODFormattedJsonDatabase {} \ No newline at end of file +export class ODOptionsDatabase extends api.ODFormattedJsonDatabase {} + +/**## ODMessageStatesDatabase `class + * A special class with types for the Open Ticket `database/states.json` database file + */ +export class ODMessageStatesDatabase extends api.ODFormattedJsonDatabase {} \ No newline at end of file diff --git a/src/core/mappings/state.ts b/src/core/mappings/state.ts index 3a676f6..6fd2fbb 100644 --- a/src/core/mappings/state.ts +++ b/src/core/mappings/state.ts @@ -9,7 +9,7 @@ import * as discord from "discord.js" * It's used to generate typescript declarations for this class. */ export interface ODStateManagerIdMappings extends api.ODStateManagerIdConstraint { - //"opendiscord:example-state":api.ODState, + "opendiscord:message-origin":ODMessageOriginState, } ///////////////////////////// @@ -19,4 +19,11 @@ export interface ODStateManagerIdMappings extends api.ODStateManagerIdConstraint /**## ODMappedStateManager `class * A special class with types for the Open Ticket `ODStateManager` class. */ -export class ODMappedStateManager extends api.ODStateManager {} \ No newline at end of file +export class ODMappedStateManager extends api.ODStateManager {} + +/**## ODGeneralJsonConfig `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 diff --git a/src/data/framework/databaseLoader.ts b/src/data/framework/databaseLoader.ts index 524a916..418db42 100644 --- a/src/data/framework/databaseLoader.ts +++ b/src/data/framework/databaseLoader.ts @@ -10,6 +10,7 @@ export const loadAllDatabases = async () => { opendiscord.databases.add(defaultTicketsDatabase) opendiscord.databases.add(defaultUsersDatabase) opendiscord.databases.add(defaultOptionsDatabase) + opendiscord.databases.add(defaultMessageStatesDatabase) } const defaultInlineFormatter = new fjs.ArrayFormatter(null,true,new fjs.ObjectFormatter(null,false,[ @@ -46,8 +47,9 @@ const defaultOptionFormatter = new fjs.ArrayFormatter(null,true,new fjs.ObjectFo ]) ])) -export const defaultGlobalDatabase = new api.ODFormattedJsonDatabase("opendiscord:global","global.json",defaultInlineFormatter,(isDevdatabase) ? "./devdatabase/" : "./database/") -export const defaultStatsDatabase = new api.ODFormattedJsonDatabase("opendiscord:stats","stats.json",defaultInlineFormatter,(isDevdatabase) ? "./devdatabase/" : "./database/") -export const defaultTicketsDatabase = new api.ODFormattedJsonDatabase("opendiscord:tickets","tickets.json",defaultTicketFormatter,(isDevdatabase) ? "./devdatabase/" : "./database/") -export const defaultUsersDatabase = new api.ODFormattedJsonDatabase("opendiscord:users","users.json",defaultInlineFormatter,(isDevdatabase) ? "./devdatabase/" : "./database/") -export const defaultOptionsDatabase = new api.ODFormattedJsonDatabase("opendiscord:options","options.json",defaultOptionFormatter,(isDevdatabase) ? "./devdatabase/" : "./database/") \ No newline at end of file +export const defaultGlobalDatabase = new api.ODGlobalDatabase("opendiscord:global","global.json",defaultInlineFormatter,(isDevdatabase) ? "./devdatabase/" : "./database/") +export const defaultStatsDatabase = new api.ODStatsDatabase("opendiscord:stats","stats.json",defaultInlineFormatter,(isDevdatabase) ? "./devdatabase/" : "./database/") +export const defaultTicketsDatabase = new api.ODTicketsDatabase("opendiscord:tickets","tickets.json",defaultTicketFormatter,(isDevdatabase) ? "./devdatabase/" : "./database/") +export const defaultUsersDatabase = new api.ODUsersDatabase("opendiscord:users","users.json",defaultInlineFormatter,(isDevdatabase) ? "./devdatabase/" : "./database/") +export const defaultOptionsDatabase = new api.ODOptionsDatabase("opendiscord:options","options.json",defaultOptionFormatter,(isDevdatabase) ? "./devdatabase/" : "./database/") +export const defaultMessageStatesDatabase = new api.ODMessageStatesDatabase("opendiscord:message-states","states.json",defaultInlineFormatter,(isDevdatabase) ? "./devdatabase/" : "./database/") \ No newline at end of file diff --git a/src/data/framework/stateLoader.ts b/src/data/framework/stateLoader.ts index f646c14..432afa8 100644 --- a/src/data/framework/stateLoader.ts +++ b/src/data/framework/stateLoader.ts @@ -1,5 +1,7 @@ import {opendiscord, api, utilities} from "../../index.js" export const loadAllStates = async () => { - + const stateDatabase = opendiscord.databases.get("opendiscord:message-states") + + opendiscord.states.add(new api.ODMessageOriginState("opendiscord:message-origin",opendiscord.client,stateDatabase,{})) } \ No newline at end of file