EternalTDコマンド
EternalTDはルートコマンドを登録します:
/eternaltd
/etd
セットアップ中に使用されるNightbreakアカウントコマンドは、MagmaCoreが登録する別個のトップレベルコマンドです:
/nightbreaklogin <token>
/nightbreaklogout
どちらも nightbreak.login(default: op)で制限されています。/nightbreaklogout はサーバーに保存されたNightbreakアカウントのトークンを消去します。
MagmaCoreは、プラグインごとの変更履歴コマンド /etdchangelog も独自のトップレベルコマンドとして登録します(リリース変更履歴を参照)。
セットアップとコンテンツ管理
これらのサブコマンドのほとんどは、MagmaCoreが NightbreakPluginBootstrap.registerStandardCommands を通じて登録します。これらはすべてのNightbreakプラグインで共有されており、MagmaCoreがプラグインにシェードされているため、EternalTDに同梱されています。
| コマンド | 送信者 | 現在の目的 |
|---|---|---|
/etd | 全員 | 現在のセットアップ/コンテンツのクイックスタートヘルプを表示します。現在は本当に eternaltd.* を必要とします — 権限のない送信者には「You do not have permission to run this command!」が返されます |
/etd initialize | プレイヤー | 初期設定メニューを開きます。必要権限: eternaltd.*. |
/etd setup | プレイヤー | EternalTDのセットアップメニュー(パッケージブラウザと、共有のプラグインアップデート、推奨プラグイン、自動アップデートコントロール)を開きます |
/etd recommendedplugins | 全員 | EternalTDの推奨コンパニオンプラグインを開く(プレイヤー)または表示する(コンソール) |
/etd downloadpluginupdate | 全員 | 利用可能な場合、EternalTDプラグインのアップデートをダウンロードします(次回の再起動後に使用されます) |
/etd downloadall | 全員 | EternalTDプラグインのアップデート および 利用可能なすべてのコンテンツをダウンロード |
/etd downloadallcontent | 全員 | 利用可能なすべてのEternalTDコンテンツをダウンロード(プラグインアップデートなし) |
/etd updatecontent | 全員 | 古いEternalTDコンテンツのアップデートをダウンロード |
/etd updateallcontent | 全員 | /etd updatecontent のエイリアス |
/etd forcereinstallcontent <package|all> | 全員 | インストール済みのバージョンがすでに最新であっても、通常の認証付きインポート/リロードパイプラインを通じてコンテンツを再ダウンロードします。all はダウンロード済みと検出されたすべてのパッケージを対象とします。Nightbreakスラグ(タブ補完対応)を指定すると1つのパッケージを対象にし、そのファイルが完全に失われていても機能します。ファイルが削除または破損したパッケージの修復に使用してください。 |
/etd install | 全員 | 公式EternalTDリソースパック設定を適用 |
/etd reload | 全員 | EternalTDをその場で再起動します(無効化・ロード・有効化の完全なサイクル) |
管理者向け注記:
- EternalTDの
plugin.ymlは単一の権限ノードeternaltd.*(default: op)のみを宣言しており、管理者、セットアップ、デバッグの各コマンドへのアクセスを付与するものと説明されています。 - 管理者向けのものはすべてこの1つのノードに解決されます:
setup、recommendedplugins、downloadall、downloadallcontent、downloadpluginupdate、updatecontent/updateallcontent、forcereinstallcontent、install、reload、cheat、setwave、selectfloor、selectfloorcoordinates、showselection、register、register start、register end、そして素の/etd。(共有のMagmaCoreコマンドはこれを「admin」「setup」「initialize」の3つの権限に分けていますが、EternalTDは3つすべてにeternaltd.*を渡すため、実効的な要件は同一です。) - 2つのNightbreakアカウントコマンドは独自のノード
nightbreak.login(default: op)を使用します。これはEternalTDのplugin.ymlではなく、MagmaCoreが実行時に登録します。 initializeは共通ブートストラップで登録され、eternaltd.*が必要です。プリセットモードの有無は登録を左右しません。- 制限がないのはプレイヤー向けコマンドのみです:
hub/lobby、join、start/go、quit/stop。 - 第1引数のタブ補完も権限でフィルタされるため、
eternaltd.*を持たないプレイヤーにはプレイヤー向けサブコマンドしか表示されません。
ゲームプレイコマンド
| コマンド | 送信者 | 現在の目的 |
|---|---|---|
/etd join <level> | プレイヤー | 読み込まれたレベルファイルから新しいレベルセッションを開始します。テンプレートワールドはメインスレッド外でコピーされるため、コマンドはまず「Preparing world - hang tight!」と応答し、インスタンスが起動すると「Created your world! We're ready to go.」と応答します。コピーの進行中に再度実行すると「Your level is already being prepared. Please wait!」で拒否されます。 |
/etd start | プレイヤー | アクティブセッションの最初のウェーブを開始 |
/etd go | プレイヤー | /etd start のエイリアス |
/etd quit | プレイヤー | 現在のレベルセッションを終了 |
/etd stop | プレイヤー | /etd quit のエイリアス |
/etd hub | プレイヤー | EternalTDのハブスポーンに戻ります。実行中に呼び出された場合、アクティブなセッションが先にクリーンに終了されます(インベントリの復元、タワーの撤去、インスタンスワールドの削除)。config.yml でハブスポーンが設定されている必要があります。サーバーがテレポートを拒否した場合、コマンドは成功したと主張せずにその失敗を報告します。 |
/etd lobby | プレイヤー | /etd hub のエイリアス |
デバッグおよび管理者ゲームプレイコマンド
| コマンド | 送信者 | 現在の目的 |
|---|---|---|
/etd cheat | プレイヤー | アクティブセッションのチートモードを切り替え |
/etd setwave <wave> | プレイヤー | アクティブセッションを特定のウェーブにスキップ |
これらは通常のプレイヤー設定コマンドではありません。セッション/デバッグツールです。
マップ作成コマンド
これらのコマンドは、フロア選択とレベル登録作業のために現在のコードベースにまだ存在しています。
| コマンド | 送信者 | 現在の目的 |
|---|---|---|
/etd selectfloor | プレイヤー | クリックによるフロアコーナー選択を開始または停止 |
/etd selectfloorcoordinates <x1> <y1> <z1> <x2> <y2> <z2> | プレイヤー | 座標から直接選択範囲を設定 |
/etd showselection <level> | プレイヤー | 床の選択範囲を確認し、保持します。現在の実装ではパーティクル表示が無効です。 |
/etd register <level> | プレイヤー | 選択範囲を確認してから選択を解除します。パーティクル表示やlevelLocationsの保存は行いません。床の範囲をレベルYAMLに手動で記入してください。 |
/etd register <level> start | プレイヤー | プレイヤーが現在立っているブロックをレベルの startLocation リストに追加します |
/etd register <level> end | プレイヤー | プレイヤーが現在立っているブロックをレベルの endLocation リストに追加します |
リリース変更履歴
MagmaCoreは、Nightbreakプラグインごとに追加のトップレベルコマンドを1つ登録します。名前はルートコマンドに changelog を足したものです:
/etdchangelog
/etdchangelog dismiss
/etdchangelog disable
| 形式 | 効果 |
|---|---|
/etdchangelog | まだ読んでいないEternalTDのバージョン(および追跡対象のコンテンツパッケージ)のリリースノートを開きます |
/etdchangelog dismiss | 現在表示されているリリースを既読としてマークし、未読の次のバッチがあればそこへ進みます |
/etdchangelog disable | そのプレイヤーに対する変更履歴の通知を恒久的に停止します |
知っておく価値のある挙動:
- このコマンドはプレイヤー専用かつ管理者専用です。ここでの「管理者」とは、op、
eternaltd.*、または仕様上のadmin/setup/initialize権限のいずれかを持つ者を指します — EternalTDはその3つすべてをeternaltd.*に設定しています。 - サーバーに参加した管理者には、ログインからおよそ2秒後にクリック可能な view ボタン付きのチャット通知が届きます。ただし未読のものがあり、
disableを実行していない場合に限ります。 - 既読/却下の状態、追跡を開始したバージョン、キャッシュされたリリーステキストは
plugins/EternalTD/nightbreak-changelogs.ymlに保存されます。 - 他のプラグインがすでに
etdchangelogというラベルを使用している場合、MagmaCoreは名前空間付きのフォールバック(eternaltd:etdchangelog)を代わりに登録します。
注記
- EternalTDの
plugin.ymlはルートコマンドとeternaltd.*権限のみを宣言します。サブコマンドは実行時にコマンドマネージャーを通じて登録されます。 /etd reloadは本物のプラグイン再起動です:軽量なコンテンツ再インポートではなく、プラグインの無効化・ロード・有効化のパスを呼び出します。起動時に行われること(フォルダの移行、インポーター、コンテンツパッケージ、ウェーブ、レベル、ワールドテンプレート、NPC、リソースパックヘルパー)がすべて再実行されます。FreeMinecraftModelsのリロードパスは呼び出しません — それを行うメソッドはソースに存在しますが、どこからも呼び出されていません。join、showselection、register系コマンドのレベル名引数は、プラグイン起動時ではなくタブ補完時に解決されるため、ダウンロードやリロードで追加されたレベルは再起動なしで表示されます。