Правила
Правило каже, де щось застосовується: «лише на Windows», «не на ARM», «лише з увімкненим прапорцем».
"rules": "allow.os.windows"rules це одне правило або список. Відсутність означає «завжди».
У конфігурації
Звичайний Minecraft, з правилом у кожному з трьох місць конфігурації, де воно може бути:
// opys.config.mjs
export default defineConfig({
plugins: [
minecraft({ version: '1.21.1' }),
java({ version: '21' }),
files({
from: 'tools',
to: (file) => '${game_directory}/tools/' + file.rel,
}).addRule('**/*.dll', 'allow.os.windows'), // файл: встановлюється лише на Windows
],
manifest: {
command: '@minecraft.command',
args: [
// аргумент: передається лише на macOS
{ rules: 'allow.os.osx', value: ['-Xdock:name=My Pack'] },
'@minecraft.jvmArgs',
'@minecraft.mainClass',
'@minecraft.gameArgs',
],
workdir: '${game_directory}',
vars: {
// змінна: перемагає останнє значення, правила якого проходять
pack_label: [
{ value: 'My Pack' },
{ value: 'My Pack (Mac)', rules: 'allow.os.osx' },
],
},
},
});Два способи записати правило
Обидва означають те саме, і читач має приймати обидва.
Короткий
Рядок. Саме так ви пишете в конфігурації.
| Правило | Коли проходить |
|---|---|
allow.os.windows | На Windows. |
allow.os.linux | На Linux. |
allow.os.osx | На macOS. |
allow.arch.aarch64 | На ARM64. |
allow.arch.x86_64 | На 64-бітних Intel і AMD. |
allow.features.java_console | Коли цей прапорець увімкнено. |
allow.os.osx@^14 | На macOS, версія якої збігається з шаблоном. |
disallow.os.osx | Скрізь, крім macOS. |
allow | Завжди. |
disallow | Ніколи. |
disallow приймає кожну форму, яку приймає allow.
Довгий
Об'єкт. Це власна форма Mojang, яку використовують файли версій гри.
{ "action": "allow", "os": { "name": "osx", "arch": "aarch64" } }{ "action": "disallow", "features": { "is_demo_user": true } }| Поле | Що це |
|---|---|
action | allow або disallow. Обов'язкове. |
os | Будь-які з name, arch, version. Усі названі мають збігтися. |
features | Імена прапорців, кожне true (має бути ввімкнено) або false (має бути вимкнено). |
Використовуйте довгу форму, коли коротка не може це сказати, наприклад ОС і архітектуру в одному правилі. Дайте правилу os або features, не обидва.
Як вирішується набір правил
- Правило має умову (
os,featuresабо жодної). Без умови умова виконується завжди. - Правило
allowпроходить, коли його умова виконується. Правилоdisallowпроходить, коли вона не виконується. - Набір правил проходить, коли проходять усі правила.
["allow.os.linux", "disallow.features.demo"]Проходить на Linux, коли demo вимкнено.
Кожне правило, а не будь-яке
Два правила allow для двох операційних систем не проходять ніде, бо жоден комп'ютер не є обома водночас. Для «Windows або Linux» пишіть disallow.os.osx або використайте два артефакти.
Що повідомляє комп'ютер
| Значення | Можливі значення |
|---|---|
name | linux, windows, osx, freebsd |
arch | x86_64, aarch64 |
version | Порожнє, якщо лаунчер його не передав. |
Рантайм opys не визначає версію ОС. Правило з шаблоном версії працює, лише якщо лаунчер передає platform із нею.
Правило може назвати й архітектури x86, arm, ppc64le та riscv64, яких рантайм ніколи не повідомляє, тож таке правило виконується лише там, де лаунчер передає таку platform. x64, arm64 і arm32, як їх пишуть деякі файли версій, читаються як x86_64, aarch64 і arm.
Прапорці
Прапорець це іменований перемикач, типово вимкнений. Лаунчер вмикає його через features: ['java_console'], командний рядок через --feature java_console.
Відомі прапорці перелічені в розділі Змінні.