mirror of
https://github.com/Grasscutters/Grasscutter.git
synced 2025-12-15 16:34:56 +01:00
Require plugins to specify an API version and match with the server
This commit is contained in:
@@ -1,63 +1,68 @@
|
||||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "JSON schema for a Grasscutter Plugin",
|
||||
"type": "object",
|
||||
"additionalProperties": true,
|
||||
"definitions": {
|
||||
"plugin-name": {
|
||||
"type": "string",
|
||||
"pattern": "^[A-Za-z\\d_.-]+$"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"name",
|
||||
"description",
|
||||
"mainClass"
|
||||
],
|
||||
"properties": {
|
||||
"name": {
|
||||
"description": "The unique name of plugin.",
|
||||
"$ref": "#/definitions/plugin-name"
|
||||
},
|
||||
"mainClass": {
|
||||
"description": "The plugin's initial class file.",
|
||||
"type": "string",
|
||||
"pattern": "^(?!org\\.bukkit\\.)([a-zA-Z_$][a-zA-Z\\d_$]*\\.)*[a-zA-Z_$][a-zA-Z\\d_$]*$"
|
||||
},
|
||||
"version": {
|
||||
"description": "A plugin revision identifier.",
|
||||
"type": [
|
||||
"string",
|
||||
"number"
|
||||
]
|
||||
},
|
||||
"description": {
|
||||
"description": "Human readable plugin summary.",
|
||||
"type": "string"
|
||||
},
|
||||
"author": {
|
||||
"description": "The plugin author.",
|
||||
"type": "string"
|
||||
},
|
||||
"authors": {
|
||||
"description": "The plugin contributors.",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"website": {
|
||||
"title": "Website",
|
||||
"description": "The URL to the plugin's site",
|
||||
"type": "string",
|
||||
"format": "uri"
|
||||
},
|
||||
"loadAfter": {
|
||||
"description": "Plugins to load before this plugin.",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"title": "JSON schema for a Grasscutter Plugin",
|
||||
"type": "object",
|
||||
"additionalProperties": true,
|
||||
"definitions": {
|
||||
"plugin-name": {
|
||||
"type": "string",
|
||||
"pattern": "^[A-Za-z\\d_.-]+$"
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"name",
|
||||
"description",
|
||||
"mainClass",
|
||||
"api"
|
||||
],
|
||||
"properties": {
|
||||
"name": {
|
||||
"description": "The unique name of plugin.",
|
||||
"$ref": "#/definitions/plugin-name"
|
||||
},
|
||||
"mainClass": {
|
||||
"description": "The plugin's initial class file.",
|
||||
"type": "string",
|
||||
"pattern": "^(?!org\\.bukkit\\.)([a-zA-Z_$][a-zA-Z\\d_$]*\\.)*[a-zA-Z_$][a-zA-Z\\d_$]*$"
|
||||
},
|
||||
"version": {
|
||||
"description": "A plugin revision identifier.",
|
||||
"type": [
|
||||
"string",
|
||||
"number"
|
||||
]
|
||||
},
|
||||
"api": {
|
||||
"description": "The API revision the plugin is using.",
|
||||
"type": "number"
|
||||
},
|
||||
"description": {
|
||||
"description": "Human readable plugin summary.",
|
||||
"type": "string"
|
||||
},
|
||||
"author": {
|
||||
"description": "The plugin author.",
|
||||
"type": "string"
|
||||
},
|
||||
"authors": {
|
||||
"description": "The plugin contributors.",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"website": {
|
||||
"title": "Website",
|
||||
"description": "The URL to the plugin's site",
|
||||
"type": "string",
|
||||
"format": "uri"
|
||||
},
|
||||
"loadAfter": {
|
||||
"description": "Plugins to load before this plugin.",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user