1 line
8.3 KiB
JSON
1 line
8.3 KiB
JSON
{"$schema":"http://json-schema.org/draft-07/schema#","$ref":"#/definitions/ServerMetaSchema","definitions":{"ServerMetaSchema":{"type":"object","additionalProperties":false,"properties":{"$schema":{"type":"string","description":"URL to the JSON schema for this type of file. This is used by editors to validate and annotate the data."},"meta":{"type":"object","properties":{"version":{"type":"string","description":"The version of the server configuration."},"name":{"type":"string","description":"The name of the server. This is what users see on the UI."},"description":{"type":"string","description":"A brief description of the server. Displayed on the UI to provide users more information."},"icon":{"type":"string","description":"A URL to the server's icon. Will be displayed on the UI."},"address":{"type":"string","description":"The server's IP address."},"discord":{"type":"object","properties":{"shortId":{"type":"string","description":"Short ID for the server. Displayed on the second status line as Server: shortId."},"largeImageText":{"type":"string","description":"Tooltip for the largeImageKey."},"largeImageKey":{"type":"string","description":"Name of the uploaded image for the large profile artwork."}},"required":["shortId","largeImageText","largeImageKey"],"additionalProperties":false,"description":"Server specific settings used for Discord Rich Presence."},"mainServer":{"type":"boolean","description":"Only one server in the array should have the mainServer property enabled. This will tell the launcher that this is the default server to select if either the previously selected server is invalid, or there is no previously selected server. If this field is not defined by any server (avoid this), the first server will be selected as the default. If multiple servers have mainServer enabled, the first one the launcher finds will be the effective value. Servers which are not the default may omit this property rather than explicitly setting it to false."},"autoconnect":{"type":"boolean","description":"Whether or not the server can be autoconnected to. If false, the server will not be autoconnected to even when the user has the autoconnect setting enabled."},"javaOptions":{"$ref":"#/definitions/JavaOptions","description":"Java options."}},"required":["version","name","description","address","autoconnect"],"additionalProperties":false,"description":"Server metadata to be forwarded to the distribution file."},"forge":{"type":"object","properties":{"version":{"type":"string","description":"The forge version. This does NOT include the minecraft version. Ex. 14.23.5.2854"}},"required":["version"],"additionalProperties":false,"description":"Properties related to Forge."},"fabric":{"type":"object","properties":{"version":{"type":"string","description":"The fabric loader version. This does NOT include the minecraft version. Ex. 0.14.18"}},"required":["version"],"additionalProperties":false,"description":"Properties related to Fabric."},"untrackedFiles":{"type":"array","items":{"$ref":"#/definitions/UntrackedFilesOption"},"description":"A list of option objects defining patterns for untracked files."}},"required":["meta"]},"JavaOptions":{"type":"object","properties":{"distribution":{"$ref":"#/definitions/JdkDistribution","description":"Preferred JDK distribution to download if no applicable installation could be found. If omitted, the client will decide (decision may be platform-specific)."},"supported":{"type":"string","description":"A semver range of supported JDK versions.\n\nJava version syntax is platform dependent.\n\nJDK 8 and prior 1.{major}.{minor}_{patch}-b{build} Ex. 1.8.0_152-b16\n\nJDK 9+ {major}.{minor}.{patch}+{build} Ex. 11.0.12+7\n\nFor processing, all versions will be translated into a semver compliant string. JDK 9+ is already semver. For versions 8 and below, 1.{major}.{minor}_{patch}-b{build} will be translated to {major}.{minor}.{patch}+{build}.\n\nIf specified, you must also specify suggestedMajor.\n\nIf omitted, the client will decide based on the game version."},"suggestedMajor":{"type":"number","description":"The suggested major Java version. The suggested major should comply with the version range specified by supported, if defined. This will be used in messages displayed to the end user, and to automatically fetch a Java version.\n\nNOTE If supported is specified, suggestedMajor must be set. The launcher's default value may not comply with your custom major supported range.\n\nCommon use case: supported: >=17.x suggestedMajor: 17\n\nMore involved: supported: >=16 <20 suggestedMajor: 17\n\nGiven a wider support range, it becomes necessary to specify which major version in the range is the suggested."},"platformOptions":{"type":"array","items":{"$ref":"#/definitions/JavaPlatformOptions"},"description":"Platform-specific java rules for this server configuration. Validation rules will be delegated to the client for any undefined properties. Java validation can be configured for specific platforms and architectures. The most specific ruleset will be applied.\n\nMaxtrix Precedence (Highest - Lowest)\n- Current platform, current architecture (ex. win32 x64)\n- Current platform, any architecture (ex. win32)\n- Java Options base properties (defined on this object)\n- Client logic (default logic in the client)"},"ram":{"type":"object","properties":{"recommended":{"type":"number","description":"The recommended amount of RAM in megabytes. Must be an interval of 512."},"minimum":{"type":"number","description":"The absolute minimum amount of RAM in megabytes. Must be an interval of 512."}},"required":["recommended","minimum"],"additionalProperties":false,"description":"RAM settings. If omitted, legacy client logic will be used to determine these values."}},"additionalProperties":false,"description":"Java options."},"JdkDistribution":{"type":"string","enum":["CORRETTO","TEMURIN"],"description":"Supported JDK Distributions"},"JavaPlatformOptions":{"type":"object","properties":{"distribution":{"$ref":"#/definitions/JdkDistribution","description":"Preferred JDK distribution to download if no applicable installation could be found. If omitted, the client will decide (decision may be platform-specific)."},"supported":{"type":"string","description":"A semver range of supported JDK versions.\n\nJava version syntax is platform dependent.\n\nJDK 8 and prior 1.{major}.{minor}_{patch}-b{build} Ex. 1.8.0_152-b16\n\nJDK 9+ {major}.{minor}.{patch}+{build} Ex. 11.0.12+7\n\nFor processing, all versions will be translated into a semver compliant string. JDK 9+ is already semver. For versions 8 and below, 1.{major}.{minor}_{patch}-b{build} will be translated to {major}.{minor}.{patch}+{build}.\n\nIf specified, you must also specify suggestedMajor.\n\nIf omitted, the client will decide based on the game version."},"suggestedMajor":{"type":"number","description":"The suggested major Java version. The suggested major should comply with the version range specified by supported, if defined. This will be used in messages displayed to the end user, and to automatically fetch a Java version.\n\nNOTE If supported is specified, suggestedMajor must be set. The launcher's default value may not comply with your custom major supported range.\n\nCommon use case: supported: >=17.x suggestedMajor: 17\n\nMore involved: supported: >=16 <20 suggestedMajor: 17\n\nGiven a wider support range, it becomes necessary to specify which major version in the range is the suggested."},"platform":{"$ref":"#/definitions/Platform","description":"The platform that this validation matrix applies to."},"architecture":{"$ref":"#/definitions/Architecture","description":"The architecture that this validation matrix applies to. If omitted, applies to all architectures."}},"required":["platform"],"additionalProperties":false,"description":"Java validation rules for a specific platform."},"Platform":{"type":"string","enum":["darwin","linux","win32"],"description":"Supported platforms."},"Architecture":{"type":"string","enum":["arm64","x64"],"description":"Supported architectures."},"UntrackedFilesOption":{"type":"object","properties":{"appliesTo":{"type":"array","items":{"type":"string"},"description":"The subdirectory these patterns will be applied to. Ex. [ \"files\", \"forgegemods\" ]"},"patterns":{"type":"array","items":{"type":"string"},"description":"Glob patterns to match against the file."}},"required":["appliesTo","patterns"],"additionalProperties":false}}} |