Skip to content

Вступ ​

opys перетворює короткий файл конфігурації на встановлення Minecraft, яке встановлюється та запускається однаково на кожному комп'ютері.

Ви описуєте збірку один раз: завантажувач, Java, моди. opys знаходить кожен файл, потрібний грі, і фіксує кожен з них хешем.

Ідея в чотирьох рядках ​

  • Конфігурація перелічує плагіни: forge, java, modrinth.
  • opys build запускає їх і записує бандл: один файл, що описує все встановлення.
  • Лаунчер (або opys launch) встановлює бандл і запускає гру.
  • Шляхи та облікові записи підставляються на комп'ютері гравця, а не запечені всередину.

Спробуйте ​

Вам потрібен Node.js 20 або новіший. Java вам не потрібна: opys завантажить її.

sh
npm install -g @opys/cli
mkdir my-pack && cd my-pack
npm init -y
npm install -D @opys/dev @opys/minecraft

Створіть opys.config.mjs:

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',
      },
    },
  }),
});

Потім:

sh
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/ поруч із конфігурацією та додайте один плагін:

js
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 можна назвати замість того, щоб завантажувати їх вручну. Див. Плагіни.

Поширення ​

sh
opys build

Це записує game.opys. Будь-хто з opys може запустити його, без вашого проєкту:

sh
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 це код, і він лишається у вашому проєкті. Бандл це дані.

Далі ​