{ "$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" }, "mute": { "type": "object", "properties": { "role": { "type": "integer", "description": "The id of the role." }, "take": { "type": "array", "items": { "type": "integer" }, "description": "A list of role ids which will be revoked from the user.", "minItems": 1, "uniqueItems": true } } } } }, "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." } } } } }