0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Minecraft】MOD入りサーバー向け自作ランチャー作成方法

Last updated at Posted at 2025-03-17

目的

MOD入りサーバーを運営する上で、「クライアントにMODを導入してもらう」という手順がネックになる。
上記の手順を含む、MOD入りサーバー向けのランチャーを自作する。

方法

HeliosLauncherというランチャーをforkする形で実装する。
https://github.com/dscalzi/HeliosLauncher

ビルド時のパラメータ、サーバーのリソースを配置するだけで独自のランチャーが作れる。
以下のような機能を搭載している。

  • ランチャーからサーバーへの接続時に、クライアントのMODの過不足をチェックし、適宜ダウンロードする
  • 接続先サーバーの切り替え
  • 起動時のパラメータ(メモリ等)設定
  • サーバーのステータスのチェック、サーバーに接続しているユーザーの数もチェック可能
  • クライアントサイドMODのon/offを任意で切り替える

0.準備

以下が必要となる。

  • リソースの配布場所(S3等)
  • ランチャー(インストーラ)の配布場所(サイト等)
  • 固定IPのMinecraftサーバー

1.リソースの作成

クライアントにインストールするMODの一覧をリソースとして用意する。
MODのjarファイルを直接アップロードするのでなく、MODのインストール先を列挙したjsonファイル(以下distribution.json)をS3等にアップロードする。
以下のような形で、サーバーのIPや必要なモジュール(forge等)、MODをURL付きで列挙する。

{
  "version": "1.0.0",
  "rss": "https://helios-files.geekcorner.eu.org/rss.xml",
  "discord": {
    "clientId": "1086936373057040395",
    "smallImageText": "Change me through Nebula",
    "smallImageKey": "big"
  },
  "servers": [
    {
      "id": "Demo-1.19.4",
      "name": "Demo (Minecraft 1.19.4)",
      "description": "Demo Running Minecraft 1.19.4 (Forge v45.0.9)",
      "icon": "https://helios-files.geekcorner.eu.org/servers/Demo-1.19.4/Demo-1.19.4.png",
      "version": "1.0.0",
      "address": "localhost:25565",
      "minecraftVersion": "1.19.4",
      "discord": {
        "shortId": "1.19.4 Demo",
        "largeImageKey": "https://raw.githubusercontent.com/dscalzi/HeliosLauncher/master/build/icon.png",
        "largeImageText": "forge-vanilla"
      },
      "mainServer": false,
      "autoconnect": false,
      "modules": [
        {
          "id": "net.minecraftforge:lowcodelanguage:1.19.4-45.0.9",
          "name": "Minecraft Forge (lowcodelanguage)",
          "type": "ForgeHosted",
          "classpath": true,
          "artifact": {
            "size": 7378,
            "MD5": "567726c42a1312962ffd96af646f227d",
            "url": "https://helios-files.geekcorner.eu.org/repo/lib/net/minecraftforge/lowcodelanguage/1.19.4-45.0.9/lowcodelanguage-1.19.4-45.0.9.jar"
          },
          "subModules": [
            {
              "id": "1.19.4-45.0.9",
              "name": "Minecraft Forge (version.json)",
              "type": "VersionManifest",
              "artifact": {
                "size": 15497,
                "MD5": "97924bf1d3bf6f2bc4acc5662a7fecc0",
                "url": "https://helios-files.geekcorner.eu.org/repo/versions/1.19.4-forge-45.0.9/1.19.4-forge-45.0.9.json"
              }
            },

手動で作成することもできるが、HeliosLauncherの作者がdistribution.jsonの作成ツールも作ってくれているので活用する。
Nebulaは、ローカルにあるMODファイルを参照してdistribution.jsonを作成してくれるツール。

以下をcloneし、npm i
https://github.com/dscalzi/Nebula

jdkを任意のフォルダにダウンロードし、以下の通りに.envファイルを編集する。
JAVA_EXECUTABLEに記述、ROOTにはMODのjarファイル等をおくための作業フォルダを指定する。下2つはそのままでもOK。

JAVA_EXECUTABLE=C:\Program Files\Eclipse Adoptium\jdk-17.0.12.7-hotspot\bin\java.exe
ROOT=D:\TestRoot2
BASE_URL=http://localhost:8080/
HELIOS_DATA_FOLDER=C:\Users\user\AppData\Roaming\Helios Launcher

Nebulaのルートで以下を実行。ROOTに作業環境が作成される。
※powershell や vscode だとバグでMODバージョンが認識されないためcmd推奨

npm start -- init root
npm start -- generate server [server name] [Minecraft Version eg 1.12.2] --forge [forge version eg 14.23.5.2859]

作成された、作業環境\servers\{server name}下によしなにMODファイル等を配置する。
※ファイル名に「+」が入っていると、リソース取得時のURLで「%2B」に変換されてしまうので、あらかじめほかの文字に変更すること推奨
Get-ChildItem -File | Rename-Item -NewName { $_.Name -replace "+", "-" }
(fabric は ROOT\repo\lib\net\fabricmc\sponge-mixin\0.15.4+mixin.0.8.7 が生成されるので手動でs)
配置が完了したら、以下を実行。distribution.json が作成される。

npm start -- generate distro

作業環境ごとリソースの配布先にアップロードし、準備は完了。

2.ランチャーの作成

同じく以下をcloneし、npm i
https://github.com/dscalzi/HeliosLauncher

/app/assets/js/distromanager.jsexports.REMOTE_DISTRO_URL =にリソースのdistribution.jsonのURLを指定。

アイコンや起動時の細かい設定等をお好みで編集。

HeliosLaunherのルートでnpm run distを実行し、ビルド。
インストーラを作成し、配布する。

参考

正直こちらの動画の方がわかりやすいです。
手順いくつか飛ばしているので、時間ある時に直します。

Helios Launcher Tutorial
https://www.youtube.com/watch?v=YgB9Itp3gzY

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?