CannonRTP 設定
CannonRTP は、plugins/CannonRTP/ 内のいくつかのファイルにグローバル設定を分割しており、加えて plugins/CannonRTP/cannons/ 内にキャノンごとの設定ファイルがあります。
ファイル構成
| ファイル | 用途 |
|---|---|
plugins/CannonRTP/config.yml | トップレベルのランタイムフラグ(セットアップ状態、言語、パーティクル間隔、キャノンモデル優先度、Spigot リソース ID、Nightbreak 自動更新トグル) |
plugins/CannonRTP/landing.yml | 着地検索の調整(キューサイズ、タイムアウト試行回数、低速落下時間、危険マテリアルリスト、フェイルオープン動作) |
plugins/CannonRTP/sounds.yml | 発射シーケンス中に再生されるサウンド |
plugins/CannonRTP/messages.yml | すべてのプレイヤー向けメッセージ、プレフィックス、タイトルプール |
plugins/CannonRTP/protection.yml | プラグインごとの保護統合のトグル |
plugins/CannonRTP/cannons/<id>.yml | キャノンごとに 1 つのファイル(各ファイルが複数の配置を制御可能) |
plugins/CannonRTP/cannons_disabled/ | コンテンツパッケージに同梱されているが、現在無効化されているキャノン設定の保管フォルダ。/wc setup メニューでコンテンツパッケージを有効化/無効化すると、ファイルが cannons/ と cannons_disabled/ の間で移動します。 |
plugins/CannonRTP/content_packages/<package>.yml | 各 Nightbreak コンテンツパッケージの生成済みメタデータ(バージョン、ダウンロードリンク、所属ファイル特定用のプレフィックス)。通常、手動で編集することはありません。 |
プラグインには、3 つのサンプルキャノン設定が同梱されています:
example_cannonrtp.yml-- 空のリファレンステンプレート(表示名Example World Cannon)。デフォルトで 無効化 されています。キャノンファイルを手書きする際の YAML リファレンスとして使用してください。cannonrtp_free_cannon.yml-- 有効、配置なし。無料のcannonrtpFMM モデルを参照します。cannonrtp_premium_cannon.yml-- 有効、配置なし。プレミアムcannonrtp_premiumFMM モデルを参照します。
これらはいずれもデフォルトでは cannonLocations が空のため、管理者が /wc create または /wc place を実行するまでワールドには何もスポーンしません。
config.yml
| キー | デフォルト | 動作 |
|---|---|---|
setupDone | false | Nightbreak 初回セットアップが完了したかどうかを追跡 |
language | english | ロードする翻訳ファイル。リリース 1 は英語のみ同梱。このキーは将来の翻訳パック用に存在 |
runtime.particleIntervalTicks | 15 | アイドル時のキャノンパーティクルをレンダリングする正確な間隔(サーバーティック単位、最小 1。毎ティックレンダリングするには 1 を指定) |
runtime.launchCooldownSeconds | 30 | 受理された発射どうしの間にプレイヤーが待たなければならない秒数(最小 0。無効にするには 0 を指定)。キャンセルされた CannonRTPLaunchEvent はクールダウンを開始しません。 |
runtime.cannonModelPriority | [cannonrtp_premium, cannonrtp] | FreeMinecraftModels モデル名の優先順位リスト。上から順にチェックされます。サーバー上で最初に見つかったモデルが、独自の customModel を設定していないすべてのキャノンで使用されます。どれも見つからない場合は、軌道パーティクルのフォールバックが使用されます。 |
runtime.spigotResourceId | "" | バージョンチェッカーが使用する Spigot リソース ID。無効にするには空白のままにします。 |
nightbreak.autoDownloadPluginUpdates | false | シェード(shade)された MagmaCore ライブラリによって追加されます。true の場合、CannonRTP は起動時に利用可能なプラグインおよびコンテンツの更新ファイルを自動的にダウンロードします(次回のサーバー再起動後に適用)。プラグインの自動ダウンロードには、有効な Nightbreak アカウントトークンとアクティブなサポーターメンバーシップが必要です。代わりにゲーム内の更新ボタンを使用する場合は false のままにしてください。 |
landing.yml
| キー | デフォルト | 動作 |
|---|---|---|
preloadedLocationsPerCannon | 10 | プラグインがキャノンごとにキューに保持しようとする安全な目的地の総数(最小 1) |
chargedLocationsPerCannon | 1 | ステータスラベルが Ready に切り替わるためにキャノンが保持しなければならない地点数(最小 1、preloadedLocationsPerCannon でキャップ)。キューに少なくとも 1 つの地点があればキャノンはプレイヤーを発射します -- このしきい値は視覚ラベルにのみ影響します。 |
searchTimeoutAttempts | 100 | キャノンが Exhausted とマークされるまでの検索失敗回数(最小 10)。検索試行は全体でティックあたり 1 回(秒間 20 回)にレート制限され、すべてのアクティブキャノン間で公平に共有されます。 |
slowFallingSeconds | 60 | 空中投下後の低速落下の最大時間(最小 1)。プレイヤーが着地すると効果は早期に解除されます。 |
failOpenOnProtectionErrors | false | 保護プラグイン API がエラーになった場合、デフォルトで着地をブロックします。保護プラグインを安全にクエリできない場合でも着地を続行させるには true に設定します。 |
unsafeGroundMaterials | [LAVA, MAGMA_BLOCK, CAMPFIRE, SOUL_CAMPFIRE, CACTUS, POWDER_SNOW] | 着地面として失格となるマテリアル |
unsafeBodyMaterials | [LAVA, WATER, FIRE, SOUL_FIRE, SWEET_BERRY_BUSH, POWDER_SNOW, COBWEB] | 足元または頭部空間として失格となるマテリアル |
マテリアルは Bukkit Material 列挙体の名前です。無効なエントリは警告としてログに記録され、スキップされます。
sounds.yml
| キー | デフォルト | 動作 |
|---|---|---|
levitationStart.sound | BLOCK_BEACON_ACTIVATE | Searching フェーズ開始時に再生されるサウンド |
levitationStart.volume | 1.0 | |
levitationStart.pitch | 1.15 | |
blastOff.sound | ENTITY_GENERIC_EXPLODE | Firing フェーズ開始時に再生されるサウンド |
blastOff.volume | 1.0 | |
blastOff.pitch | 0.9 |
サウンド値は Bukkit Sound 列挙体の名前(例: BLOCK_BEACON_ACTIVATE)または名前空間付きキー(例: minecraft:block.beacon.activate)が使用できます。無効なサウンド名は警告としてログに記録され、その段階のサウンドは静かにスキップされます。
messages.yml
すべてのメッセージは MagmaCore のグラデーション、MiniMessage タグ、レガシー & カラーコードをサポートしています。$prefix プレースホルダーは設定されたプレフィックスに置き換えられます。
メッセージキー、プレースホルダー、発射シーケンスで使用されるタイトルプールの完全な一覧については、メッセージとタイトル ページを参照してください。
キャノン別設定フィールド
各キャノンファイル (plugins/CannonRTP/cannons/<id>.yml) には以下のフィールドが格納されます:
| フィールド | デフォルト | 注記 |
|---|---|---|
isEnabled | true (新規作成キャノンの場合) | 無効化されたキャノンは起動せず、Disabled と表示されます |
displayName | CannonRTP (または作成時に渡された名前) | メッセージ、ステータス出力、浮遊ラベルで使用されます |
cannonLocations | 空のリスト | シリアル化された world,x,y,z,pitch,yaw 文字列のリスト。1 つのキャノン設定で多数の配置を生成できます。/wc create、/wc place、/wc remove で管理されます。 |
targetWorld | 作成時の現在のワールド | クロスワールドターゲット指定がサポートされています -- これを設定すると、キャノンとは異なるワールドにプレイヤーを着地させることができます。ランタイムでロードされている必要があり、ロードされていない間はキャノンが事前読み込みを停止し、/wc status の詳細が Target world <name> is not loaded. と表示されます。 |
searchCenter | null | 未設定の場合、プラグインはキャノン自身の位置(キャノンがターゲットワールドにある場合)、またはターゲットワールドのスポーンから放射状に検索します |
triggerRadius | 1.75 | キャノン周辺の、近くのプレイヤーを検出するために使用される半径(最小 0.5 ブロック) |
minSearchRadius | 500 | 検索中心からの最小着地検索距離(最小 0) |
maxSearchRadius | 5000 | 最大着地検索距離(常に minSearchRadius + 1 以上にクランプ) |
launchWarmupTicks | 42 | Searching フェーズの長さ(ティック単位、最小 1) |
verticalBoostTicks | 45 | Firing フェーズの長さ(ティック単位、最小 0) |
verticalBoostVelocity | 1.35 | Firing フェーズの各ティックで適用される上方向の速度(最小 0) |
enableParticles | true | アイドル時の軌道パーティクルアニメーションを制御します。カスタムモデルが有効でなく、プレイヤーが 36 ブロック以内にいる場合にのみレンダリングされます。 |
requiredPermission | "" | この特定のキャノンに対する追加の権限ゲート(任意)。cannonrtp.use を持っていてもこのノードを持たないプレイヤーは、設定された権限なしメッセージを表示します。 |
customModel | "" | この特定のキャノン用の FreeMinecraftModels モデル名(任意)。空白の場合、プラグインは runtime.cannonModelPriority にフォールバックします。 |
キャノン作成時のデフォルト
/wc create <id> を実行すると:
- キャノン ID は小文字に変換され、
a-z、0-9、_、-以外の文字は_に置き換えられます /wc create <id> <display_name>が使用されない限り、displayNameのデフォルトはCannonRTPです(<display_name>内のアンダースコアはスペースに変換されます)- プレイヤーの現在地が
cannonLocationsに追加されます targetWorldはプレイヤーの現在のワールドに設定されますsearchCenterは設定されません(キャノンがターゲットワールドにある場合はキャノン自身の位置、そうでない場合はターゲットワールドのスポーンにフォールバックします)
作成後、プラグインは設定ファイルの絶対パスを返すので、displayName、customModel、requiredPermission、検索半径、発射調整を手動で編集できます。
FreeMinecraftModels 統合
キャノンが有効な FreeMinecraftModels モデルに解決された場合(独自の customModel フィールド経由またはグローバルな runtime.cannonModelPriority リスト経由のいずれか)、かつ FreeMinecraftModels がインストールされている場合:
- 静的なモデルエンティティがキャノンの位置にスポーンします
- 浮遊テキストラベルがキャノンの上 2.0 ブロックに上げられます(モデルなしの場合は 1.2)。これによりモデルにラベルがめり込みません
- モデルが有効な間、アイドル時の軌道パーティクルアニメーションは抑制されます
- 発射中、キャノンは Searching フェーズの開始時に
fireアニメーション(存在する場合)を再生します。Searching フェーズ中はアニメーションがきれいに見えるよう、プレイヤーは透明化で隠されます
サーバー実行中に FreeMinecraftModels が有効化または無効化されると、キャノンモデルキャッシュは無効化され、次のティックでビジュアルが更新されます。
アイドルパーティクルのフォールバック
モデルが有効でない場合、キャノンはキャノン中心の周りに DUST_COLOR_TRANSITION + FIREWORK パーティクルのペアを軌道状にレンダリングします。色はキャノンの実効状態に基づいて変化します:
| 状態 | 主色 | アクセント |
|---|---|---|
| Ready | オレンジ (255, 179, 71) | 淡いゴールド (255, 241, 168) |
| Searching (Charging / Maintaining) | 暖色オレンジ (255, 140, 66) | ゴールド (255, 209, 102) |
| Exhausted | 赤 (255, 107, 107) | 暖色オレンジ (255, 159, 104) |
アイドルパーティクルは、プレイヤーがキャノンから 36 ブロック以内にいて、enableParticles が true であり、カスタムモデルが有効でない場合にのみレンダリングされます。
浮遊ステータスラベル
すべてのキャノンは、その基部の上に看板状の TextDisplay をスポーンさせ、表示名と現在のステータス(Ready、Charging、Maintaining、Exhausted、または Disabled)を表示します。このラベルは非永続(チャンクデータには保存されません)で、チャンクのリロード時に自動的に再作成されます。位置はキャノンの上 1.2 ブロック、FreeMinecraftModels のモデルが有効な場合は 2.0 ブロックです。
ランタイム検証の動作
CannonRTP は、以下のチェックのいずれかが失敗した場合に候補着地地点を拒否します:
- ターゲットワールドがアンロード状態
- 検索中心を解決できない(これはターゲットワールドがアンロードされている場合にのみ起こります)
- ランダムサンプルがワールドボーダー外に落ちる
- 候補のチャンクのロードに失敗
- 安全な固体の非液体表面が見つからない
- 着地地点の上にある 52 ブロックのエアドロップ列のいずれかのブロックがふさがれている
- 表面または列内のいずれかのブロックが設定された危険マテリアルリストに一致する
- 保護統合が着地をブロックする
CannonRTPLocationValidationEventリスナーが候補を拒否する
searchTimeoutAttempts回(既定100回)の検索失敗で、事前読み込みがExhaustedになる場合があります。キューに残る目的地は使用できます。起動時にキューが空の場合だけ、主な拒否理由を含む失敗メッセージが出ます。発射後にキューの枠が空くと試行回数がリセットされます。
使用前に、対象ワールドの設定済み検索範囲を生成または探索してください。CannonRTPは既存チャンクを読み込み、新しい地形は生成しません。未探索の検索範囲では目的地が得られない場合があります。
操作ガード
CannonRTP は、すでに発射シーケンス中のプレイヤーがキャノンを再度起動することを防ぎます。このトリガーは、発射が終了し、かつ プレイヤーが実際にキャノンのトリガー半径から出るまでラッチされ続けるため、キャノンの座席へ復帰しても即座に次の発射が始まることはありません。発射が受理された後は、マネージャー全体のプレイヤー単位のクールダウンが runtime.launchCooldownSeconds(デフォルト 30 秒)の間すべてのキャノンをブロックします。このクールダウンはサーバーが動作し続けている限り切断をまたいで維持され、単調増加クロックを使用し、/wc reload またはプラグイン停止時にクリアされます。クールダウン中にキャノンへ入ると、設定可能な launchCooldown メッセージが送信されます。このゲートを無効にするには設定値を 0 にしてください。