From 65334a8a253fa4ba1eee3eec40f902dc2ce6dbee Mon Sep 17 00:00:00 2001 From: DJj123dj <80536295+DJj123dj@users.noreply.github.com> Date: Mon, 4 May 2026 21:44:12 +0200 Subject: [PATCH] Renamed OT Id Lists to Mappings --- src/core/api/option.ts | 203 ++++++++++++++++++++------------------- src/core/api/panel.ts | 60 ++++++------ src/core/api/question.ts | 72 +++++++------- src/core/api/role.ts | 33 ++++--- src/core/api/ticket.ts | 99 ++++++++++--------- 5 files changed, 246 insertions(+), 221 deletions(-) diff --git a/src/core/api/option.ts b/src/core/api/option.ts index 6d716ad..a546fa3 100644 --- a/src/core/api/option.ts +++ b/src/core/api/option.ts @@ -7,6 +7,98 @@ import * as crypto from "crypto" import { ODOptionsJsonConfig_TicketOptionEmbedSettings, ODOptionsJsonConfig_TicketOptionPingSettings } from "../mappings/config.js" import { ODRoleUpdateMode } from "./role.js" +/**## ODOptionIdConstraint `type` + * The constraint/layout for id mappings/interfaces of the `ODOption` class. + */ +export type ODOptionIdConstraint = Record> + +/**## ODTicketOptionIdMappings `interface` + * A list of all available IDs in the default `ODTicketOption` class in `opendiscord`. + * It's used to generate typescript declarations for this class. + */ +export interface ODTicketOptionIdMappings extends ODOptionIdConstraint { + "opendiscord:name":ODOptionData, + "opendiscord:description":ODOptionData, + + "opendiscord:button-emoji":ODOptionData, + "opendiscord:button-label":ODOptionData, + "opendiscord:button-color":ODOptionData, + + "opendiscord:admins":ODOptionData, + "opendiscord:admins-readonly":ODOptionData, + "opendiscord:allow-blacklisted-users":ODOptionData, + "opendiscord:questions":ODOptionData, + + "opendiscord:channel-prefix":ODOptionData, + "opendiscord:channel-suffix":ODOptionData<"user-name"|"user-nickname"|"user-id"|"random-number"|"random-hex"|"counter-dynamic"|"counter-fixed">, + "opendiscord:channel-category":ODOptionData, + "opendiscord:channel-category-closed":ODOptionData, + "opendiscord:channel-category-backup":ODOptionData, + "opendiscord:channel-categories-claimed":ODOptionData<{user:string,category:string}[]>, + "opendiscord:channel-topic":ODOptionData, + + "opendiscord:dm-message-enabled":ODOptionData, + "opendiscord:dm-message-text":ODOptionData, + "opendiscord:dm-message-embed":ODOptionData, + + "opendiscord:ticket-message-enabled":ODOptionData, + "opendiscord:ticket-message-text":ODOptionData, + "opendiscord:ticket-message-embed":ODOptionData, + "opendiscord:ticket-message-ping":ODOptionData, + + "opendiscord:autoclose-enable-hours":ODOptionData, + "opendiscord:autoclose-enable-leave":ODOptionData, + "opendiscord:autoclose-disable-claim":ODOptionData, + "opendiscord:autoclose-hours":ODOptionData, + + "opendiscord:autodelete-enable-days":ODOptionData, + "opendiscord:autodelete-enable-leave":ODOptionData, + "opendiscord:autodelete-disable-claim":ODOptionData, + "opendiscord:autodelete-days":ODOptionData, + + "opendiscord:cooldown-enabled":ODOptionData, + "opendiscord:cooldown-minutes":ODOptionData, + + "opendiscord:limits-enabled":ODOptionData, + "opendiscord:limits-maximum-global":ODOptionData, + "opendiscord:limits-maximum-user":ODOptionData + + "opendiscord:slowmode-enabled":ODOptionData, + "opendiscord:slowmode-seconds":ODOptionData, +} + +/**## ODWebsiteOptionIdMappings `interface` + * A list of all available IDs in the default `ODWebsiteOption` class in `opendiscord`. + * It's used to generate typescript declarations for this class. + */ +export interface ODWebsiteOptionIdMappings extends ODOptionIdConstraint { + "opendiscord:name":ODOptionData, + "opendiscord:description":ODOptionData, + + "opendiscord:button-emoji":ODOptionData, + "opendiscord:button-label":ODOptionData, + + "opendiscord:url":ODOptionData, +} + +/**## ODRoleOptionIdMappings `interface` + * A list of all available IDs in the default `ODRoleOption` class in `opendiscord`. + * It's used to generate typescript declarations for this class. + */ +export interface ODRoleOptionIdMappings extends ODOptionIdConstraint { + "opendiscord:name":ODOptionData, + "opendiscord:description":ODOptionData, + + "opendiscord:button-emoji":ODOptionData, + "opendiscord:button-label":ODOptionData, + "opendiscord:button-color":ODOptionData, + + "opendiscord:roles":ODOptionData, + "opendiscord:mode":ODOptionData, + "opendiscord:remove-roles-on-add":ODOptionData, + "opendiscord:add-on-join":ODOptionData +} + /**## ODOptionManager `class` * This is an Open Ticket option manager. * @@ -128,61 +220,6 @@ export class ODOptionData extends api.ODMa } } -/**## ODTicketOptionIds `type` - * This interface is a list of ids available in the `ODTicketOption` class. - * It's used to generate typescript declarations for this class. - */ -export interface ODTicketOptionIds { - "opendiscord:name":ODOptionData, - "opendiscord:description":ODOptionData, - - "opendiscord:button-emoji":ODOptionData, - "opendiscord:button-label":ODOptionData, - "opendiscord:button-color":ODOptionData, - - "opendiscord:admins":ODOptionData, - "opendiscord:admins-readonly":ODOptionData, - "opendiscord:allow-blacklisted-users":ODOptionData, - "opendiscord:questions":ODOptionData, - - "opendiscord:channel-prefix":ODOptionData, - "opendiscord:channel-suffix":ODOptionData<"user-name"|"user-nickname"|"user-id"|"random-number"|"random-hex"|"counter-dynamic"|"counter-fixed">, - "opendiscord:channel-category":ODOptionData, - "opendiscord:channel-category-closed":ODOptionData, - "opendiscord:channel-category-backup":ODOptionData, - "opendiscord:channel-categories-claimed":ODOptionData<{user:string,category:string}[]>, - "opendiscord:channel-topic":ODOptionData, - - "opendiscord:dm-message-enabled":ODOptionData, - "opendiscord:dm-message-text":ODOptionData, - "opendiscord:dm-message-embed":ODOptionData, - - "opendiscord:ticket-message-enabled":ODOptionData, - "opendiscord:ticket-message-text":ODOptionData, - "opendiscord:ticket-message-embed":ODOptionData, - "opendiscord:ticket-message-ping":ODOptionData, - - "opendiscord:autoclose-enable-hours":ODOptionData, - "opendiscord:autoclose-enable-leave":ODOptionData, - "opendiscord:autoclose-disable-claim":ODOptionData, - "opendiscord:autoclose-hours":ODOptionData, - - "opendiscord:autodelete-enable-days":ODOptionData, - "opendiscord:autodelete-enable-leave":ODOptionData, - "opendiscord:autodelete-disable-claim":ODOptionData, - "opendiscord:autodelete-days":ODOptionData, - - "opendiscord:cooldown-enabled":ODOptionData, - "opendiscord:cooldown-minutes":ODOptionData, - - "opendiscord:limits-enabled":ODOptionData, - "opendiscord:limits-maximum-global":ODOptionData, - "opendiscord:limits-maximum-user":ODOptionData - - "opendiscord:slowmode-enabled":ODOptionData, - "opendiscord:slowmode-seconds":ODOptionData, -} - /**## ODTicketOption `class` * This is an Open Ticket ticket option. * @@ -197,21 +234,21 @@ export class ODTicketOption extends ODOption { super(id,"opendiscord:ticket",data) } - get(id:OptionId): ODTicketOptionIds[OptionId] + get(id:OptionId): ODTicketOptionIdMappings[OptionId] get(id:api.ODValidId): ODOptionData|null get(id:api.ODValidId): ODOptionData|null { return super.get(id) } - remove(id:OptionId): ODTicketOptionIds[OptionId] + remove(id:OptionId): ODTicketOptionIdMappings[OptionId] remove(id:api.ODValidId): ODOptionData|null remove(id:api.ODValidId): ODOptionData|null { return super.remove(id) } - exists(id:keyof ODTicketOptionIds): boolean + exists(id:keyof ODTicketOptionIdMappings): boolean exists(id:api.ODValidId): boolean exists(id:api.ODValidId): boolean { @@ -223,20 +260,6 @@ export class ODTicketOption extends ODOption { } } -/**## ODWebsiteOptionIds `type` - * This interface is a list of ids available in the `ODWebsiteOption` class. - * It's used to generate typescript declarations for this class. - */ -export interface ODWebsiteOptionIds { - "opendiscord:name":ODOptionData, - "opendiscord:description":ODOptionData, - - "opendiscord:button-emoji":ODOptionData, - "opendiscord:button-label":ODOptionData, - - "opendiscord:url":ODOptionData, -} - /**## ODWebsiteOption `class` * This is an Open Ticket website option. * @@ -251,21 +274,21 @@ export class ODWebsiteOption extends ODOption { super(id,"opendiscord:website",data) } - get(id:OptionId): ODWebsiteOptionIds[OptionId] + get(id:OptionId): ODWebsiteOptionIdMappings[OptionId] get(id:api.ODValidId): ODOptionData|null get(id:api.ODValidId): ODOptionData|null { return super.get(id) } - remove(id:OptionId): ODWebsiteOptionIds[OptionId] + remove(id:OptionId): ODWebsiteOptionIdMappings[OptionId] remove(id:api.ODValidId): ODOptionData|null remove(id:api.ODValidId): ODOptionData|null { return super.remove(id) } - exists(id:keyof ODWebsiteOptionIds): boolean + exists(id:keyof ODWebsiteOptionIdMappings): boolean exists(id:api.ODValidId): boolean exists(id:api.ODValidId): boolean { @@ -277,24 +300,6 @@ export class ODWebsiteOption extends ODOption { } } -/**## ODRoleOptionIds `type` - * This interface is a list of ids available in the `ODRoleOption` class. - * It's used to generate typescript declarations for this class. - */ -export interface ODRoleOptionIds { - "opendiscord:name":ODOptionData, - "opendiscord:description":ODOptionData, - - "opendiscord:button-emoji":ODOptionData, - "opendiscord:button-label":ODOptionData, - "opendiscord:button-color":ODOptionData, - - "opendiscord:roles":ODOptionData, - "opendiscord:mode":ODOptionData, - "opendiscord:remove-roles-on-add":ODOptionData, - "opendiscord:add-on-join":ODOptionData -} - /**## ODRoleOption `class` * This is an Open Ticket role option. * @@ -309,21 +314,21 @@ export class ODRoleOption extends ODOption { super(id,"opendiscord:role",data) } - get(id:OptionId): ODRoleOptionIds[OptionId] + get(id:OptionId): ODRoleOptionIdMappings[OptionId] get(id:api.ODValidId): ODOptionData|null get(id:api.ODValidId): ODOptionData|null { return super.get(id) } - remove(id:OptionId): ODRoleOptionIds[OptionId] + remove(id:OptionId): ODRoleOptionIdMappings[OptionId] remove(id:api.ODValidId): ODOptionData|null remove(id:api.ODValidId): ODOptionData|null { return super.remove(id) } - exists(id:keyof ODRoleOptionIds): boolean + exists(id:keyof ODRoleOptionIdMappings): boolean exists(id:api.ODValidId): boolean exists(id:api.ODValidId): boolean { @@ -376,7 +381,7 @@ export class ODOptionSuffixManager extends api.ODManager { * * Use `getSuffix()` to get the new suffix! */ -export class ODOptionSuffix extends api.ODManagerData { +export abstract class ODOptionSuffix extends api.ODManagerData { /**The option of this suffix. */ option: ODTicketOption @@ -386,9 +391,7 @@ export class ODOptionSuffix extends api.ODManagerData { } /**Get the suffix for a new ticket. */ - async getSuffix(member:discord.GuildMember): Promise { - throw new api.ODSystemError("Tried to use an unimplemented ODOptionSuffix!") - } + abstract getSuffix(member:discord.GuildMember): Promise } /**## ODOptionUserNameSuffix `class` diff --git a/src/core/api/panel.ts b/src/core/api/panel.ts index 7ace69a..431521b 100644 --- a/src/core/api/panel.ts +++ b/src/core/api/panel.ts @@ -4,6 +4,36 @@ import * as api from "@open-discord-bots/framework/api" import { ODPanelsJsonConfig_PanelEmbedSettings } from "../mappings/config.js" + +/**## ODPanelIdConstraint `type` + * The constraint/layout for id mappings/interfaces of the `ODPanel` class. + */ +export type ODPanelIdConstraint = Record> + +/**## ODPanelIdMappings `interface` + * A list of all available IDs in the default `ODPanel` class in `opendiscord`. + * It's used to generate typescript declarations for this class. + */ +export interface ODPanelIdMappings extends ODPanelIdConstraint { + "opendiscord:name":ODPanelData, + "opendiscord:options":ODPanelData, + "opendiscord:dropdown":ODPanelData, + + "opendiscord:text":ODPanelData, + "opendiscord:embed":ODPanelData, + + "opendiscord:dropdown-placeholder":ODPanelData, + + "opendiscord:enable-max-tickets-warning-text":ODPanelData, + "opendiscord:enable-max-tickets-warning-embed":ODPanelData, + + "opendiscord:describe-options-layout":ODPanelData<"simple"|"normal"|"detailed">, + "opendiscord:describe-options-custom-title":ODPanelData, + "opendiscord:describe-options-in-text":ODPanelData, + "opendiscord:describe-options-in-embed-fields":ODPanelData, + "opendiscord:describe-options-in-embed-description":ODPanelData +} + /**## ODPanelManager `class` * This is an Open Ticket panel manager. * @@ -44,30 +74,6 @@ export interface ODPanelJson { data:ODPanelDataJson[] } -/**## ODPanelIds `type` - * This interface is a list of ids available in the `ODPanel` class. - * It's used to generate typescript declarations for this class. - */ -export interface ODPanelIds { - "opendiscord:name":ODPanelData, - "opendiscord:options":ODPanelData, - "opendiscord:dropdown":ODPanelData, - - "opendiscord:text":ODPanelData, - "opendiscord:embed":ODPanelData, - - "opendiscord:dropdown-placeholder":ODPanelData, - - "opendiscord:enable-max-tickets-warning-text":ODPanelData, - "opendiscord:enable-max-tickets-warning-embed":ODPanelData, - - "opendiscord:describe-options-layout":ODPanelData<"simple"|"normal"|"detailed">, - "opendiscord:describe-options-custom-title":ODPanelData, - "opendiscord:describe-options-in-text":ODPanelData, - "opendiscord:describe-options-in-embed-fields":ODPanelData, - "opendiscord:describe-options-in-embed-description":ODPanelData -} - /**## ODPanel `class` * This is an Open Ticket panel. * @@ -106,21 +112,21 @@ export class ODPanel extends api.ODManager> { return new ODPanel(json.id,json.data.map((data) => new ODPanelData(data.id,data.value))) } - get(id:PanelId): ODPanelIds[PanelId] + get(id:PanelId): ODPanelIdMappings[PanelId] get(id:api.ODValidId): ODPanelData|null get(id:api.ODValidId): ODPanelData|null { return super.get(id) } - remove(id:PanelId): ODPanelIds[PanelId] + remove(id:PanelId): ODPanelIdMappings[PanelId] remove(id:api.ODValidId): ODPanelData|null remove(id:api.ODValidId): ODPanelData|null { return super.remove(id) } - exists(id:keyof ODPanelIds): boolean + exists(id:keyof ODPanelIdMappings): boolean exists(id:api.ODValidId): boolean exists(id:api.ODValidId): boolean { diff --git a/src/core/api/question.ts b/src/core/api/question.ts index 0f39781..1cfbadf 100644 --- a/src/core/api/question.ts +++ b/src/core/api/question.ts @@ -3,6 +3,39 @@ /////////////////////////////////////// import * as api from "@open-discord-bots/framework/api" +/**## ODQuestionIdConstraint `type` + * The constraint/layout for id mappings/interfaces of the `ODQuestion` class. + */ +export type ODQuestionIdConstraint = Record> + +/**## ODShortQuestionIdMappings `interface` + * A list of all available IDs in the default `ODShortQuestion` class in `opendiscord`. + * It's used to generate typescript declarations for this class. + */ +export interface ODShortQuestionIdMappings extends ODQuestionIdConstraint { + "opendiscord:name":ODQuestionData, + "opendiscord:required":ODQuestionData, + "opendiscord:placeholder":ODQuestionData, + + "opendiscord:length-enabled":ODQuestionData, + "opendiscord:length-min":ODQuestionData, + "opendiscord:length-max":ODQuestionData +} + +/**## ODParagraphQuestionIdMappings `interface` + * A list of all available IDs in the default `ODParagraphQuestion` class in `opendiscord`. + * It's used to generate typescript declarations for this class. + */ +export interface ODParagraphQuestionIdMappings extends ODQuestionIdConstraint { + "opendiscord:name":ODQuestionData, + "opendiscord:required":ODQuestionData, + "opendiscord:placeholder":ODQuestionData, + + "opendiscord:length-enabled":ODQuestionData, + "opendiscord:length-min":ODQuestionData, + "opendiscord:length-max":ODQuestionData +} + /**## ODQuestionManager `class` * This is an Open Ticket question manager. * @@ -120,19 +153,6 @@ export class ODQuestionData extends api.OD } } -/**## ODShortQuestionIds `type` - * This interface is a list of ids available in the `ODShortQuestion` class. - * It's used to generate typescript declarations for this class. - */ -export interface ODShortQuestionIds { - "opendiscord:name":ODQuestionData, - "opendiscord:required":ODQuestionData, - "opendiscord:placeholder":ODQuestionData, - - "opendiscord:length-enabled":ODQuestionData, - "opendiscord:length-min":ODQuestionData, - "opendiscord:length-max":ODQuestionData -} /**## ODShortQuestion `class` * This is an Open Ticket short question. @@ -148,21 +168,21 @@ export class ODShortQuestion extends ODQuestion { super(id,"opendiscord:short",data) } - get(id:QuestionId): ODShortQuestionIds[QuestionId] + get(id:QuestionId): ODShortQuestionIdMappings[QuestionId] get(id:api.ODValidId): ODQuestionData|null get(id:api.ODValidId): ODQuestionData|null { return super.get(id) } - remove(id:QuestionId): ODShortQuestionIds[QuestionId] + remove(id:QuestionId): ODShortQuestionIdMappings[QuestionId] remove(id:api.ODValidId): ODQuestionData|null remove(id:api.ODValidId): ODQuestionData|null { return super.remove(id) } - exists(id:keyof ODShortQuestionIds): boolean + exists(id:keyof ODShortQuestionIdMappings): boolean exists(id:api.ODValidId): boolean exists(id:api.ODValidId): boolean { @@ -174,20 +194,6 @@ export class ODShortQuestion extends ODQuestion { } } -/**## ODParagraphQuestionIds `type` - * This interface is a list of ids available in the `ODParagraphQuestion` class. - * It's used to generate typescript declarations for this class. - */ -export interface ODParagraphQuestionIds { - "opendiscord:name":ODQuestionData, - "opendiscord:required":ODQuestionData, - "opendiscord:placeholder":ODQuestionData, - - "opendiscord:length-enabled":ODQuestionData, - "opendiscord:length-min":ODQuestionData, - "opendiscord:length-max":ODQuestionData -} - /**## ODParagraphQuestion `class` * This is an Open Ticket paragraph question. * @@ -202,21 +208,21 @@ export class ODParagraphQuestion extends ODQuestion { super(id,"opendiscord:paragraph",data) } - get(id:QuestionId): ODParagraphQuestionIds[QuestionId] + get(id:QuestionId): ODParagraphQuestionIdMappings[QuestionId] get(id:api.ODValidId): ODQuestionData|null get(id:api.ODValidId): ODQuestionData|null { return super.get(id) } - remove(id:QuestionId): ODParagraphQuestionIds[QuestionId] + remove(id:QuestionId): ODParagraphQuestionIdMappings[QuestionId] remove(id:api.ODValidId): ODQuestionData|null remove(id:api.ODValidId): ODQuestionData|null { return super.remove(id) } - exists(id:keyof ODParagraphQuestionIds): boolean + exists(id:keyof ODParagraphQuestionIdMappings): boolean exists(id:api.ODValidId): boolean exists(id:api.ODValidId): boolean { diff --git a/src/core/api/role.ts b/src/core/api/role.ts index be75349..e084135 100644 --- a/src/core/api/role.ts +++ b/src/core/api/role.ts @@ -4,6 +4,22 @@ import * as api from "@open-discord-bots/framework/api" import * as discord from "discord.js" +/**## ODRoleIdConstraint `type` + * The constraint/layout for id mappings/interfaces of the `ODRole` class. + */ +export type ODRoleIdConstraint = Record> + +/**## ODRoleIdMappings `interface` + * A list of all available IDs in the default `ODRole` class in `opendiscord`. + * It's used to generate typescript declarations for this class. + */ +export interface ODRoleIdMappings extends ODRoleIdConstraint { + "opendiscord:roles":ODRoleData, + "opendiscord:mode":ODRoleData, + "opendiscord:remove-roles-on-add":ODRoleData, + "opendiscord:add-on-join":ODRoleData +} + /**## ODRoleManager `class` * This is an Open Ticket role manager. * @@ -44,17 +60,6 @@ export interface ODRoleJson { data:ODRoleDataJson[] } -/**## ODRoleIds `type` - * This interface is a list of ids available in the `ODRole` class. - * It's used to generate typescript declarations for this class. - */ -export interface ODRoleIds { - "opendiscord:roles":ODRoleData, - "opendiscord:mode":ODRoleData, - "opendiscord:remove-roles-on-add":ODRoleData, - "opendiscord:add-on-join":ODRoleData -} - /**## ODRole `class` * This is an Open Ticket role. * @@ -95,21 +100,21 @@ export class ODRole extends api.ODManager> { return new ODRole(json.id,json.data.map((data) => new ODRoleData(data.id,data.value))) } - get(id:OptionId): ODRoleIds[OptionId] + get(id:OptionId): ODRoleIdMappings[OptionId] get(id:api.ODValidId): ODRoleData|null get(id:api.ODValidId): ODRoleData|null { return super.get(id) } - remove(id:OptionId): ODRoleIds[OptionId] + remove(id:OptionId): ODRoleIdMappings[OptionId] remove(id:api.ODValidId): ODRoleData|null remove(id:api.ODValidId): ODRoleData|null { return super.remove(id) } - exists(id:keyof ODRoleIds): boolean + exists(id:keyof ODRoleIdMappings): boolean exists(id:api.ODValidId): boolean exists(id:api.ODValidId): boolean { diff --git a/src/core/api/ticket.ts b/src/core/api/ticket.ts index 0129c2b..d8a4ddb 100644 --- a/src/core/api/ticket.ts +++ b/src/core/api/ticket.ts @@ -5,6 +5,55 @@ import * as api from "@open-discord-bots/framework/api" import { ODTicketOption } from "./option.js" import * as discord from "discord.js" +/**## ODTicketIdConstraint `type` + * The constraint/layout for id mappings/interfaces of the `ODTicket` class. + */ +export type ODTicketIdConstraint = Record> + +/**## ODTicketIdMappings `interface` + * A list of all available IDs in the default `ODTicket` class in `opendiscord`. + * It's used to generate typescript declarations for this class. + */ +export interface ODTicketIdMappings extends ODTicketIdConstraint { + "opendiscord:busy":ODTicketData, + "opendiscord:ticket-message":ODTicketData, + "opendiscord:participants":ODTicketData<{type:"role"|"user",id:string}[]>, + "opendiscord:channel-suffix":ODTicketData, + "opendiscord:previous-creators":ODTicketData, + + "opendiscord:open":ODTicketData, + "opendiscord:opened-by":ODTicketData, + "opendiscord:opened-on":ODTicketData, + "opendiscord:closed":ODTicketData, + "opendiscord:closed-by":ODTicketData, + "opendiscord:closed-on":ODTicketData, + "opendiscord:reopened":ODTicketData, + "opendiscord:reopened-by":ODTicketData, + "opendiscord:reopened-on":ODTicketData, + "opendiscord:claimed":ODTicketData, + "opendiscord:claimed-by":ODTicketData, + "opendiscord:claimed-on":ODTicketData, + "opendiscord:pinned":ODTicketData, + "opendiscord:pinned-by":ODTicketData, + "opendiscord:pinned-on":ODTicketData, + "opendiscord:for-deletion":ODTicketData, + + "opendiscord:category":ODTicketData, + "opendiscord:category-mode":ODTicketData, + + "opendiscord:autoclose-enabled":ODTicketData, + "opendiscord:autoclose-hours":ODTicketData, + "opendiscord:autoclosed":ODTicketData, + "opendiscord:autodelete-enabled":ODTicketData, + "opendiscord:autodelete-days":ODTicketData, + + "opendiscord:answers":ODTicketData<{id:string,name:string,type:"short"|"paragraph",value:string|null}[]>, + "opendiscord:priority":ODTicketData, + "opendiscord:topic":ODTicketData, + "opendiscord:message-sent":ODTicketData, + "opendiscord:admin-message-sent":ODTicketData, +} + /**## ODTicketManager `class` * This is an Open Ticket ticket manager. * @@ -144,50 +193,6 @@ export interface ODTicketJson { data:ODTicketDataJson[] } -/**## ODTicketIds `type` - * This interface is a list of ids available in the `ODTicket` class. - * It's used to generate typescript declarations for this class. - */ -export interface ODTicketIds { - "opendiscord:busy":ODTicketData, - "opendiscord:ticket-message":ODTicketData, - "opendiscord:participants":ODTicketData<{type:"role"|"user",id:string}[]>, - "opendiscord:channel-suffix":ODTicketData, - "opendiscord:previous-creators":ODTicketData, - - "opendiscord:open":ODTicketData, - "opendiscord:opened-by":ODTicketData, - "opendiscord:opened-on":ODTicketData, - "opendiscord:closed":ODTicketData, - "opendiscord:closed-by":ODTicketData, - "opendiscord:closed-on":ODTicketData, - "opendiscord:reopened":ODTicketData, - "opendiscord:reopened-by":ODTicketData, - "opendiscord:reopened-on":ODTicketData, - "opendiscord:claimed":ODTicketData, - "opendiscord:claimed-by":ODTicketData, - "opendiscord:claimed-on":ODTicketData, - "opendiscord:pinned":ODTicketData, - "opendiscord:pinned-by":ODTicketData, - "opendiscord:pinned-on":ODTicketData, - "opendiscord:for-deletion":ODTicketData, - - "opendiscord:category":ODTicketData, - "opendiscord:category-mode":ODTicketData, - - "opendiscord:autoclose-enabled":ODTicketData, - "opendiscord:autoclose-hours":ODTicketData, - "opendiscord:autoclosed":ODTicketData, - "opendiscord:autodelete-enabled":ODTicketData, - "opendiscord:autodelete-days":ODTicketData, - - "opendiscord:answers":ODTicketData<{id:string,name:string,type:"short"|"paragraph",value:string|null}[]>, - "opendiscord:priority":ODTicketData, - "opendiscord:topic":ODTicketData, - "opendiscord:message-sent":ODTicketData, - "opendiscord:admin-message-sent":ODTicketData, -} - /**## ODTicket `class` * This is an Open Ticket ticket. * @@ -241,21 +246,21 @@ export class ODTicket extends api.ODManager> { return new ODTicket(json.id,option,json.data.map((data) => new ODTicketData(data.id,data.value))) } - get(id:OptionId): ODTicketIds[OptionId] + get(id:OptionId): ODTicketIdMappings[OptionId] get(id:api.ODValidId): ODTicketData|null get(id:api.ODValidId): ODTicketData|null { return super.get(id) } - remove(id:OptionId): ODTicketIds[OptionId] + remove(id:OptionId): ODTicketIdMappings[OptionId] remove(id:api.ODValidId): ODTicketData|null remove(id:api.ODValidId): ODTicketData|null { return super.remove(id) } - exists(id:keyof ODTicketIds): boolean + exists(id:keyof ODTicketIdMappings): boolean exists(id:api.ODValidId): boolean exists(id:api.ODValidId): boolean {