CannonRTP 設定
CannonRTPは1つのグローバル設定ファイルとキャノンごとの設定ファイルを使用します。
ファイルレイアウト
- グローバル設定:
plugins/CannonRTP/config.yml - キャノンごとの設定:
plugins/CannonRTP/custom/fun_rtps/<id>.yml
プラグインにはexample_world_cannonという名前のサンプルキャノンパッケージも同梱されています。デフォルトでは無効です。
グローバル設定構造
メイン設定は以下の下に組織化されています:
runtime.*landing.*messages.*protection.*
ランタイム設定
| キー | デフォルト | 動作 |
|---|---|---|
runtime.scanIntervalTicks | 2 | キャノンが近くのプレイヤーをチェックする頻度(最小2) |
runtime.particleIntervalTicks | 15 | アイドルキャノンパーティクルのレンダリング頻度(最小5) |
着地検索設定
| キー | デフォルト | 動作 |
|---|---|---|
landing.searchAttemptsPerTick | 2 | 事前読み込み中のキャノンごとのティックあたりの検索試行回数(最小1) |
landing.preloadedLocationsPerCannon | 10 | プラグインがキャノンごとにキューに保持する安全な目的地の総数(最小1) |
landing.chargedLocationsPerCannon | 5 | キャノンが充電済みおよび発射準備完了とみなされるために必要な地点数(最小1、preloadedLocationsPerCannonが上限) |
landing.searchTimeoutSeconds | 1000 | まだ検索中のキャノンが消耗済みとマークされるまでの時間(秒)(最小10) |
landing.slowFallingSeconds | 60 | 到着後の低速落下持続時間(秒);プレイヤーが着地すると効果は早期に除去(最小1) |
landing.failOpenOnProtectionErrors | false | 保護APIがエラーを起こした場合、デフォルトで着地をブロック |
着地サウンド
以下のサウンドキーが設定可能です:
landing.sounds.levitationStart.sound(デフォルト:BLOCK_BEACON_ACTIVATE)landing.sounds.levitationStart.volume(デフォルト:1.0)landing.sounds.levitationStart.pitch(デフォルト:1.15)landing.sounds.blastOff.sound(デフォルト:ENTITY_GENERIC_EXPLODE)landing.sounds.blastOff.volume(デフォルト:1.0)landing.sounds.blastOff.pitch(デフォルト:0.9)
サウンド値はBukkitのSoundレジストリ名または名前空間付きキーを使用します。無効なサウンド名は警告として記録され、そのサウンドは黙認でスキップされます。
危険なマテリアルリスト
CannonRTPは2つのマテリアルリストに基づいて着地候補地点を拒否します:
landing.unsafeGroundMaterials-- 絶対に立ってはいけないブロックlanding.unsafeBodyMaterials-- 足元や頭上の空間を占めてはいけないブロック
デフォルトの危険な地面マテリアル:
LAVAMAGMA_BLOCKCAMPFIRESOUL_CAMPFIRECACTUSPOWDER_SNOW
デフォルトの危険な身体マテリアル:
LAVAWATERFIRESOUL_FIRESWEET_BERRY_BUSHPOWDER_SNOWCOBWEB
メッセージ設定
すべてのメッセージはMagmaCoreグラデーション、MiniMessageタグ、レガシーカラーコードをサポートします。$prefixプレースホルダーは設定されたプレフィックス値に置き換えられます。
プラグインは以下のメッセージキーを公開しています:
| キー | プレースホルダー | 説明 |
|---|---|---|
messages.prefix | -- | すべてのCannonRTPメッセージで使用されるプレフィックス |
messages.helpHeader | $prefix | /cannonrtpで表示されるヘッダー |
messages.createdCannon | $prefix, $cannon, $id, $path | キャノン作成後に送信 |
messages.deletedCannon | $prefix, $cannon | キャノン削除後に送信 |
messages.movedCannon | $prefix, $cannon | キャノン移動後に送信 |
messages.targetWorldUpdated | $prefix, $cannon, $world | キャノンのターゲットワールド変更後に送信 |
messages.searchCenterUpdated | $prefix, $cannon | キャノンの検索中心変更後に送信 |
messages.reload | $prefix, $count | 再読み込み後に送信 |
messages.noPermission | $prefix, $cannon | プレイヤーがキャノンを見られるが使用できない時に送信 |
messages.cannonDisabled | $prefix, $cannon | プレイヤーが無効なキャノンに入った時に送信 |
messages.queueCalibration | $prefix, $cannon, $queued, $target, $seconds | キャノンがまだ事前読み込み中に送信 |
messages.noValidLocationYet | $prefix, $cannon | 安全な地点がまだ見つかっていない時に送信 |
messages.noValidLocationFound | $prefix, $cannon, $reason | CannonRTPがタイムアウト後に断念した時に送信 |
messages.invalidConfiguration | $prefix, $cannon, $reason | 設定エラーが検出された時に送信 |
messages.statusLine | $prefix, $cannon, $status, $queued, $target, $reason | /wc statusおよび/wc listで使用される行フォーマット |
messages.probeAllowed | $prefix | 地点が有効な時に/wc probeから送信 |
messages.probeBlocked | $prefix, $plugin, $reason | 地点がブロックされた時に/wc probeから送信 |
messages.unknownCommand | $prefix | 管理者が認識されないサブコマンドを使用した時に送信 |
タイトルメッセージ
| キー | プレースホルダー | 説明 |
|---|---|---|
messages.titles.launchQueuedTitle | $cannon | 発射開始時に表示されるタイトル |
messages.titles.launchQueuedSubtitle | $cannon | 発射開始時に表示されるサブタイトル |
messages.titles.destinationPreviewTitle | $x, $y, $z | ウォームアップカウントダウン中に表示されるタイトル |
messages.titles.destinationPreviewSubtitle | $x, $y, $z | ウォームアップカウントダウン中に表示されるサブタイトル |
messages.titles.destinationConfirmedTitle | $x, $y, $z, $world | テレポート直前に表示されるタイトル |
messages.titles.destinationConfirmedSubtitle | $x, $y, $z, $world | テレポート直前に表示されるサブタイトル |
messages.titles.arrivalSubtitles | -- | サブタイトルのリスト;各発射後にランダムに1つが選ばれる |
ウォームアップ中の座標プレビューは実際の目的地を表示しません -- キャノンの検索エリア内のランダムな座標を視覚効果として表示します。本当の目的地は確認タイトルでのみ明かされます。
キャノンごとの設定フィールド
各キャノンファイル(plugins/CannonRTP/custom/fun_rtps/<id>.yml)には以下のフィールドが保存されます:
| フィールド | デフォルト | メモ |
|---|---|---|
isEnabled | 新規作成キャノンはtrue | 無効なキャノンはトリガーされない |
displayName | CannonRTP(または作成時に指定された名前) | メッセージ、ステータス出力、フローティングラベルで使用 |
cannonLocation | 必須 | キャノントリガーの存在位置 |
targetWorld | 作成時の現在のワールド | 実行時にロードされている必要がある |
searchCenter | null(ターゲットワールドのスポーンにフォールバック) | 未設定の場合、プラグインはターゲットワールドのスポーン位置を使用 |
triggerRadius | 1.75 | 近くのプレイヤーを検出するための半径(最小0.5) |
minSearchRadius | 500 | 検索中心からの最小着地検索距離(最小0) |
maxSearchRadius | 5000 | 検索中心からの最大着地検索距離(常に最低minSearchRadius + 1) |
launchWarmupSeconds | 6 | 発射前の浮遊/カウントダウン時間(最小0;0の場合、発射は即時) |
verticalBoostTicks | 45 | テレポート前の上向き速度のティック数(最小0) |
verticalBoostVelocity | 1.35 | 発射時に適用される上向き速度(最小0) |
enableParticles | true | アイドルキャノンパーティクルアニメーションを制御 |
requiredPermission | 空 | この特定のキャノンのオプションの追加権限ゲート |
customModel | 空 | キャノン位置に表示するオプションのFreeMinecraftModelsモデル名 |
キャノン作成時のデフォルト値
/wc create <id>を実行すると:
- キャノンIDは小文字に変換され、
a-z、0-9、_、-以外の文字は_に置き換えられます - 表示名は指定されない場合デフォルトで
CannonRTP、または指定された名前のアンダースコアがスペースに変換されます cannonLocationは現在の位置に設定されますtargetWorldは現在のワールドに設定されますsearchCenterは設定されません(ターゲットワールドのスポーンにフォールバック)
作成後、プラグインは設定ファイルパスを表示し、手動で編集すべきフィールドを提案します:displayName、customModel、requiredPermission、launchWarmupSeconds、verticalBoostTicks、verticalBoostVelocity。
FreeMinecraftModels連携
キャノン設定でcustomModelに有効なFreeMinecraftModelsモデル名が設定され、FreeMinecraftModelsがインストールされている場合:
- キャノン位置に静的モデルエンティティがスポーンされます
- フローティングテキストラベルはモデルとの重なりを避けるために高く上げられます
fireという名前のモデルも存在する場合、代替発射アニメーションが使用されます:プレイヤーはキャノンシートにテレポートされ、3秒間(60ティック)のチャージシーケンス中に保持され、爆発パーティクルエフェクトとともに発射されます
ランタイム検証の動作
CannonRTPは以下のチェックのいずれかが失敗すると着地候補地点を拒否します:
- ターゲットワールドがロードされていない
- 検索中心が無効
- ランダムサンプルがワールドボーダー外に落ちる
- 安全な固体表面が見つからない
- 足元または頭上の空間がブロックされている
- 地形または身体ブロックが設定済みの危険なマテリアルリストに一致
- 保護連携が着地をブロック
キャノンがlanding.searchTimeoutSecondsまでに十分な有効地点を見つけられない場合、消耗済みになり、プレイヤーを発射する代わりに設定済みの失敗メッセージを返します。失敗メッセージには最も一般的な拒否理由の要約が含まれます。
キャノンの検索ウィンドウは、消費された地点を補充する必要があるときに再開します(例:プレイヤーが発射されてスロットが空いた後)。
インタラクションクールダウン
CannonRTPはプレイヤーごとに3秒のインタラクションクールダウンを強制します。このクールダウンは、インタラクションが成功した発射、権限拒否、その他のキャノンチェックのいずれであっても適用されます。クールダウンは設定変更できません。