Вступ
opys перетворює короткий файл конфігурації на встановлення Minecraft, яке встановлюється та запускається однаково на кожному комп'ютері.
Ви описуєте збірку один раз: завантажувач, Java, моди. opys знаходить кожен файл, потрібний грі, і фіксує кожен з них хешем.
Ідея в чотирьох рядках
- Конфігурація перелічує плагіни:
forge,java,modrinth. opys buildзапускає їх і записує бандл: один файл, що описує все встановлення.- Лаунчер (або
opys launch) встановлює бандл і запускає гру. - Шляхи та облікові записи підставляються на комп'ютері гравця, а не запечені всередину.
Спробуйте
Вам потрібен Node.js 20 або новіший. Java вам не потрібна: opys завантажить її.
npm install -g @opys/cli
mkdir my-pack && cd my-pack
npm init -y
npm install -D @opys/dev @opys/minecraftСтворіть opys.config.mjs:
import { defineConfig, userDataDir } from '@opys/dev';
import { forge, java } from '@opys/minecraft';
export default defineConfig({
output: 'game.opys',
plugins: [
forge({ version: '1.20.1' }), // the game, with Forge
java({ version: '17' }), // the Java that runs it
],
manifest: {
command: '@forge.command',
args: ['@forge.jvmArgs', '@forge.mainClass', '@forge.gameArgs'],
workdir: '${game_directory}',
},
run: (manifest) => ({
manifest: {
vars: {
...manifest.vars,
root: userDataDir('my-pack'),
username: 'Player',
uuid: '00000000-0000-0000-0000-000000000001',
token: '0',
},
},
}),
});Потім:
opys launchПерший запуск завантажує близько гігабайта. Наступні запуски довантажують лише те, що змінилося.
Куди це встановилося?
У userDataDir('my-pack'): ~/.local/share/my-pack на Linux, %APPDATA%\my-pack на Windows, ~/Library/Application Support/my-pack на macOS. Видаліть теку, щоб почати спочатку.
Що ви щойно написали
| Частина | Що означає |
|---|---|
plugins | З чого складається збірка: Forge і Java для її запуску. |
manifest | Як запустити гру. '@forge.…' це частини, які дає Forge. |
run | Те, що знає лише комп'ютер гравця: де і хто. |
token: '0' грає офлайн, без облікового запису Microsoft.
Додавання модів
Покладіть jar у теку mods/ поруч із конфігурацією та додайте один плагін:
import { defineConfig, files, userDataDir } from '@opys/dev';
// ...
plugins: [
forge({ version: '1.20.1' }),
java({ version: '17' }),
files({ from: 'mods', to: (file) => '${game_directory}/mods/' + file.rel }),
],Моди з Modrinth або CurseForge можна назвати замість того, щоб завантажувати їх вручну. Див. Плагіни.
Поширення
opys buildЦе записує game.opys. Будь-хто з opys може запустити його, без вашого проєкту:
opys launch game.opys --var root=/path/to/install --var username=Player \
--var uuid=00000000-0000-0000-0000-000000000001 --var token=0--var робить те, що робив run. run це код, і він лишається у вашому проєкті. Бандл це дані.
Далі
- Конфігурація: кожна можливість, з тим, коли і чому її використовувати.
- Бандл: що таке
game.opysі як його поширювати. - CLI та інтеграція з лаунчером.