plugin-schema.json 1.24 KB
Newer Older
KingRainbow44's avatar
KingRainbow44 committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
{
  "$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"
    }
  }
}