Renamed OT Id Lists to Mappings
This commit is contained in:
+103
-100
@@ -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<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`
|
||||
* 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`
|
||||
* This is an Open Ticket ticket option.
|
||||
*
|
||||
@@ -197,21 +234,21 @@ export class ODTicketOption extends ODOption {
|
||||
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 {
|
||||
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 {
|
||||
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<string>,
|
||||
"opendiscord:description":ODOptionData<string>,
|
||||
|
||||
"opendiscord:button-emoji":ODOptionData<string>,
|
||||
"opendiscord:button-label":ODOptionData<string>,
|
||||
|
||||
"opendiscord:url":ODOptionData<string>,
|
||||
}
|
||||
|
||||
/**## ODWebsiteOption `class`
|
||||
* This is an Open Ticket website option.
|
||||
*
|
||||
@@ -251,21 +274,21 @@ export class ODWebsiteOption extends ODOption {
|
||||
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 {
|
||||
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 {
|
||||
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<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`
|
||||
* This is an Open Ticket role option.
|
||||
*
|
||||
@@ -309,21 +314,21 @@ export class ODRoleOption extends ODOption {
|
||||
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 {
|
||||
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 {
|
||||
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<ODOptionSuffix> {
|
||||
*
|
||||
* 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<string> {
|
||||
throw new api.ODSystemError("Tried to use an unimplemented ODOptionSuffix!")
|
||||
}
|
||||
abstract getSuffix(member:discord.GuildMember): Promise<string>
|
||||
}
|
||||
|
||||
/**## ODOptionUserNameSuffix `class`
|
||||
|
||||
+33
-27
@@ -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<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`
|
||||
* 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<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`
|
||||
* 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)))
|
||||
}
|
||||
|
||||
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 {
|
||||
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 {
|
||||
return super.remove(id)
|
||||
}
|
||||
|
||||
exists(id:keyof ODPanelIds): boolean
|
||||
exists(id:keyof ODPanelIdMappings): boolean
|
||||
exists(id:api.ODValidId): boolean
|
||||
|
||||
exists(id:api.ODValidId): boolean {
|
||||
|
||||
+39
-33
@@ -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<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`
|
||||
* 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`
|
||||
* This is an Open Ticket short question.
|
||||
@@ -148,21 +168,21 @@ export class ODShortQuestion extends ODQuestion {
|
||||
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 {
|
||||
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 {
|
||||
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<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`
|
||||
* This is an Open Ticket paragraph question.
|
||||
*
|
||||
@@ -202,21 +208,21 @@ export class ODParagraphQuestion extends ODQuestion {
|
||||
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 {
|
||||
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 {
|
||||
return super.remove(id)
|
||||
}
|
||||
|
||||
exists(id:keyof ODParagraphQuestionIds): boolean
|
||||
exists(id:keyof ODParagraphQuestionIdMappings): boolean
|
||||
exists(id:api.ODValidId): boolean
|
||||
|
||||
exists(id:api.ODValidId): boolean {
|
||||
|
||||
+19
-14
@@ -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<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`
|
||||
* 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<string[]>,
|
||||
"opendiscord:mode":ODRoleData<ODRoleUpdateMode>,
|
||||
"opendiscord:remove-roles-on-add":ODRoleData<string[]>,
|
||||
"opendiscord:add-on-join":ODRoleData<boolean>
|
||||
}
|
||||
|
||||
/**## ODRole `class`
|
||||
* 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)))
|
||||
}
|
||||
|
||||
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 {
|
||||
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 {
|
||||
return super.remove(id)
|
||||
}
|
||||
|
||||
exists(id:keyof ODRoleIds): boolean
|
||||
exists(id:keyof ODRoleIdMappings): boolean
|
||||
exists(id:api.ODValidId): boolean
|
||||
|
||||
exists(id:api.ODValidId): boolean {
|
||||
|
||||
+52
-47
@@ -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<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`
|
||||
* 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<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`
|
||||
* 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)))
|
||||
}
|
||||
|
||||
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 {
|
||||
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 {
|
||||
return super.remove(id)
|
||||
}
|
||||
|
||||
exists(id:keyof ODTicketIds): boolean
|
||||
exists(id:keyof ODTicketIdMappings): boolean
|
||||
exists(id:api.ODValidId): boolean
|
||||
|
||||
exists(id:api.ODValidId): boolean {
|
||||
|
||||
Reference in New Issue
Block a user