Renamed OT Id Lists to Mappings

This commit is contained in:
DJj123dj
2026-05-04 21:44:12 +02:00
parent 4be54399a6
commit 65334a8a25
5 changed files with 246 additions and 221 deletions
+103 -100
View File
@@ -7,6 +7,98 @@ import * as crypto from "crypto"
import { ODOptionsJsonConfig_TicketOptionEmbedSettings, ODOptionsJsonConfig_TicketOptionPingSettings } from "../mappings/config.js" import { ODOptionsJsonConfig_TicketOptionEmbedSettings, ODOptionsJsonConfig_TicketOptionPingSettings } from "../mappings/config.js"
import { ODRoleUpdateMode } from "./role.js" import { ODRoleUpdateMode } from "./role.js"
/**## ODOptionIdConstraint `type`
* The constraint/layout for id mappings/interfaces of the `ODOption` class.
*/
export type ODOptionIdConstraint = Record<string,ODOptionData<api.ODValidJsonType>>
/**## 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<string>,
"opendiscord:description":ODOptionData<string>,
"opendiscord:button-emoji":ODOptionData<string>,
"opendiscord:button-label":ODOptionData<string>,
"opendiscord:button-color":ODOptionData<api.ODValidButtonColor>,
"opendiscord:admins":ODOptionData<string[]>,
"opendiscord:admins-readonly":ODOptionData<string[]>,
"opendiscord:allow-blacklisted-users":ODOptionData<boolean>,
"opendiscord:questions":ODOptionData<string[]>,
"opendiscord:channel-prefix":ODOptionData<string>,
"opendiscord:channel-suffix":ODOptionData<"user-name"|"user-nickname"|"user-id"|"random-number"|"random-hex"|"counter-dynamic"|"counter-fixed">,
"opendiscord:channel-category":ODOptionData<string>,
"opendiscord:channel-category-closed":ODOptionData<string>,
"opendiscord:channel-category-backup":ODOptionData<string>,
"opendiscord:channel-categories-claimed":ODOptionData<{user:string,category:string}[]>,
"opendiscord:channel-topic":ODOptionData<string>,
"opendiscord:dm-message-enabled":ODOptionData<boolean>,
"opendiscord:dm-message-text":ODOptionData<string>,
"opendiscord:dm-message-embed":ODOptionData<ODOptionsJsonConfig_TicketOptionEmbedSettings>,
"opendiscord:ticket-message-enabled":ODOptionData<boolean>,
"opendiscord:ticket-message-text":ODOptionData<string>,
"opendiscord:ticket-message-embed":ODOptionData<ODOptionsJsonConfig_TicketOptionEmbedSettings>,
"opendiscord:ticket-message-ping":ODOptionData<ODOptionsJsonConfig_TicketOptionPingSettings>,
"opendiscord:autoclose-enable-hours":ODOptionData<boolean>,
"opendiscord:autoclose-enable-leave":ODOptionData<boolean>,
"opendiscord:autoclose-disable-claim":ODOptionData<boolean>,
"opendiscord:autoclose-hours":ODOptionData<number>,
"opendiscord:autodelete-enable-days":ODOptionData<boolean>,
"opendiscord:autodelete-enable-leave":ODOptionData<boolean>,
"opendiscord:autodelete-disable-claim":ODOptionData<boolean>,
"opendiscord:autodelete-days":ODOptionData<number>,
"opendiscord:cooldown-enabled":ODOptionData<boolean>,
"opendiscord:cooldown-minutes":ODOptionData<number>,
"opendiscord:limits-enabled":ODOptionData<boolean>,
"opendiscord:limits-maximum-global":ODOptionData<number>,
"opendiscord:limits-maximum-user":ODOptionData<number>
"opendiscord:slowmode-enabled":ODOptionData<boolean>,
"opendiscord:slowmode-seconds":ODOptionData<number>,
}
/**## 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<string>,
"opendiscord:description":ODOptionData<string>,
"opendiscord:button-emoji":ODOptionData<string>,
"opendiscord:button-label":ODOptionData<string>,
"opendiscord:url":ODOptionData<string>,
}
/**## 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<string>,
"opendiscord:description":ODOptionData<string>,
"opendiscord:button-emoji":ODOptionData<string>,
"opendiscord:button-label":ODOptionData<string>,
"opendiscord:button-color":ODOptionData<api.ODValidButtonColor>,
"opendiscord:roles":ODOptionData<string[]>,
"opendiscord:mode":ODOptionData<ODRoleUpdateMode>,
"opendiscord:remove-roles-on-add":ODOptionData<string[]>,
"opendiscord:add-on-join":ODOptionData<boolean>
}
/**## ODOptionManager `class` /**## ODOptionManager `class`
* This is an Open Ticket option manager. * This is an Open Ticket option manager.
* *
@@ -128,61 +220,6 @@ export class ODOptionData<DataType extends api.ODValidJsonType> 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<string>,
"opendiscord:description":ODOptionData<string>,
"opendiscord:button-emoji":ODOptionData<string>,
"opendiscord:button-label":ODOptionData<string>,
"opendiscord:button-color":ODOptionData<api.ODValidButtonColor>,
"opendiscord:admins":ODOptionData<string[]>,
"opendiscord:admins-readonly":ODOptionData<string[]>,
"opendiscord:allow-blacklisted-users":ODOptionData<boolean>,
"opendiscord:questions":ODOptionData<string[]>,
"opendiscord:channel-prefix":ODOptionData<string>,
"opendiscord:channel-suffix":ODOptionData<"user-name"|"user-nickname"|"user-id"|"random-number"|"random-hex"|"counter-dynamic"|"counter-fixed">,
"opendiscord:channel-category":ODOptionData<string>,
"opendiscord:channel-category-closed":ODOptionData<string>,
"opendiscord:channel-category-backup":ODOptionData<string>,
"opendiscord:channel-categories-claimed":ODOptionData<{user:string,category:string}[]>,
"opendiscord:channel-topic":ODOptionData<string>,
"opendiscord:dm-message-enabled":ODOptionData<boolean>,
"opendiscord:dm-message-text":ODOptionData<string>,
"opendiscord:dm-message-embed":ODOptionData<ODOptionsJsonConfig_TicketOptionEmbedSettings>,
"opendiscord:ticket-message-enabled":ODOptionData<boolean>,
"opendiscord:ticket-message-text":ODOptionData<string>,
"opendiscord:ticket-message-embed":ODOptionData<ODOptionsJsonConfig_TicketOptionEmbedSettings>,
"opendiscord:ticket-message-ping":ODOptionData<ODOptionsJsonConfig_TicketOptionPingSettings>,
"opendiscord:autoclose-enable-hours":ODOptionData<boolean>,
"opendiscord:autoclose-enable-leave":ODOptionData<boolean>,
"opendiscord:autoclose-disable-claim":ODOptionData<boolean>,
"opendiscord:autoclose-hours":ODOptionData<number>,
"opendiscord:autodelete-enable-days":ODOptionData<boolean>,
"opendiscord:autodelete-enable-leave":ODOptionData<boolean>,
"opendiscord:autodelete-disable-claim":ODOptionData<boolean>,
"opendiscord:autodelete-days":ODOptionData<number>,
"opendiscord:cooldown-enabled":ODOptionData<boolean>,
"opendiscord:cooldown-minutes":ODOptionData<number>,
"opendiscord:limits-enabled":ODOptionData<boolean>,
"opendiscord:limits-maximum-global":ODOptionData<number>,
"opendiscord:limits-maximum-user":ODOptionData<number>
"opendiscord:slowmode-enabled":ODOptionData<boolean>,
"opendiscord:slowmode-seconds":ODOptionData<number>,
}
/**## ODTicketOption `class` /**## ODTicketOption `class`
* This is an Open Ticket ticket option. * This is an Open Ticket ticket option.
* *
@@ -197,21 +234,21 @@ export class ODTicketOption extends ODOption {
super(id,"opendiscord:ticket",data) super(id,"opendiscord:ticket",data)
} }
get<OptionId extends keyof ODTicketOptionIds>(id:OptionId): ODTicketOptionIds[OptionId] get<OptionId extends keyof ODTicketOptionIdMappings>(id:OptionId): ODTicketOptionIdMappings[OptionId]
get(id:api.ODValidId): ODOptionData<api.ODValidJsonType>|null get(id:api.ODValidId): ODOptionData<api.ODValidJsonType>|null
get(id:api.ODValidId): ODOptionData<api.ODValidJsonType>|null { get(id:api.ODValidId): ODOptionData<api.ODValidJsonType>|null {
return super.get(id) return super.get(id)
} }
remove<OptionId extends keyof ODTicketOptionIds>(id:OptionId): ODTicketOptionIds[OptionId] remove<OptionId extends keyof ODTicketOptionIdMappings>(id:OptionId): ODTicketOptionIdMappings[OptionId]
remove(id:api.ODValidId): ODOptionData<api.ODValidJsonType>|null remove(id:api.ODValidId): ODOptionData<api.ODValidJsonType>|null
remove(id:api.ODValidId): ODOptionData<api.ODValidJsonType>|null { remove(id:api.ODValidId): ODOptionData<api.ODValidJsonType>|null {
return super.remove(id) return super.remove(id)
} }
exists(id:keyof ODTicketOptionIds): boolean exists(id:keyof ODTicketOptionIdMappings): boolean
exists(id:api.ODValidId): boolean exists(id:api.ODValidId): 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<string>,
"opendiscord:description":ODOptionData<string>,
"opendiscord:button-emoji":ODOptionData<string>,
"opendiscord:button-label":ODOptionData<string>,
"opendiscord:url":ODOptionData<string>,
}
/**## ODWebsiteOption `class` /**## ODWebsiteOption `class`
* This is an Open Ticket website option. * This is an Open Ticket website option.
* *
@@ -251,21 +274,21 @@ export class ODWebsiteOption extends ODOption {
super(id,"opendiscord:website",data) super(id,"opendiscord:website",data)
} }
get<OptionId extends keyof ODWebsiteOptionIds>(id:OptionId): ODWebsiteOptionIds[OptionId] get<OptionId extends keyof ODWebsiteOptionIdMappings>(id:OptionId): ODWebsiteOptionIdMappings[OptionId]
get(id:api.ODValidId): ODOptionData<api.ODValidJsonType>|null get(id:api.ODValidId): ODOptionData<api.ODValidJsonType>|null
get(id:api.ODValidId): ODOptionData<api.ODValidJsonType>|null { get(id:api.ODValidId): ODOptionData<api.ODValidJsonType>|null {
return super.get(id) return super.get(id)
} }
remove<OptionId extends keyof ODWebsiteOptionIds>(id:OptionId): ODWebsiteOptionIds[OptionId] remove<OptionId extends keyof ODWebsiteOptionIdMappings>(id:OptionId): ODWebsiteOptionIdMappings[OptionId]
remove(id:api.ODValidId): ODOptionData<api.ODValidJsonType>|null remove(id:api.ODValidId): ODOptionData<api.ODValidJsonType>|null
remove(id:api.ODValidId): ODOptionData<api.ODValidJsonType>|null { remove(id:api.ODValidId): ODOptionData<api.ODValidJsonType>|null {
return super.remove(id) return super.remove(id)
} }
exists(id:keyof ODWebsiteOptionIds): boolean exists(id:keyof ODWebsiteOptionIdMappings): boolean
exists(id:api.ODValidId): boolean exists(id:api.ODValidId): 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<string>,
"opendiscord:description":ODOptionData<string>,
"opendiscord:button-emoji":ODOptionData<string>,
"opendiscord:button-label":ODOptionData<string>,
"opendiscord:button-color":ODOptionData<api.ODValidButtonColor>,
"opendiscord:roles":ODOptionData<string[]>,
"opendiscord:mode":ODOptionData<ODRoleUpdateMode>,
"opendiscord:remove-roles-on-add":ODOptionData<string[]>,
"opendiscord:add-on-join":ODOptionData<boolean>
}
/**## ODRoleOption `class` /**## ODRoleOption `class`
* This is an Open Ticket role option. * This is an Open Ticket role option.
* *
@@ -309,21 +314,21 @@ export class ODRoleOption extends ODOption {
super(id,"opendiscord:role",data) super(id,"opendiscord:role",data)
} }
get<OptionId extends keyof ODRoleOptionIds>(id:OptionId): ODRoleOptionIds[OptionId] get<OptionId extends keyof ODRoleOptionIdMappings>(id:OptionId): ODRoleOptionIdMappings[OptionId]
get(id:api.ODValidId): ODOptionData<api.ODValidJsonType>|null get(id:api.ODValidId): ODOptionData<api.ODValidJsonType>|null
get(id:api.ODValidId): ODOptionData<api.ODValidJsonType>|null { get(id:api.ODValidId): ODOptionData<api.ODValidJsonType>|null {
return super.get(id) return super.get(id)
} }
remove<OptionId extends keyof ODRoleOptionIds>(id:OptionId): ODRoleOptionIds[OptionId] remove<OptionId extends keyof ODRoleOptionIdMappings>(id:OptionId): ODRoleOptionIdMappings[OptionId]
remove(id:api.ODValidId): ODOptionData<api.ODValidJsonType>|null remove(id:api.ODValidId): ODOptionData<api.ODValidJsonType>|null
remove(id:api.ODValidId): ODOptionData<api.ODValidJsonType>|null { remove(id:api.ODValidId): ODOptionData<api.ODValidJsonType>|null {
return super.remove(id) return super.remove(id)
} }
exists(id:keyof ODRoleOptionIds): boolean exists(id:keyof ODRoleOptionIdMappings): boolean
exists(id:api.ODValidId): boolean exists(id:api.ODValidId): boolean
exists(id:api.ODValidId): boolean { exists(id:api.ODValidId): boolean {
@@ -376,7 +381,7 @@ export class ODOptionSuffixManager extends api.ODManager<ODOptionSuffix> {
* *
* Use `getSuffix()` to get the new suffix! * 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. */ /**The option of this suffix. */
option: ODTicketOption option: ODTicketOption
@@ -386,9 +391,7 @@ export class ODOptionSuffix extends api.ODManagerData {
} }
/**Get the suffix for a new ticket. */ /**Get the suffix for a new ticket. */
async getSuffix(member:discord.GuildMember): Promise<string> { abstract getSuffix(member:discord.GuildMember): Promise<string>
throw new api.ODSystemError("Tried to use an unimplemented ODOptionSuffix!")
}
} }
/**## ODOptionUserNameSuffix `class` /**## ODOptionUserNameSuffix `class`
+33 -27
View File
@@ -4,6 +4,36 @@
import * as api from "@open-discord-bots/framework/api" import * as api from "@open-discord-bots/framework/api"
import { ODPanelsJsonConfig_PanelEmbedSettings } from "../mappings/config.js" import { ODPanelsJsonConfig_PanelEmbedSettings } from "../mappings/config.js"
/**## ODPanelIdConstraint `type`
* The constraint/layout for id mappings/interfaces of the `ODPanel` class.
*/
export type ODPanelIdConstraint = Record<string,ODPanelData<api.ODValidJsonType>>
/**## 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<string>,
"opendiscord:options":ODPanelData<string[]>,
"opendiscord:dropdown":ODPanelData<boolean>,
"opendiscord:text":ODPanelData<string>,
"opendiscord:embed":ODPanelData<ODPanelsJsonConfig_PanelEmbedSettings>,
"opendiscord:dropdown-placeholder":ODPanelData<string>,
"opendiscord:enable-max-tickets-warning-text":ODPanelData<boolean>,
"opendiscord:enable-max-tickets-warning-embed":ODPanelData<boolean>,
"opendiscord:describe-options-layout":ODPanelData<"simple"|"normal"|"detailed">,
"opendiscord:describe-options-custom-title":ODPanelData<string>,
"opendiscord:describe-options-in-text":ODPanelData<boolean>,
"opendiscord:describe-options-in-embed-fields":ODPanelData<boolean>,
"opendiscord:describe-options-in-embed-description":ODPanelData<boolean>
}
/**## ODPanelManager `class` /**## ODPanelManager `class`
* This is an Open Ticket panel manager. * This is an Open Ticket panel manager.
* *
@@ -44,30 +74,6 @@ export interface ODPanelJson {
data:ODPanelDataJson[] 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<string>,
"opendiscord:options":ODPanelData<string[]>,
"opendiscord:dropdown":ODPanelData<boolean>,
"opendiscord:text":ODPanelData<string>,
"opendiscord:embed":ODPanelData<ODPanelsJsonConfig_PanelEmbedSettings>,
"opendiscord:dropdown-placeholder":ODPanelData<string>,
"opendiscord:enable-max-tickets-warning-text":ODPanelData<boolean>,
"opendiscord:enable-max-tickets-warning-embed":ODPanelData<boolean>,
"opendiscord:describe-options-layout":ODPanelData<"simple"|"normal"|"detailed">,
"opendiscord:describe-options-custom-title":ODPanelData<string>,
"opendiscord:describe-options-in-text":ODPanelData<boolean>,
"opendiscord:describe-options-in-embed-fields":ODPanelData<boolean>,
"opendiscord:describe-options-in-embed-description":ODPanelData<boolean>
}
/**## ODPanel `class` /**## ODPanel `class`
* This is an Open Ticket panel. * This is an Open Ticket panel.
* *
@@ -106,21 +112,21 @@ export class ODPanel extends api.ODManager<ODPanelData<api.ODValidJsonType>> {
return new ODPanel(json.id,json.data.map((data) => new ODPanelData(data.id,data.value))) return new ODPanel(json.id,json.data.map((data) => new ODPanelData(data.id,data.value)))
} }
get<PanelId extends keyof ODPanelIds>(id:PanelId): ODPanelIds[PanelId] get<PanelId extends keyof ODPanelIdMappings>(id:PanelId): ODPanelIdMappings[PanelId]
get(id:api.ODValidId): ODPanelData<api.ODValidJsonType>|null get(id:api.ODValidId): ODPanelData<api.ODValidJsonType>|null
get(id:api.ODValidId): ODPanelData<api.ODValidJsonType>|null { get(id:api.ODValidId): ODPanelData<api.ODValidJsonType>|null {
return super.get(id) return super.get(id)
} }
remove<PanelId extends keyof ODPanelIds>(id:PanelId): ODPanelIds[PanelId] remove<PanelId extends keyof ODPanelIdMappings>(id:PanelId): ODPanelIdMappings[PanelId]
remove(id:api.ODValidId): ODPanelData<api.ODValidJsonType>|null remove(id:api.ODValidId): ODPanelData<api.ODValidJsonType>|null
remove(id:api.ODValidId): ODPanelData<api.ODValidJsonType>|null { remove(id:api.ODValidId): ODPanelData<api.ODValidJsonType>|null {
return super.remove(id) return super.remove(id)
} }
exists(id:keyof ODPanelIds): boolean exists(id:keyof ODPanelIdMappings): boolean
exists(id:api.ODValidId): boolean exists(id:api.ODValidId): boolean
exists(id:api.ODValidId): boolean { exists(id:api.ODValidId): boolean {
+39 -33
View File
@@ -3,6 +3,39 @@
/////////////////////////////////////// ///////////////////////////////////////
import * as api from "@open-discord-bots/framework/api" 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<string,ODQuestionData<api.ODValidJsonType>>
/**## 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<string>,
"opendiscord:required":ODQuestionData<boolean>,
"opendiscord:placeholder":ODQuestionData<string>,
"opendiscord:length-enabled":ODQuestionData<boolean>,
"opendiscord:length-min":ODQuestionData<number>,
"opendiscord:length-max":ODQuestionData<number>
}
/**## 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<string>,
"opendiscord:required":ODQuestionData<boolean>,
"opendiscord:placeholder":ODQuestionData<string>,
"opendiscord:length-enabled":ODQuestionData<boolean>,
"opendiscord:length-min":ODQuestionData<number>,
"opendiscord:length-max":ODQuestionData<number>
}
/**## ODQuestionManager `class` /**## ODQuestionManager `class`
* This is an Open Ticket question manager. * This is an Open Ticket question manager.
* *
@@ -120,19 +153,6 @@ export class ODQuestionData<DataType extends api.ODValidJsonType> 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<string>,
"opendiscord:required":ODQuestionData<boolean>,
"opendiscord:placeholder":ODQuestionData<string>,
"opendiscord:length-enabled":ODQuestionData<boolean>,
"opendiscord:length-min":ODQuestionData<number>,
"opendiscord:length-max":ODQuestionData<number>
}
/**## ODShortQuestion `class` /**## ODShortQuestion `class`
* This is an Open Ticket short question. * This is an Open Ticket short question.
@@ -148,21 +168,21 @@ export class ODShortQuestion extends ODQuestion {
super(id,"opendiscord:short",data) super(id,"opendiscord:short",data)
} }
get<QuestionId extends keyof ODShortQuestionIds>(id:QuestionId): ODShortQuestionIds[QuestionId] get<QuestionId extends keyof ODShortQuestionIdMappings>(id:QuestionId): ODShortQuestionIdMappings[QuestionId]
get(id:api.ODValidId): ODQuestionData<api.ODValidJsonType>|null get(id:api.ODValidId): ODQuestionData<api.ODValidJsonType>|null
get(id:api.ODValidId): ODQuestionData<api.ODValidJsonType>|null { get(id:api.ODValidId): ODQuestionData<api.ODValidJsonType>|null {
return super.get(id) return super.get(id)
} }
remove<QuestionId extends keyof ODShortQuestionIds>(id:QuestionId): ODShortQuestionIds[QuestionId] remove<QuestionId extends keyof ODShortQuestionIdMappings>(id:QuestionId): ODShortQuestionIdMappings[QuestionId]
remove(id:api.ODValidId): ODQuestionData<api.ODValidJsonType>|null remove(id:api.ODValidId): ODQuestionData<api.ODValidJsonType>|null
remove(id:api.ODValidId): ODQuestionData<api.ODValidJsonType>|null { remove(id:api.ODValidId): ODQuestionData<api.ODValidJsonType>|null {
return super.remove(id) return super.remove(id)
} }
exists(id:keyof ODShortQuestionIds): boolean exists(id:keyof ODShortQuestionIdMappings): boolean
exists(id:api.ODValidId): boolean exists(id:api.ODValidId): 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<string>,
"opendiscord:required":ODQuestionData<boolean>,
"opendiscord:placeholder":ODQuestionData<string>,
"opendiscord:length-enabled":ODQuestionData<boolean>,
"opendiscord:length-min":ODQuestionData<number>,
"opendiscord:length-max":ODQuestionData<number>
}
/**## ODParagraphQuestion `class` /**## ODParagraphQuestion `class`
* This is an Open Ticket paragraph question. * This is an Open Ticket paragraph question.
* *
@@ -202,21 +208,21 @@ export class ODParagraphQuestion extends ODQuestion {
super(id,"opendiscord:paragraph",data) super(id,"opendiscord:paragraph",data)
} }
get<QuestionId extends keyof ODParagraphQuestionIds>(id:QuestionId): ODParagraphQuestionIds[QuestionId] get<QuestionId extends keyof ODParagraphQuestionIdMappings>(id:QuestionId): ODParagraphQuestionIdMappings[QuestionId]
get(id:api.ODValidId): ODQuestionData<api.ODValidJsonType>|null get(id:api.ODValidId): ODQuestionData<api.ODValidJsonType>|null
get(id:api.ODValidId): ODQuestionData<api.ODValidJsonType>|null { get(id:api.ODValidId): ODQuestionData<api.ODValidJsonType>|null {
return super.get(id) return super.get(id)
} }
remove<QuestionId extends keyof ODParagraphQuestionIds>(id:QuestionId): ODParagraphQuestionIds[QuestionId] remove<QuestionId extends keyof ODParagraphQuestionIdMappings>(id:QuestionId): ODParagraphQuestionIdMappings[QuestionId]
remove(id:api.ODValidId): ODQuestionData<api.ODValidJsonType>|null remove(id:api.ODValidId): ODQuestionData<api.ODValidJsonType>|null
remove(id:api.ODValidId): ODQuestionData<api.ODValidJsonType>|null { remove(id:api.ODValidId): ODQuestionData<api.ODValidJsonType>|null {
return super.remove(id) return super.remove(id)
} }
exists(id:keyof ODParagraphQuestionIds): boolean exists(id:keyof ODParagraphQuestionIdMappings): boolean
exists(id:api.ODValidId): boolean exists(id:api.ODValidId): boolean
exists(id:api.ODValidId): boolean { exists(id:api.ODValidId): boolean {
+19 -14
View File
@@ -4,6 +4,22 @@
import * as api from "@open-discord-bots/framework/api" import * as api from "@open-discord-bots/framework/api"
import * as discord from "discord.js" import * as discord from "discord.js"
/**## ODRoleIdConstraint `type`
* The constraint/layout for id mappings/interfaces of the `ODRole` class.
*/
export type ODRoleIdConstraint = Record<string,ODRoleData<api.ODValidJsonType>>
/**## 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<string[]>,
"opendiscord:mode":ODRoleData<ODRoleUpdateMode>,
"opendiscord:remove-roles-on-add":ODRoleData<string[]>,
"opendiscord:add-on-join":ODRoleData<boolean>
}
/**## ODRoleManager `class` /**## ODRoleManager `class`
* This is an Open Ticket role manager. * This is an Open Ticket role manager.
* *
@@ -44,17 +60,6 @@ export interface ODRoleJson {
data:ODRoleDataJson[] 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<string[]>,
"opendiscord:mode":ODRoleData<ODRoleUpdateMode>,
"opendiscord:remove-roles-on-add":ODRoleData<string[]>,
"opendiscord:add-on-join":ODRoleData<boolean>
}
/**## ODRole `class` /**## ODRole `class`
* This is an Open Ticket role. * This is an Open Ticket role.
* *
@@ -95,21 +100,21 @@ export class ODRole extends api.ODManager<ODRoleData<api.ODValidJsonType>> {
return new ODRole(json.id,json.data.map((data) => new ODRoleData(data.id,data.value))) return new ODRole(json.id,json.data.map((data) => new ODRoleData(data.id,data.value)))
} }
get<OptionId extends keyof ODRoleIds>(id:OptionId): ODRoleIds[OptionId] get<OptionId extends keyof ODRoleIdMappings>(id:OptionId): ODRoleIdMappings[OptionId]
get(id:api.ODValidId): ODRoleData<api.ODValidJsonType>|null get(id:api.ODValidId): ODRoleData<api.ODValidJsonType>|null
get(id:api.ODValidId): ODRoleData<api.ODValidJsonType>|null { get(id:api.ODValidId): ODRoleData<api.ODValidJsonType>|null {
return super.get(id) return super.get(id)
} }
remove<OptionId extends keyof ODRoleIds>(id:OptionId): ODRoleIds[OptionId] remove<OptionId extends keyof ODRoleIdMappings>(id:OptionId): ODRoleIdMappings[OptionId]
remove(id:api.ODValidId): ODRoleData<api.ODValidJsonType>|null remove(id:api.ODValidId): ODRoleData<api.ODValidJsonType>|null
remove(id:api.ODValidId): ODRoleData<api.ODValidJsonType>|null { remove(id:api.ODValidId): ODRoleData<api.ODValidJsonType>|null {
return super.remove(id) return super.remove(id)
} }
exists(id:keyof ODRoleIds): boolean exists(id:keyof ODRoleIdMappings): boolean
exists(id:api.ODValidId): boolean exists(id:api.ODValidId): boolean
exists(id:api.ODValidId): boolean { exists(id:api.ODValidId): boolean {
+52 -47
View File
@@ -5,6 +5,55 @@ import * as api from "@open-discord-bots/framework/api"
import { ODTicketOption } from "./option.js" import { ODTicketOption } from "./option.js"
import * as discord from "discord.js" import * as discord from "discord.js"
/**## ODTicketIdConstraint `type`
* The constraint/layout for id mappings/interfaces of the `ODTicket` class.
*/
export type ODTicketIdConstraint = Record<string,ODTicketData<api.ODValidJsonType>>
/**## 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<boolean>,
"opendiscord:ticket-message":ODTicketData<string|null>,
"opendiscord:participants":ODTicketData<{type:"role"|"user",id:string}[]>,
"opendiscord:channel-suffix":ODTicketData<string>,
"opendiscord:previous-creators":ODTicketData<string[]>,
"opendiscord:open":ODTicketData<boolean>,
"opendiscord:opened-by":ODTicketData<string|null>,
"opendiscord:opened-on":ODTicketData<number|null>,
"opendiscord:closed":ODTicketData<boolean>,
"opendiscord:closed-by":ODTicketData<string|null>,
"opendiscord:closed-on":ODTicketData<number|null>,
"opendiscord:reopened":ODTicketData<boolean>,
"opendiscord:reopened-by":ODTicketData<string|null>,
"opendiscord:reopened-on":ODTicketData<number|null>,
"opendiscord:claimed":ODTicketData<boolean>,
"opendiscord:claimed-by":ODTicketData<string|null>,
"opendiscord:claimed-on":ODTicketData<number|null>,
"opendiscord:pinned":ODTicketData<boolean>,
"opendiscord:pinned-by":ODTicketData<string|null>,
"opendiscord:pinned-on":ODTicketData<number|null>,
"opendiscord:for-deletion":ODTicketData<boolean>,
"opendiscord:category":ODTicketData<string|null>,
"opendiscord:category-mode":ODTicketData<null|"normal"|"closed"|"backup"|"claimed">,
"opendiscord:autoclose-enabled":ODTicketData<boolean>,
"opendiscord:autoclose-hours":ODTicketData<number>,
"opendiscord:autoclosed":ODTicketData<boolean>,
"opendiscord:autodelete-enabled":ODTicketData<boolean>,
"opendiscord:autodelete-days":ODTicketData<number>,
"opendiscord:answers":ODTicketData<{id:string,name:string,type:"short"|"paragraph",value:string|null}[]>,
"opendiscord:priority":ODTicketData<number>,
"opendiscord:topic":ODTicketData<string>,
"opendiscord:message-sent":ODTicketData<boolean>,
"opendiscord:admin-message-sent":ODTicketData<boolean>,
}
/**## ODTicketManager `class` /**## ODTicketManager `class`
* This is an Open Ticket ticket manager. * This is an Open Ticket ticket manager.
* *
@@ -144,50 +193,6 @@ export interface ODTicketJson {
data:ODTicketDataJson[] 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<boolean>,
"opendiscord:ticket-message":ODTicketData<string|null>,
"opendiscord:participants":ODTicketData<{type:"role"|"user",id:string}[]>,
"opendiscord:channel-suffix":ODTicketData<string>,
"opendiscord:previous-creators":ODTicketData<string[]>,
"opendiscord:open":ODTicketData<boolean>,
"opendiscord:opened-by":ODTicketData<string|null>,
"opendiscord:opened-on":ODTicketData<number|null>,
"opendiscord:closed":ODTicketData<boolean>,
"opendiscord:closed-by":ODTicketData<string|null>,
"opendiscord:closed-on":ODTicketData<number|null>,
"opendiscord:reopened":ODTicketData<boolean>,
"opendiscord:reopened-by":ODTicketData<string|null>,
"opendiscord:reopened-on":ODTicketData<number|null>,
"opendiscord:claimed":ODTicketData<boolean>,
"opendiscord:claimed-by":ODTicketData<string|null>,
"opendiscord:claimed-on":ODTicketData<number|null>,
"opendiscord:pinned":ODTicketData<boolean>,
"opendiscord:pinned-by":ODTicketData<string|null>,
"opendiscord:pinned-on":ODTicketData<number|null>,
"opendiscord:for-deletion":ODTicketData<boolean>,
"opendiscord:category":ODTicketData<string|null>,
"opendiscord:category-mode":ODTicketData<null|"normal"|"closed"|"backup"|"claimed">,
"opendiscord:autoclose-enabled":ODTicketData<boolean>,
"opendiscord:autoclose-hours":ODTicketData<number>,
"opendiscord:autoclosed":ODTicketData<boolean>,
"opendiscord:autodelete-enabled":ODTicketData<boolean>,
"opendiscord:autodelete-days":ODTicketData<number>,
"opendiscord:answers":ODTicketData<{id:string,name:string,type:"short"|"paragraph",value:string|null}[]>,
"opendiscord:priority":ODTicketData<number>,
"opendiscord:topic":ODTicketData<string>,
"opendiscord:message-sent":ODTicketData<boolean>,
"opendiscord:admin-message-sent":ODTicketData<boolean>,
}
/**## ODTicket `class` /**## ODTicket `class`
* This is an Open Ticket ticket. * This is an Open Ticket ticket.
* *
@@ -241,21 +246,21 @@ export class ODTicket extends api.ODManager<ODTicketData<api.ODValidJsonType>> {
return new ODTicket(json.id,option,json.data.map((data) => new ODTicketData(data.id,data.value))) return new ODTicket(json.id,option,json.data.map((data) => new ODTicketData(data.id,data.value)))
} }
get<OptionId extends keyof ODTicketIds>(id:OptionId): ODTicketIds[OptionId] get<OptionId extends keyof ODTicketIdMappings>(id:OptionId): ODTicketIdMappings[OptionId]
get(id:api.ODValidId): ODTicketData<api.ODValidJsonType>|null get(id:api.ODValidId): ODTicketData<api.ODValidJsonType>|null
get(id:api.ODValidId): ODTicketData<api.ODValidJsonType>|null { get(id:api.ODValidId): ODTicketData<api.ODValidJsonType>|null {
return super.get(id) return super.get(id)
} }
remove<OptionId extends keyof ODTicketIds>(id:OptionId): ODTicketIds[OptionId] remove<OptionId extends keyof ODTicketIdMappings>(id:OptionId): ODTicketIdMappings[OptionId]
remove(id:api.ODValidId): ODTicketData<api.ODValidJsonType>|null remove(id:api.ODValidId): ODTicketData<api.ODValidJsonType>|null
remove(id:api.ODValidId): ODTicketData<api.ODValidJsonType>|null { remove(id:api.ODValidId): ODTicketData<api.ODValidJsonType>|null {
return super.remove(id) return super.remove(id)
} }
exists(id:keyof ODTicketIds): boolean exists(id:keyof ODTicketIdMappings): boolean
exists(id:api.ODValidId): boolean exists(id:api.ODValidId): boolean
exists(id:api.ODValidId): boolean { exists(id:api.ODValidId): boolean {