TheUnusualSkyBlockのアップデートデータパック用リポジトリ
main
テンプレートブランチ1-19-4
(例)
MCverごとのテンプレートブランチ
pack.mcmetaのpack_format
の数値を管理v13-0-1-alpha2
(例)
ブランチ名のバージョンへのアップデート用ファイルが実装されたブランチ
- アップデートの差分をメインリポジトリから取得する
git archive 1-19-4 `git diff --name-only HEAD HEAD~5` -o archive.zip
このようなコマンドを用いて、アップデートで追加・変更があるファイルを取得する。
削除には非対応
削除が含まれている場合は?
アップデート範囲の中にファイルの削除が入っていてエラーを出力する場合がある。
そのとき、削除が削除として記録されず、リネームとして記録されている可能性がある。
git diff --name-status
このコマンドでファイルの変更属性が確認できるが、ここで削除かリネームのどちらとして記録されているか確認する。
その後、git archive
コマンドの中のgit diff
コマンドに--diff-filter=r
のオプションを追加してリネームされたファイルを除外してアーカイブを作成する。
アーカイブを展開し、リネーム判定されたファイルを追加することで削除にも対応することができる。
- アップデート用タグを打つ
まずは、
data modify storage v13alpha: UpdatingVersion set value {Major:0,Minor:0}
このコマンドが記述されたfunctionファイルを用意する。そのとき、MajorとMinorをアップデートするバージョンに指定しておく。
このfunctionファイルをtags/function
のsettings:version_update/check
へ追記する。
replaceがtrueになっている必要がある。
- アップデート処理を追加する
これは任意ではあるが、アップデート時に一回だけ実行したい処理を追加することができる。
execute if data storage v13alpha: {Version:{Major:0}} if score $World Calc matches ..0 run function settings:version_update/update/...
上のものが例である。
このように条件によって処理を実行するfunctionファイルを用意する。
v13alpha: {Version:{Major,Minor}}
でアップデートの番号を指定できるほか、$World Calcにはアップデート前のマイナーバージョン値が記録されている。
このfunctionファイルをtags/function
のsettings:version_update/update
へ追記する。
replaceはfalseでよい。
条件の先のfunctionでは自由に処理を記述できる。