revanced-discord-bot/configuration.schema.json
2022-08-09 18:08:16 +02:00

244 lines
5.9 KiB
JSON

{
"$schema": "https://json-schema.org/draft-07/schema",
"$id": "https://github.com/ReVancedTeam/revanced-signatures/blob/main/signatures.schema.json",
"title": "Configuration schema",
"description": "The Revanced Discord bot configuration schema.",
"type": "object",
"properties": {
"general": {
"type": "object",
"properties": {
"embed_color": {
"$ref": "#/$defs/color"
}
}
},
"administrators": {
"type": "object",
"properties": {
"roles": {
"$ref": "#/$defs/roles",
"description": "A list of role ids. Users with these roles have administrative privileges over this Discord bot."
},
"users": {
"type": "array",
"items": {
"type": "integer"
},
"description": "A list of user ids. Users with these ids have administrative privileges over this Discord bot.",
"minItems": 1,
"uniqueItems": true
}
},
"description": "The list of administrators to control the Discord bot."
},
"thread_introductions": {
"type": "array",
"items": {
"type": "object",
"properties": {
"channels": {
"$ref": "#/$defs/channels",
"description": "A list of channel ids. The bot will only introduce in threads under these channels."
},
"response": {
"$ref": "#/$defs/response",
"description": "The response to send when the thread has been created."
}
}
},
"description": "Introduce new threads with a message.",
"minItems": 1,
"uniqueItems": true
},
"message_responses": {
"type": "array",
"items": {
"type": "object",
"properties": {
"includes": {
"type": "object",
"channels": {
"$ref": "#/$defs/channels",
"description": "A list of channel ids. The bot will only respond to messages in these channels."
},
"match": {
"$ref": "#/$defs/match",
"description": "The message must match this regex to be responded to."
}
},
"excludes": {
"type": "object",
"roles": {
"$ref": "#/$defs/roles",
"description": "A list of role ids. The bot will not respond to messages from users with these roles."
},
"match": {
"$ref": "#/$defs/match",
"description": "Messages matching this regex will not be responded to."
}
},
"condition": {
"type": "object",
"properties": {
"user": {
"type": "object",
"properties": {
"server_age": {
"type": "integer",
"description": "The user must be less than this many days old on the server."
}
},
"description": "User condition."
}
},
"description": "The conditions to respond to the message."
},
"response": {
"$ref": "#/$defs/response",
"description": "The response to send when the message is responded to."
}
},
"description": "The conditions to respond to a message."
},
"description": "A list of responses the Discord bot should send based on given conditions."
}
},
"$defs": {
"color": {
"type": "integer",
"description": "The color of the embed."
},
"roles": {
"type": "array",
"items": {
"type": "integer"
},
"description": "A list of role ids.",
"uniqueItems": true,
"minItems": 1
},
"channels": {
"type": "array",
"items": {
"type": "integer"
},
"uniqueItems": true,
"minItems": 1
},
"match": {
"type": "array",
"items": {
"type": "string"
},
"description": "A list of regex strings.",
"uniqueItems": true,
"minItems": 1
},
"embed": {
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "The title of the embed."
},
"description": {
"type": "string",
"description": "The description of the embed."
},
"color": {
"$ref": "#/$defs/color",
"description": "The color of the embed."
},
"fields": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the field."
},
"value": {
"type": "string",
"description": "The value of the field."
},
"inline": {
"type": "boolean",
"description": "Whether the field is inline."
}
},
"description": "The field to add to the embed."
},
"description": "The fields to add to the embed."
},
"image": {
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "The url of the image."
}
},
"description": "The image to add to the embed."
},
"thumbnail": {
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "The url of the thumbnail."
}
},
"description": "The thumbnail to add to the embed."
},
"author": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the author."
},
"url": {
"type": "string",
"description": "The url of the author."
},
"icon_url": {
"type": "string",
"description": "The url of the author's icon."
}
},
"description": "The author to add to the embed."
},
"footer": {
"type": "object",
"properties": {
"text": {
"type": "string",
"description": "The text of the footer."
},
"icon_url": {
"type": "string",
"description": "The url of the footer's icon."
}
},
"description": "The footer to add to the embed."
}
}
},
"response": {
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "The message. Can be empty if the embed is not empty"
},
"embed": {
"$ref": "#/$defs/embed",
"description": "The embed to send."
}
}
}
}
}