mirror of
https://github.com/Hessenuk/DiscordTickets.git
synced 2024-12-23 08:13:09 +02:00
Separate schema
This commit is contained in:
parent
6a978aa025
commit
98c986e715
@ -1,6 +1,7 @@
|
|||||||
const Command = require('../modules/commands/command');
|
const Command = require('../modules/commands/command');
|
||||||
const fetch = require('node-fetch');
|
const fetch = require('node-fetch');
|
||||||
const { MessageAttachment } = require('discord.js');
|
// eslint-disable-next-line no-unused-vars
|
||||||
|
const { MessageAttachment, Message } = require('discord.js');
|
||||||
const { Validator } = require('jsonschema');
|
const { Validator } = require('jsonschema');
|
||||||
|
|
||||||
module.exports = class SettingsCommand extends Command {
|
module.exports = class SettingsCommand extends Command {
|
||||||
@ -18,109 +19,16 @@ module.exports = class SettingsCommand extends Command {
|
|||||||
permissions: ['MANAGE_GUILD']
|
permissions: ['MANAGE_GUILD']
|
||||||
});
|
});
|
||||||
|
|
||||||
this.schema = {
|
this.schema = require('../settings_schema.json');
|
||||||
type: 'object',
|
|
||||||
properties: {
|
|
||||||
categories: {
|
|
||||||
type: 'array',
|
|
||||||
items: {
|
|
||||||
type: 'object',
|
|
||||||
properties: {
|
|
||||||
id: {
|
|
||||||
type: 'string'
|
|
||||||
},
|
|
||||||
claiming: {
|
|
||||||
type: 'boolean'
|
|
||||||
},
|
|
||||||
image: {
|
|
||||||
type: ['string', 'null']
|
|
||||||
},
|
|
||||||
max_per_member: {
|
|
||||||
type: 'number'
|
|
||||||
},
|
|
||||||
name: {
|
|
||||||
type: 'string'
|
|
||||||
},
|
|
||||||
name_format: {
|
|
||||||
type: 'string'
|
|
||||||
},
|
|
||||||
opening_message: {
|
|
||||||
type: 'string'
|
|
||||||
},
|
|
||||||
opening_questions: {
|
|
||||||
type: ['array', 'null'],
|
|
||||||
items: {
|
|
||||||
type: 'string'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
ping: {
|
|
||||||
type: ['array', 'null'],
|
|
||||||
items: {
|
|
||||||
type: 'string'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
require_topic: {
|
|
||||||
type: 'boolean'
|
|
||||||
},
|
|
||||||
roles: {
|
|
||||||
type: 'array',
|
|
||||||
items: {
|
|
||||||
type: 'string'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
survey: {
|
|
||||||
type: ['string', 'null']
|
|
||||||
}
|
|
||||||
},
|
|
||||||
required: [
|
|
||||||
'name',
|
|
||||||
'name_format',
|
|
||||||
'opening_message',
|
|
||||||
'roles'
|
|
||||||
]
|
|
||||||
}
|
|
||||||
},
|
|
||||||
colour: {
|
|
||||||
type: 'string'
|
|
||||||
},
|
|
||||||
command_prefix: {
|
|
||||||
type: 'string'
|
|
||||||
},
|
|
||||||
error_colour: {
|
|
||||||
type: 'string'
|
|
||||||
},
|
|
||||||
footer: {
|
|
||||||
type: 'string'
|
|
||||||
},
|
|
||||||
locale: {
|
|
||||||
type: 'string'
|
|
||||||
},
|
|
||||||
log_messages: {
|
|
||||||
type: 'boolean'
|
|
||||||
},
|
|
||||||
success_colour: {
|
|
||||||
type: 'string'
|
|
||||||
},
|
|
||||||
surveys: {
|
|
||||||
type: 'object'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
required: [
|
|
||||||
'categories',
|
|
||||||
'colour',
|
|
||||||
'command_prefix',
|
|
||||||
'error_colour',
|
|
||||||
'footer',
|
|
||||||
'locale',
|
|
||||||
'log_messages',
|
|
||||||
'success_colour',
|
|
||||||
'surveys'
|
|
||||||
]
|
|
||||||
};
|
|
||||||
|
|
||||||
this.v = new Validator();
|
this.v = new Validator();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {Message} message
|
||||||
|
* @param {*} args
|
||||||
|
* @returns {Promise<void|any>}
|
||||||
|
*/
|
||||||
async execute(message) {
|
async execute(message) {
|
||||||
let settings = await message.guild.settings;
|
let settings = await message.guild.settings;
|
||||||
const i18n = this.client.i18n.getLocale(settings.locale);
|
const i18n = this.client.i18n.getLocale(settings.locale);
|
||||||
|
111
src/settings_schema.json
Normal file
111
src/settings_schema.json
Normal file
@ -0,0 +1,111 @@
|
|||||||
|
{
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"categories": {
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"id": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"claiming": {
|
||||||
|
"type": "boolean"
|
||||||
|
},
|
||||||
|
"image": {
|
||||||
|
"type": [
|
||||||
|
"string",
|
||||||
|
"null"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"max_per_member": {
|
||||||
|
"type": "number"
|
||||||
|
},
|
||||||
|
"name": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"name_format": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"opening_message": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"opening_questions": {
|
||||||
|
"type": [
|
||||||
|
"array",
|
||||||
|
"null"
|
||||||
|
],
|
||||||
|
"items": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ping": {
|
||||||
|
"type": [
|
||||||
|
"array",
|
||||||
|
"null"
|
||||||
|
],
|
||||||
|
"items": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"require_topic": {
|
||||||
|
"type": "boolean"
|
||||||
|
},
|
||||||
|
"roles": {
|
||||||
|
"type": "array",
|
||||||
|
"items": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"survey": {
|
||||||
|
"type": [
|
||||||
|
"string",
|
||||||
|
"null"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": [
|
||||||
|
"name",
|
||||||
|
"name_format",
|
||||||
|
"opening_message",
|
||||||
|
"roles"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"colour": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"command_prefix": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"error_colour": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"footer": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"locale": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"log_messages": {
|
||||||
|
"type": "boolean"
|
||||||
|
},
|
||||||
|
"success_colour": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"surveys": {
|
||||||
|
"type": "object"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"required": [
|
||||||
|
"categories",
|
||||||
|
"colour",
|
||||||
|
"command_prefix",
|
||||||
|
"error_colour",
|
||||||
|
"footer",
|
||||||
|
"locale",
|
||||||
|
"log_messages",
|
||||||
|
"success_colour",
|
||||||
|
"surveys"
|
||||||
|
]
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user