Skip to content

@opys/curseforge ​

npm

CurseForge для opys. curseforge() додає моди з CurseForge, кожен названий одним точним файлом.

sh
npm install -D @opys/dev @opys/curseforge @opys/forge @opys/java

Приклад ​

js
// opys.config.mjs
import { defineConfig } from '@opys/dev';
import { curseforge } from '@opys/curseforge';
import { forge } from '@opys/forge';
import { java } from '@opys/java';

export default defineConfig({
  output: 'game.opys',
  plugins: [
    forge({ version: '1.20.1' }),
    java({ version: '17' }),
    curseforge({
      token: process.env.CURSEFORGE_TOKEN,
      files: [6307712],
      to: (file) => '${game_directory}/mods/' + file.filename,
    }),
  ],
  manifest: {
    command: '@forge.command',
    args: ['@forge.jvmArgs', '@forge.mainClass', '@forge.gameArgs'],
    workdir: '${game_directory}',
  },
});

Параметри ​

OptionЩо робить
filesID файлів або адреси сторінок файлів.
toКуди йде кожен файл. Викликається з { filename, fileId, projectId, size }.
tokenКлюч API CurseForge. Обов’язковий.
apiBaseДзеркало API CurseForge.

Починайте шлях, який повертає to, зі змінної, такої як ${game_directory}. Він підставляється на комп’ютері гравця.

Читайте токен зі змінних середовища, щоб конфігурацію можна було комітити: CURSEFORGE_TOKEN=your-key opys build.

curseforgeModpack({ token, file: 1040985 }) бере цілий модпак замість цього: його завантажувач, його моди та його перевизначення. Його частини запуску це частини завантажувача, під іменем curseforgeModpack.

Що він додає ​

opys build перетворює плагін на ці частини маніфесту.

Файли · один на ID файла ​

Зафіксовано sha1, який публікує CurseForge. path це те, що повернув to.

jsonc
// у маніфесті
{
  "path": "${game_directory}/mods/<the file's name>.jar",
  "source": { "url": "https://edge.forgecdn.net/files/…/<the file's name>.jar" },
  "size": 1234567,
  "integrity": { "sha1": "…" }
}

Ні частин запуску, ні змінних.

Токен не додається. Він використовується під час збирання, а адреси завантаження публічні.

Кожен параметр ​

Кожен параметр, у кожному способі його використання.

js
// файли за ID або за адресою сторінки файла
curseforge({
  token: process.env.CURSEFORGE_TOKEN,
  files: [
    6307712,
    'https://www.curseforge.com/minecraft/mc-mods/jei/files/6307712',
  ],
  to: (file) => '${game_directory}/mods/' + file.filename,
});

// `to` вирішує для кожного файла: тут за проєктом, до якого він належить
curseforge({
  token: process.env.CURSEFORGE_TOKEN,
  files: [6307712, 5101366],
  to: (file) =>
    file.projectId === 238222
      ? '${game_directory}/mods/' + file.filename
      : '${game_directory}/resourcepacks/' + file.filename,
});

// дзеркало API CurseForge
curseforge({
  token: process.env.CURSEFORGE_TOKEN,
  files: [6307712],
  to: (file) => '${game_directory}/mods/' + file.filename,
  apiBase: 'https://mirror.example.com/curseforge/v1',
});

// цілий модпак: його завантажувач, його моди, його перевизначення.
// За ID файла або за адресою сторінки файла
curseforgeModpack({ token: process.env.CURSEFORGE_TOKEN, file: 1040985 });
curseforgeModpack({
  token: process.env.CURSEFORGE_TOKEN,
  file: 'https://www.curseforge.com/minecraft/modpacks/my-pack/files/1040985',
});

// модпак Forge, із завантажувачем, налаштованим по-вашому: тут через дзеркало
curseforgeModpack({
  token: process.env.CURSEFORGE_TOKEN,
  file: 1040985,
  loader: (spec) =>
    forge({
      version: spec.version,
      source: 'https://mirror.example.com/forge',
    }),
});

Документація ​

Частина opys. Також експортується з @opys/minecraft.