メインコンテンツまでスキップ

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 コンテンツパッケージの生成済みメタデータ(バージョン、ダウンロードリンク、所属ファイル特定用のプレフィックス)。通常、手動で編集することはありません。
plugins/CannonRTP/imports/手動コンテンツインポート用のドロップフォルダ。コンテンツパッケージを参照してください。
plugins/CannonRTP/nightbreak-changelogs.yml共有の /wcchangelog 受信箱の既読状態。チェンジログ通知を参照してください。

プラグインには、3 つのサンプルキャノン設定が同梱されています:

  • example_cannonrtp.yml -- 空のリファレンステンプレート(表示名 Example World Cannon)。デフォルトで 無効化 されています。キャノンファイルを手書きする際の YAML リファレンスとして使用してください。
  • cannonrtp_free_cannon.yml -- 有効、配置なし。無料の cannonrtp FMM モデルを参照します。
  • cannonrtp_premium_cannon.yml -- 有効、配置なし。プレミアム cannonrtp_premium FMM モデルを参照します。

これらはいずれもデフォルトでは cannonLocations が空のため、管理者が /wc create または /wc place を実行するまでワールドには何もスポーンしません。いずれも targetWorld を設定していないため、各配置はそれが置かれているワールドにプレイヤーを着地させます。

CannonRTP は、キャノン設定を読み込むたびに、これら 3 つのファイルのうち cannons/ にないものを再作成します。/wc delete で削除した場合や、コンテンツパッケージの無効化で移動された場合も、リロード後には配置のない新しいデフォルトのコピーが残ります。

config.yml​

キーデフォルト動作
setupDonefalseNightbreak 初回セットアップが完了したかどうかを追跡
languageenglishロードする翻訳ファイル。リリース 1 は英語のみ同梱。このキーは将来の翻訳パック用に存在
runtime.particleIntervalTicks15アイドル時のキャノンパーティクルをレンダリングする正確な間隔(サーバーティック単位、最小 1。毎ティックレンダリングするには 1 を指定)
runtime.launchCooldownSeconds30受理された発射どうしの間にプレイヤーが待たなければならない秒数(最小 0。無効にするには 0 を指定)。キャンセルされた CannonRTPLaunchEvent はクールダウンを開始しません。
runtime.cannonModelPriority[cannonrtp_premium, cannonrtp]FreeMinecraftModels モデル名の優先順位リスト。上から順にチェックされます。サーバー上で最初に見つかったモデルが、独自の customModel を設定していないすべてのキャノンで使用されます。どれも見つからない場合は、軌道パーティクルのフォールバックが使用されます。
runtime.spigotResourceId""バージョンチェッカーが使用する Spigot リソース ID。無効にするには空白のままにします。
nightbreak.autoDownloadPluginUpdatesfalseシェード(shade)された MagmaCore ライブラリによって追加されます。true の場合、CannonRTP は起動から数分後に、利用可能なプラグインおよびコンテンツの更新ファイルを自動的にダウンロードします。コンテンツの更新は次回のサーバー再起動後に使用され、プラグインの更新は nightbreak.applyPluginUpdatesWithoutRestart に従います。プラグインの自動ダウンロードには、有効な Nightbreak アカウントトークンとアクティブなサポーターメンバーシップが必要です。代わりにゲーム内の更新ボタンを使用する場合は false のままにしてください。
nightbreak.applyPluginUpdatesWithoutRestartneverシェード(shade)された MagmaCore ライブラリによって追加されます。ダウンロードされたプラグイン更新を、新しい jar から CannonRTP をリロードして適用するタイミングを決めます。never は次回の再起動まで待ちます。when-empty はオンラインのプレイヤーがいなければ即座に適用し、いる場合は 30 秒ごとに確認してサーバーが空になった時点で適用します。immediately はダウンロードが完了した時点ですぐに適用します。それ以外の値は never として扱われます。リロードでは、操作ガードで説明するとおり進行中の発射がキャンセルされます。/wc applypluginupdate を使うと、この設定にかかわらず、ダウンロード済みの更新を手動で適用できます。

landing.yml​

キーデフォルト動作
preloadedLocationsPerCannon10プラグインがキャノンごとにキューに保持しようとする安全な目的地の総数(最小 1)
chargedLocationsPerCannon1ステータスラベルが Ready に切り替わるためにキャノンが保持しなければならない地点数(最小 1、preloadedLocationsPerCannon でキャップ)。キューに少なくとも 1 つの地点があればキャノンはプレイヤーを発射します -- このしきい値は視覚ラベルにのみ影響します。
searchTimeoutAttempts100キャノンが Exhausted とマークされるまでの検索失敗回数(最小 10)。検索試行は全体でティックあたり 1 回(秒間 20 回)にレート制限され、すべてのアクティブキャノン間で公平に共有されます。
slowFallingSeconds60空中投下後の低速落下の最大時間(最小 1)。プレイヤーが着地すると効果は早期に解除されます。
failOpenOnProtectionErrorsfalse保護プラグイン API がエラーになった場合、デフォルトで着地をブロックします。保護プラグインを安全にクエリできない場合でも着地を続行させるには true に設定します。false の場合、読み込みに失敗した有効な保護統合があると、すべてのキャノンが検索を停止します(保護統合を参照)。
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.soundBLOCK_BEACON_ACTIVATESearching フェーズ開始時に再生されるサウンド
levitationStart.volume1.0
levitationStart.pitch1.15
blastOff.soundENTITY_GENERIC_EXPLODEFiring フェーズ開始時に再生されるサウンド
blastOff.volume1.0
blastOff.pitch0.9

サウンド値は Bukkit Sound 列挙体の名前(例: BLOCK_BEACON_ACTIVATE)または名前空間付きキー(例: minecraft:block.beacon.activate)が使用できます。列挙体形式の名前はすべてのアンダースコアをドットに置き換えて変換されるため、minecraft:block.note_block.pling のようにキーにアンダースコアを含むサウンドは、名前空間付きキーで記述する必要があります。無効なサウンド名は警告としてログに記録され、その段階のサウンドは静かにスキップされます。何も再生しない場合はサウンドを空白のままにしてください。0 未満の音量とピッチは 0 に引き上げられます。

messages.yml​

すべてのメッセージは MagmaCore のグラデーション、MiniMessage タグ、レガシー & カラーコードをサポートしています。$prefix プレースホルダーは設定されたプレフィックスに置き換えられます。

メッセージキー、プレースホルダー、発射シーケンスで使用されるタイトルプールの完全な一覧については、メッセージとタイトル ページを参照してください。

キャノン別設定フィールド​

各キャノンファイル (plugins/CannonRTP/cannons/<id>.yml) には以下のフィールドが格納されます:

フィールドデフォルト注記
isEnabledtrue (新規作成キャノンの場合)無効化されたキャノンは起動せず、ラベルやモデルもスポーンせず、/wc list と /wc status で Disabled と表示されます
displayNameCannonRTP (または作成時に渡された名前)メッセージ、ステータス出力、浮遊ラベルで使用されます
cannonLocations空のリストシリアル化された world,x,y,z,yaw,pitch 文字列のリスト。1 つのキャノン設定で多数の配置を生成できます。/wc create、/wc place、/wc remove で管理されます。
targetWorld作成時の現在のワールドクロスワールドターゲット指定がサポートされています -- これを設定すると、キャノンとは異なるワールドにプレイヤーを着地させることができます。空白または未設定の場合、各配置はそれ自身のワールドにプレイヤーを着地させます。ランタイムでロードされている必要があり、ロードされていない間はキャノンが事前読み込みを停止し、/wc status の詳細が Target world <name> is not loaded. と表示されます。
searchCenternull未設定の場合、プラグインはキャノン自身の位置(キャノンがターゲットワールドにある場合)、またはターゲットワールドのスポーンから放射状に検索します。別のワールドの地点が設定されている場合は、その X 座標と Z 座標がターゲットワールドで使用されます。
triggerRadius1.75キャノン周辺の、近くのプレイヤーを検出するために使用される半径(最小 0.5 ブロック)
minSearchRadius500検索中心からの最小着地検索距離(最小 0)
maxSearchRadius5000最大着地検索距離(常に minSearchRadius + 1 以上にクランプ)
launchWarmupTicks42Searching フェーズの長さ(ティック単位、最小 1)
verticalBoostTicks45Firing フェーズの長さ(ティック単位、最小 0)。0 にすると上昇ブーストは省略されますが、発射音、バースト、目的地のタイトルはテレポート前に引き続き再生されます。
verticalBoostVelocity1.35Firing フェーズの各ティックで適用される上方向の速度(最小 0)
enableParticlestrueアイドル時の軌道パーティクルアニメーションを制御します。カスタムモデルが有効でなく、プレイヤーが 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 が有効化または無効化されると、キャノンモデルキャッシュは無効化されます。現在の FMM はコンテンツの再読み込み完了時にも CannonRTP に通知し、古いモデル参照を破棄して更新後のレジストリからモデルを再作成します。CannonRTP は削除されたモデルインスタンスも直接検出するため、この完了イベントがまだ存在しない FMM 2.4.0 にも対応します。再作成待ちのモデルは、FMM が有効な間、利用可能なモデルが見つかるまで 20 ティックごとに再試行されます。

アイドルパーティクルのフォールバック​

モデルが有効でない場合、キャノンはキャノン中心の周りに 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)を表示します。無効化されたキャノンはラベルをスポーンしません。このラベルは非永続(チャンクデータには保存されません)で、チャンクのリロード時に自動的に再作成されます。位置はキャノンの上 1.2 ブロック、FreeMinecraftModels のモデルが有効な場合は 2.0 ブロックです。

ランタイム検証の動作​

CannonRTP は、以下のチェックのいずれかが失敗した場合に候補着地地点を拒否します:

  • ターゲットワールドがアンロード状態
  • 検索中心を解決できない(これはターゲットワールドがアンロードされている場合にのみ起こります)
  • ランダムサンプルがワールドボーダー外に落ちる
  • 候補のチャンクのロードに失敗
  • 安全な固体の非液体表面が見つからない
  • 着地地点の上にある 52 ブロックのエアドロップ列のいずれかのブロックがふさがれている
  • 表面または列内のいずれかのブロックが設定された危険マテリアルリストに一致する
  • 保護統合が着地をブロックする
  • CannonRTPLocationValidationEvent リスナーが候補を拒否する

searchTimeoutAttempts回(既定100回)の検索失敗で、事前読み込みがExhaustedになる場合があります。キューに残る目的地は使用できます。起動時にキューが空の場合だけ、主な拒否理由を含む失敗メッセージが出ます。発射後にキューの枠が空くと試行回数がリセットされます。

使用前に、対象ワールドの設定済み検索範囲を生成または探索してください。CannonRTPは既存チャンクを読み込み、新しい地形は生成しません。未探索の検索範囲では目的地が得られない場合があります。

操作ガード​

CannonRTP は、すでに発射シーケンス中のプレイヤーがキャノンを再度起動することを防ぎます。このトリガーは、発射が終了し、かつ プレイヤーが実際にキャノンのトリガー半径から出るまでラッチされ続けるため、キャノンの座席へ復帰しても即座に次の発射が始まることはありません。発射が受理された後は、マネージャー全体のプレイヤー単位のクールダウンが runtime.launchCooldownSeconds(デフォルト 30 秒)の間すべてのキャノンをブロックします。このクールダウンはサーバーが動作し続けている限り切断をまたいで維持され、単調増加クロックを使用し、CannonRTP がキャノンを再構築するたびにクリアされます。再構築が行われるのは、/wc reload、再起動不要のプラグイン更新、プラグイン停止、またはキャノンを編集するコマンド(create、place、remove、delete、target、center)の実行時です。再構築では進行中の発射もキャンセルされ、そのプレイヤーはキャノンの座席に戻され、キュー内のすべての目的地が破棄されます。クールダウン中にキャノンへ入ると、設定可能な launchCooldown メッセージが送信されます。このゲートを無効にするには設定値を 0 にしてください。