- リポジトリを Fork する (リポジトリ画面右上の
Forkボタンを押す)SpaceServerUniverseのメンバーは Fork する必要はありません
- リポジトリをローカルにクローンする
git clone https://github.com/<あなたのGitHub ID>/UniverseCoreV2.git
- リポジトリをクローンしたディレクトリに移動してコンパイルする
cd UniverseCoreV2 ./gradlew shadowJar build/libsディレクトリにUniverseCoreV2-<バージョン>-all.jarが生成されます
Note
./gradlew build でコンパイルされる成果物は, 依存ライブラリを含まないため実行時にエラーが発生します.
Docker を利用してデバッグ用の Minecraft サーバーを起動できます.
- Docker をインストールする (インストール方法)
dockerディレクトリに移動するdocker compose up -dを実行する
docker ディレクトリ配下に Paper, DB, phpbyadmin のディレクトリが生成され, それぞれのコンテナが起動します.
UniverseCoreV2 をデバッグする際は次の手順を踏みます.
./gradlew shadowJarを実行してビルドするdocker/paper/pluginsディレクトリにビルドした jar ファイルをコピーする (/build/libs/にあります)docker compose restartを実行するlocalhost:25565で Minecraft サーバーに接続する
Docker 上のデバッグ鯖が起動した状態で
docker compose exec paper rcon-cliを実行するop <自分のID>を実行する
SpaceServer Universe では権限周りを LuckPerms で管理しています.
LuckPerms には API が公開されており, それを利用することでプラグイン内で権限周りを制御することができます.
UniverseCoreV2 には LuckPerms の API を利用するためのユーティリティクラス LuckPermsWrapper が用意されています.
運営・開発者かどうかを確認するには LuckPermsWrapper の isUserInAdminOrDevGroup() メソッドを使用します.
/**
* プレイヤーが管理者グループまたは開発者グループに所属しているかどうか確認します
* @param player プレイヤー
* @return いずれかに所属している場合はtrue、所属していない場合はfalse
*/
public static boolean isUserInAdminOrDevGroup(Player player) {
return player.hasPermission("group.admin") || player.hasPermission("group.developer");
}特定のグループに所属しているかどうかを確認するには LuckPermsWrapper の isUserInGroup() メソッドを使用します.
/**
* プレイヤーが指定したグループに所属しているかどうか確認します
* @param player プレイヤー
* @param group グループ名
* @return 所属している場合はtrue、所属していない場合はfalse
*/
public static boolean isUserInGroup(Player player, String group) {
return player.hasPermission("group." + group);
}権限を持っているかどうかを確認するには Player クラスの hasPermission() を使用します.