卵やスポーンエッグによる意図しないエンティティのスポーンを抑制するPaperプラグインです。
- Paper API
1.18.2-R0.1-SNAPSHOT - WorldGuard
- WorldEdit
- Java 17
- Releasesから
EatEggのJARファイルを取得します。 - WorldGuardとWorldEditをPaperサーバーへ導入します。
- JARファイルをPaperサーバーの
plugins/ディレクトリへ配置します。 - サーバーを起動または再起動します。
有効化したワールドでは、通常の卵を投げてもニワトリがスポーンせず、スポーンエッグを使用できません。 WorldGuardのリージョン所有者は制限を受けません。
/eategg toggleを実行すると、自分だけ制限を一時的にバイパスできます。
この状態はプレイヤーの退出時にリセットされます。
/eategg reload— 設定を再読込します。eategg.reload(デフォルト: op)/eategg toggle— 制限の有効・無効を切り替えます。eategg.toggle(デフォルト: op)
# 有効化するワールドのリスト。大文字小文字は区別されません。
enabled-worlds:
- world
- world_nethermiseをインストールしたうえで、プロジェクトのルートディレクトリから実行します。
# 初回のみ
mise install
# ビルド
mise run build
# テストのみ
mise run test
# YAML lint
mise run lint-yaml
# Markdown lint
mise run lint-markdown
# GitHub Actions security scan
mise run lint-gha
# Renovate設定の検証
mise run validate-renovateWindowsでも同じmiseタスクを使用できます。
ビルドされたJARはbuild/libs/に出力されます。
JDK 17を別途用意し、JAVA_HOMEまたはPATHを設定してください。YAML lintにはPythonの仮想環境を使用します。
# 初回のみ
python3 -m venv .venv
. .venv/bin/activate
python -m pip install yamllint==1.37.1
# ビルド
./gradlew build
# テストのみ実行
./gradlew test
# YAML lint
python -m yamllint --format github --config-file \
.github/.yamllint.yaml .github src/main/resourcesWindowsでは、py -m venv .venvで仮想環境を作成します。
.venv\Scripts\activateで有効化し、Gradleには
gradlew.bat buildまたはgradlew.bat testを使用します。
リリースは、署名付きvX.Y.Zタグのpushを起点にGitHub Actionsが実行します。
リリース担当者は、署名鍵が設定された環境で次を実行します。
mise add-tagとmise push-tagは、Git backendが有効なcheckoutで実行してください。
# 署名付きタグを作成
mise add-tag 1.0.0
# タグをpushしてリリース処理を開始
mise push-tag 1.0.0タグのpush後、Java 17でのビルド・テスト、JARのSHA-256生成、GitHub artifact attestation、Draft Releaseの作成・公開を行います。 公開されたReleaseはImmutableになり、JARとチェックサムは変更できません。
Releaseには次のファイルが添付されます。
EatEgg-v<version>.jarEatEgg-v<version>.jar.sha256
JARの検証には次を使用できます。
sha256sum -c EatEgg-v1.0.0.jar.sha256
gh attestation verify EatEgg-v1.0.0.jar -R GiganticMinecraft/EatEgg
gh release verify v1.0.0 -R GiganticMinecraft/EatEggPull Requestでは次のチェックが実行されます。
ビルド・lint・設定検証は、開発時と同じmiseタスクを使用します。
- Java 17でのGradleビルド・テスト
- Markdown lint
- YAML lint(GitHub Actionsと
plugin.yml) - GitHub Actionsのセキュリティ検査
- Renovate設定の検証