導入と最初の案内
1. リポジトリを追加
Mavenリポジトリから、使用するバージョンのJARを取得します。既存のMinecraft MODプロジェクトへ追加してください。
repositories {
maven {
url = uri("https://miyomiyo-mods.pages.dev/maven")
content { includeGroup("dev.miyomiyo.navi") }
}
}
クライアント用モジュールごとに、ローダーに合うJARを選びます。
| Minecraft / ローダー | Gradleの依存指定 |
|---|---|
| 1.21.1 / Fabric | dev.miyomiyo.navi:navi-fabric:1.0.0 |
| 1.21.1 / NeoForge | dev.miyomiyo.navi:navi-neoforge:1.0.0 |
| 26.2 / NeoForge | dev.miyomiyo.navi:navi-neoforge-mc26.2:1.0.0 |
Fabric Loomの場合
dependencies {
modImplementation "dev.miyomiyo.navi:navi-fabric:1.0.0"
}
NeoForge ModDevGradleの場合(1.21.1の例)
dependencies {
implementation "dev.miyomiyo.navi:navi-neoforge:1.0.0"
}
実際に配布したMODのJARです。Minecraftのツールチェーンとマッピングは、各プロジェクトのものを使用してください。shadeやLoomの include による埋め込みは不要です。Minecraft非依存のDTOだけを使う共通モジュールでは compileOnly "dev.miyomiyo.navi:navi-api:1.0.0" を利用できます。この小さなAPI JARはプレイ用MODではなく、NaviClient も含みません。Naviと並べてゲームに導入するものではありません。
2. クライアント依存を宣言
MOD IDは navi です。ローダーのメタデータで、必須または任意のクライアント依存を宣言します。任意連携ではNaviに参照を持つクラスをロードする前にローダーの導入一覧を確認し、連携部分を別の連携クラスに分けてください。メソッド呼び出しを条件分岐で囲むだけでは、Naviを参照するクラスの読み込みを防げません。専用サーバーでクライアント用コードを呼び出さないでください。
3. ワールド参加後に開始
Minecraftのクライアントスレッドから呼び出します。NaviClient.ready() はワールドへの接続を確認するもので、案内を開始できるかどうかは確認しません。
var request = NavigationRequest.builder(
new NavigationRequest.Location(
WorldPosition.block("minecraft:overworld", 100, 64, 200)))
.name("Home")
.build();
var result = NaviClient.navigation().start("example_mod", request);
if (result instanceof NavigationResult.Success<Navigation> success) {
Navigation navigation = success.value(); // ワールドごとの連携クラスで保持します。
} else if (result instanceof NavigationResult.Failure<Navigation> failure) {
// 自分のMODで適切に案内します。BUSYでも他の案内を奪いません。
}
importは dev.miyomiyo.navi.api.* と dev.miyomiyo.navi.client.NaviClient です。WorldPosition.block はX/Zをブロック中心に合わせます。Yは視点ではなく足元の高さです。
開始成功は依頼の受理を表します。経路計算はその後も続くため、observe で進行の通知を受け取ります。保存や非同期調査を加える前に、一式の使用例とライフサイクルを確認してください。
設定画面
クライアントスレッドで NaviClient.openSettings(parentScreen) を呼ぶと、Navi専用の設定画面が開きます。経路の好みや見た目、CPU・メモリの使用量はこの画面で調整します。依頼には目的地や旅程を指定します。設定画面のショートカットキーは既定で未割当です。