EternalTDコマンド
EternalTDはルートコマンドを登録します:
/eternaltd
/etd
セットアップ中に使用されるNightbreakアカウントコマンドは、MagmaCoreが登録する別個のトップレベルコマンドです:
/nightbreaklogin [token]
/nightbreaklogout
どちらも nightbreak.login(default: op)で制限されています。トークンなしの /nightbreaklogin はnightbreak.ioのリンクを表示し、そこで承認するとサーバーがリンクされます。/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プラグインのアップデートをダウンロードします。nightbreak.applyPluginUpdatesWithoutRestart によってそれより早く適用されない限り、次回の再起動後に使用されます |
/etd applypluginupdate | 全員 | ダウンロード済みのEternalTDプラグインアップデートを再起動なしで適用します。EternalTDが無効化されてから新しいjarで再び有効化されるため、進行中のレベルは終了します。新しいアップデートが待機していない場合、別のプラグイン差し替えが実行中の場合、または別の作者のプラグインがEternalTDに依存している場合は拒否されます。新しいjarが有効化できなかった場合は、以前のjarが再度読み込まれます |
/etd downloadall | 全員 | EternalTDプラグインのアップデート および 利用可能なすべてのコンテンツをダウンロード |
/etd downloadallcontent | 全員 | 利用可能なすべてのEternalTDコンテンツをダウンロード(プラグインアップデートなし) |
/etd updatecontent | 全員 | 古いEternalTDコンテンツのアップデートをダウンロード |
/etd updateallcontent | 全員 | /etd updatecontent のエイリアス |
/etd forcereinstallcontent <package|all> | 全員 | インストール済みのバージョンがすでに最新であっても、通常の認証付きインポート/リロードパイプラインを通じてコンテンツを再ダウンロードします。all はダウンロード済みと検出されたすべてのパッケージを対象とします。Nightbreakスラグ(タブ補完対応)を指定すると1つのパッケージを対象にし、そのファイルが完全に失われていても機能します。ファイルが削除または破損したパッケージの修復に使用してください。 |
/etd install | 全員 | ResourcePackManagerが利用可能な場合、公式パックを登録してリロードを要求します。それ以外の場合はパックをダウンロードしてハッシュを計算し、server.properties を更新します。この場合はサーバーの再起動が必要です。登録に失敗した場合も server.properties の更新に切り替わります。 |
/etd reload | 全員 | EternalTDをその場で再起動します(無効化・ロード・有効化の完全なサイクル) |
管理者向け注記:
- EternalTDの
plugin.ymlは2つの権限ノードを宣言しており、どちらもdefault: opです。eternaltd.*は管理者、セットアップ、デバッグの各コマンドへのアクセスを付与します。eternaltd.match.bypassを持つプレイヤーは、他のプレイヤーの進行中のレベルワールドにテレポートしても追い出されません(マッチのルールを参照)。 - 管理者向けのコマンドはすべて
eternaltd.*に解決されます:setup、recommendedplugins、downloadall、downloadallcontent、downloadpluginupdate、applypluginupdate、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> | プレイヤー | 読み込まれたレベルファイルからセッションの作成を要求します。ワールドテンプレートはメインスレッド外でコピーされます。「Created your world! We're ready to go.」が表示されるまで開始しないでください。それより前の「Joined level!」は成功を保証せず、準備エラーの後にも表示されることがあります。準備中の再要求は拒否されます。他のNightbreakプラグインのマッチを含め、すでにマッチに参加しているプレイヤーの要求も拒否されます。切断するか、10分経ってもワールドの準備が整わない場合、準備はキャンセルされます。 |
/etd start | プレイヤー | アクティブセッションの最初のウェーブを開始 |
/etd go | プレイヤー | /etd start のエイリアス |
/etd quit | プレイヤー | 現在のレベルセッションを終了 |
/etd stop | プレイヤー | /etd quit のエイリアス |
/etd hub | プレイヤー | 設定されたEternalTDハブのスポーン地点に戻ります。進行中のセッションがあれば先に終了し、プレイヤーの状態を復元してタワーを撤去し、インスタンスのクリーンアップを要求します。ハブが未設定の場合はセッションを終了せずに停止します。テレポートが拒否された場合はその旨を報告します。 |
/etd lobby | プレイヤー | /etd hub のエイリアス |
デバッグおよび管理者ゲームプレイコマンド
| コマンド | 送信者 | 現在の目的 |
|---|---|---|
/etd cheat | プレイヤー | チートモードを切り替えます。無効化するときも含め、実行するたびに所持金を10,000,000、ライフを1,000,000に設定します。そのプレイは以後チート使用扱いとなり、ハイスコアの対象から外れます。 |
/etd setwave <wave> | プレイヤー | 保存されているウェーブカウンターを設定し、そのプレイをチート使用扱いにします。現在の敵を置き換えたり、指定したウェーブを直ちに開始したりはしません。次の通常の移行ではカウンターに1を加えた番号を使用します。 |
これらはセッションのデバッグ用ツールです。チートモード中は建設やアップグレードで所持金を消費しませんが、購入可能かどうかの残高チェックは行われます。無効化してもハイスコアの対象には戻りません。setwave は整数を受け付けますが、対応するウェーブが存在するかは検証しません。
マップ作成コマンド
これらのコマンドは、フロア選択とレベル登録作業のために現在のコードベースにまだ存在しています。
| コマンド | 送信者 | 現在の目的 |
|---|---|---|
/etd selectfloor | プレイヤー | 床の選択を切り替えます。ブロックを左クリックすると角1、右クリックすると角2を設定します。これはコマンドの案内文の説明どおりです。選択を無効にすると範囲は破棄されます。 |
/etd selectfloorcoordinates <x1> <y1> <z1> <x2> <y2> <z2> | プレイヤー | 現在のワールドで整数座標の角を設定します。指定した各Y座標から1を引いて下の床を選びます。両角のYは同じで、両端を含むX/Z方向の長さは3の倍数である必要があります。 |
/etd showselection <level> | プレイヤー | 床の選択範囲を確認し、保持します。選択範囲で登録される各床マスの上に、自分にだけ見える END_ROD パーティクルを1つずつ表示します。何も保存しません。 |
/etd register <level> | プレイヤー | 現在の選択範囲に含まれる床マスごとに1つずつ levelLocations エントリをレベルファイルへ書き込み、既存のリストを置き換えてから選択を解除します。選択範囲が無効な場合や床マスを含まない場合は何も書き込まず、選択範囲を保持します。 |
/etd register <level> start | プレイヤー | プレイヤーの現在の整数ブロック座標を startLocation に追加して保存します。選択エントリが有効である必要があります。Yから1は引きません。 |
/etd register <level> end | プレイヤー | プレイヤーの現在の整数ブロック座標を endLocation に追加して保存します。選択エントリが有効である必要があります。Yから1は引きません。 |
リリース変更履歴
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.*およびeternaltd.match.bypass権限のみを宣言します。サブコマンドは実行時にコマンドマネージャーを通じて登録されます。 /etd reloadは無効化・ロード・有効化を通じてEternalTDを再起動します。フォルダ移行、インポート、パッケージ、ウェーブ、レベル、ワールドテンプレート、NPC、リソースパック設定を再実行します。FreeMinecraftModelsは毎回リロードされるわけではありません。FMMが有効な状態でインポーターがモデルやその他のファイルをFMMのフォルダにインストールした場合、共通のモデルインストールイベントがFMMのコンテンツリロードを呼び出します。join、showselection、register系コマンドのレベル名補完は、現在読み込まれているレジストリを参照します。新たに読み込んだレベルはコマンドマネージャーを再構築せずに表示されます。実行時にも指定したレベルが存在するか確認します。