CannonRTP 設定
CannonRTP は、plugins/CannonRTP/ 内のいくつかのファイルにグローバル設定を分割しており、加えて plugins/CannonRTP/cannons/ 内にキャノンごとの設定ファイルがあります。
ファイル構成
| ファイル | 用途 |
|---|---|
plugins/CannonRTP/config.yml | トップレベルのランタイムフラグ(セットアップ状態、言語、パーティクル間隔、キャノンモデル優先度、Spigot リソース ID) |
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-- 空のリファレンステンプレート。デフォルトで 無効化 されています。キャノンファイルを手書きする際の 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 | アイドル時のキャノンパーティクルをレンダリングする頻度(最小 5) |
runtime.cannonModelPriority | [cannonrtp_premium, cannonrtp] | FreeMinecraftModels モデル名の優先順位リスト。上から順にチェックされます。サーバー上で最初に見つかったモデルが、独自の customModel を設定していないすべてのキャノンで使用されます。どれも見つからない場合は、軌道パーティクルのフォールバックが使用されます。 |
runtime.spigotResourceId | "" | バージョンチェッカーが使用する Spigot リソース ID。無効にするには空白のままにします。 |
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 | 作成時の現在のワールド | クロスワールドターゲット指定がサポートされています -- これを設定すると、キャノンとは異なるワールドにプレイヤーを着地させることができます。ランタイムでロードされている必要があり、そうでない場合はキャノンは Invalid と表示されます。 |
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 | オレンジ | ゴールド |
| Searching (Charging / Maintaining) | 暖色オレンジ | ゴールド |
| Exhausted | 赤 | 暖色赤 |
| Invalid configuration | 濃い赤 | 赤 |
アイドルパーティクルは、プレイヤーがキャノンから 36 ブロック以内にいる場合にのみレンダリングされます。
浮遊ステータスラベル
すべてのキャノンは、その基部の上に看板状の TextDisplay をスポーンさせ、表示名と現在のステータス(Ready、Charging、Maintaining、Exhausted、Disabled、または Invalid)を表示します。このラベルは非永続(チャンクデータには保存されません)で、チャンクのリロード時に自動的に再作成されます。
ランタイム検証の動作
CannonRTP は、以下のチェックのいずれかが失敗した場合に候補着地地点を拒否します:
- ターゲットワールドがアンロード状態
- 検索中心が無効
- ランダムサンプルがワールドボーダー外に落ちる
- 候補のチャンクのロードに失敗
- 安全な固体の非液体表面が見つからない
- 足元または頭部空間がブロックされている
- 地形または身体のブロックが設定された危険マテリアルリストに一致する
- 保護統合が着地をブロックする
CannonRTPLocationValidationEventリスナーが候補を拒否する
キャノンが予備を満たさないまま searchTimeoutAttempts (デフォルト 100) を使い切ると、Exhausted になり、プレイヤーを発射する代わりに設定された失敗メッセージを返し始めます。失敗メッセージには、最も一般的な拒否理由の要約が含まれます。キャノンは、キュースロットが空くたびに(例: 発射後)タイムアウトカウンタをリセットします。
操作ガード
CannonRTP は、すでにアクティブな発射シーケンス中のプレイヤーがキャノンを起動するのを防ぎます。現在の発射が終了する(着地または切断)と、プレイヤーは再びキャノンを使用できます。追加のクールダウンタイマーはありません。