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

Quest Codex

カテゴリ、複数追跡、GPS ウェイポイント、進捗、BlueMap アイコンを備えたクエストログメニュー。

無料v2.16クエストとストーリー
必要TypeWriter0.9QuestGUI0.18+BlueMap任意

概要​

Quest Codex は、プレイヤーにクエストブックを提供します。メインメニューにはカテゴリー(メインストーリー、サイドクエスト、ダンジョンなど)が並び、各カテゴリーを開くとそのクエストの一覧が表示され、進行中のクエストをクリックすると追跡が始まります。クエスト自体は、公式の TypeWriter Quest エクステンションで作成したものです。Quest Codex は、それらを整理して表示するだけです。

画面はすべて自分で作成します。メニューは GUI エクステンションのレイアウトで、その中にマーカーアイテムを配置します。QUEST_SLOT マーカーはプレイヤーのクエストに、CATEGORY_SLOT マーカーはカテゴリーに、SORT_SLOT マーカーはソートボタンに置き換えられます。マーカーの周囲にあるもの(枠線、タイトル、ボタン、スクロール、ページ)は、すべて通常の GUI コンテンツです。

メニューに加えて、このエクステンションは、再接続後も保持される複数クエストの追跡、中断されたダイアログやシネマティックの復旧、クライアント側の GPS ウェイポイントとロケーターバーのドット、ページから付与できるカスタム Minecraft 実績、BlueMap 上のクエストアイコンを追加します。

機能​

  • カテゴリー — 順序、アイコン、表示可否、完了クライテリア、ステータスごとのメッセージを持つ、入れ子のカテゴリー。
  • クエストの割り当て — クエストをカテゴリーに入れ、順序を設定し、アイコン、名前、ロア、表示可否をステータスごとにオーバーライドします。
  • レイアウトプール — 各メニューは GUI レイアウトで設計し、codex が QUEST_SLOT、CATEGORY_SLOT、TRACKED_QUEST_SLOT、SORT_SLOT のマーカーを埋めます。
  • ソートボタン — すべて、未開始、進行中、完了を切り替え、モードごとにラベル、アイコン、ロアを設定できます。
  • 複数追跡 — 進行中の複数のクエストを同時に追跡できます。最後のものが、公式 HUD トラッカーの主要クエストになります。
  • 追跡中クエストのメニュー — プレイヤーが追跡しているクエスト専用のメニュー。
  • ウェイポイント — 目標、座標、エンティティを指す、パケットのみで構成されたテキスト、ブロック、ビーコンのレイヤーと、バニラのロケーターバー版。
  • インタラクションの復旧 — 切断後に、進行中だったダイアログやシネマティックを復元します。
  • 実績 — パネルで Minecraft の実績タブを定義し、アクションで付与します。
  • BlueMap アイコン — ポップアップ付きのクエストアイコンを BlueMap に配置します。

インストール​

  1. Paper または Folia サーバーに TypeWriter をインストールし、Quest Codex が表示するクエストを定義する公式の Quest エクステンションも導入します。
  2. GUI エクステンション(バージョン 0.18 以降)をインストールします。
  3. 任意: ウェイポイント用に PacketEvents(TypeWriter ですでに必須)、マップアイコン用に BlueMap をインストールします。
  4. GitHub リリース(上のサマリーパネルのボタン)から Quest Codex の JAR をダウンロードし、plugins/Typewriter/extensions/ に配置して、サーバーを再起動します。
  5. プレイヤーに typewriter.codex.open パーミッションを付与します。下の「パーミッション」を参照してください。

はじめに​

カテゴリーが 1 つのクエストログを作成します。

  1. スタティックページに、Quest Codex Tracking Data エントリーを追加します。追跡中のクエストはここに保存されます。
  2. マニフェストページに、Quest Codex Global Settings エントリーを追加します。trackingArtifact にアーティファクトを設定し、maxTrackedQuests とサウンドを確認します。
  3. category を main_quests、title を <gold>Main Story などに、そして icon を設定した Quest Category エントリーを追加します。
  4. category を main_quests にし、questRefs にクエストを指定した Quest Assignment エントリーを追加します。orders は任意です。
  5. レイアウトのコンテナとしてのみ使う Open GUI エントリーを 2 つ作成します。1 つ目の main_gui には、id が main の simple レイアウトを追加し、mainLayoutId を main、guiType を CUSTOM、size を SIZE_36 に設定します。buttonPrefix を codex_button:、buttonType を CATEGORY_SLOT、x を 1、y を 1、count を 7、direction を right にしたアイテムを追加します。2 つ目の quests_gui では、マーカーを QUEST_SLOT にして同じことを行い、最下段に CLOSE アイテムを追加します。
  6. category を空、rows を 4、menu を main_gui にした Category Menu を追加します。これがメインメニューです。
  7. category を main_quests、rows を 4、menu を quests_gui にした 2 つ目の Category Menu を追加します。
  8. Publish してから、ゲーム内で /tw codex を実行します。カテゴリーをクリックし、続けて進行中のクエストをクリックして追跡します。
rows と size は同じにする

インベントリは、Open GUI の size ではなく、Category Menu の rows から構築されます。両者が異なる場合、小さい方の高さを超えるスロットは破棄され、起動時にコンソールで警告されます。

マーカー

1 つのマーカースロットには、1 つのクエストが表示されます。マーカーをグリッド状に広げるには、count、direction、gap、repeatY を使用します。count 7、direction right、repeatY 3 なら、21 個のクエストスロットになります。direction がない場合、マーカーは 1 スロットのままです。クエストはマーカーを読み取り順に埋め、次のクエストのページへは PAGE_NEXT ボタンで移動します。

仕組み​

起動時に、エクステンションはカテゴリー、アサインメント、メニューを読み込みます。プレイヤーがメニューを開くと、レイアウトが解析される前に、レイアウト内の各マーカーがインデックス付きマーカー(QUEST_SLOT#0、QUEST_SLOT#1、...)に書き換えられます。そのため、マーカーは scrollable、paginated、frame レイアウトの中でも、通常のスロットと同じように動作します。描画時に、各マーカーは n 番目のクエストまたはカテゴリーに置き換えられます。

メニュー​

メニューを構成するエントリー​

開くのは Category Menu エントリーです。その menu フィールドは、レイアウトプール、メインレイアウト、ウィンドウタイプ、サウンドだけを提供する Open GUI エントリーを指します。その Open GUI を自分でトリガーしないでください。

Category Menu の categoryメニュー含める必要があるマーカー
空ルートカテゴリーを一覧表示するメインメニューCATEGORY_SLOT
カテゴリー名そのカテゴリーのクエストQUEST_SLOT
@trackedプレイヤーが追跡しているクエストTRACKED_QUEST_SLOT

定義したすべてのカテゴリーに Category Menu が必要です。ない場合、開いても何も起こらず、起動時にコンソールでその旨が通知されます。

マーカーとボタン​

buttonPrefix を codex_button: に、buttonType を次のいずれかに設定します。

buttonType役割
CATEGORY_SLOTカテゴリーのアイコン。タイトル、進捗 {completed}/{total}、クリックのヒント、ステータスメッセージが付きます。クリックするとカテゴリーが開きます。
QUEST_SLOTクエスト。アイコンはステータスに従い、名前とロアは、クエスト、アサインメント、Quest Lore エントリーから取得されます。進行中のクエストをクリックすると、追跡または追跡解除されます。
TRACKED_QUEST_SLOT@tracked メニュー内の追跡中クエスト。空のスロットは、自分で設定したアイテムを保持して無反応になるため、それが空の状態の表示になります。
SORT_SLOTソートボタン。各モードは、Category Menu の sortDisplay で設定します。
PAGE_NEXT, PAGE_PREVクエストまたはカテゴリーの、次または前のページへ移動します。
SCROLL_UP, SCROLL_DOWN, SCROLL_LEFT, SCROLL_RIGHTメニューをスクロールします。
BACKメインメニューがあればそこへ、なければ mainMenuTrigger エントリーへ、それもなければ前のメニューへ戻り、それもなければ閉じます。
CLOSEメニューを閉じます。
SORT通常のナビゲーションスロットとして配置するソートボタン。

ナビゲーションボタンは、設定したアイテム、名前、ロアを保持します。組み込みの矢印、バリア、ホッパーは、スロットにアイテムがない場合にのみ使用されます。

マーカーは、menu で参照する Open GUI に属する simple レイアウトに置いてください。他のレイアウトタイプや、共有シャーシのレイアウトにあるマーカーは、インデックス付けされず、非表示のままになります。

シャーシ、ビュー、タブ​

タブ付きのクエストブックを作るには、Category Menu の baseMenuId を共有の Open GUI シェルに設定し、ビュー、タブ、継承と同じように、views、defaultViewId、breadcrumbSeparator を追加します。pushHistoryOnViewSwitch を使うと、「戻る」で前のタブに戻れます。ルートレイアウトに _extended バリアントがあるシャーシは、自動的に 10 行のキャンバスになります。

クエストの表示​

  • クエストのアイコンは、未開始、進行中、完了のそれぞれで、デフォルトでは本、時計、エメラルドになります。Quest Assignment(notStartedItem、inProgressItem、completedItem)でステータスごとにオーバーライドできます。
  • notStartedName、inProgressName、completedName はクエスト名を置き換え、対応するロアのフィールドは行を追加します。ステータスごとにクエストを非表示にするには、hideWhenNotStarted、hideWhenInProgress、hideWhenCompleted を使用します。
  • Quest Lore エントリーは、1 つのカテゴリー内または全カテゴリーで、クエストにステータスごとの行を追加します。
  • クエストの順序は、まず orders、次に questRefs の順に従います。カテゴリーには、サブカテゴリーのクエストも一覧表示されます。
  • メインメニューには、トップレベルのカテゴリー(parent がないもの)のみが表示されます。サブカテゴリーは、/tw codex <category> か、codex:open <category> を実行するボタンで開きます。

設定​

Quest Codex Global Settings エントリーには、メニューに紐付かないオプションが含まれます。作成するのは 1 つだけにしてください。ない場合はデフォルト値が使われます。

  • サウンド — soundOnOpen、soundOnSwitch、soundOnClick、soundOnTrack、soundOnUntrack。
  • 追跡 — multiTrackingEnabled、maxTrackedQuests(1 以上)、trackingArtifact。アーティファクトがない場合、追跡中のクエストはメモリ上にのみ保持され、起動時にコンソールで警告されます。アーティファクトはファイルであり、プレイヤーが使い始めたら artifactId を変更してはいけません。
  • 復旧 — recoveryEnabled、recoveryArtifact、recoveryRetentionSeconds(10 から 86400)、recoveryRestoreDelayTicks(1 から 20)。ダイアログやシネマティックの最中にプレイヤーが退出すると、スナップショットが保存され、プレイヤーが再参加した直後に復元されます。アーティファクトがない場合、復旧は無効です。
  • メッセージ — nowTrackingMessage、stoppedTrackingMessage、questInactiveMessage、questCompletedMessage、trackingLimitMessage({quest}、{max})、categoryProgressMessage({completed}、{total})、およびカテゴリーとクエストのロアのヒント。
  • ナビゲーションのラベル — navLabels は、組み込みの各ボタン(next、previous、up、down、left、right、back、close、sort)の名前を設定します。タグ付きスロットに独自のアイテムがない場合にのみ使用され、アイテムを持つスロットは独自の名前とロアを保持します。
  • 並べ替えボタン — sortTexts は、各並べ替えモードのラベル(allLabel、notStartedLabel、activeLabel、completedLabel)と、ロア行 hint を設定します。sortDisplay でモードに label や lore を設定した Category Menu は、その設定を保持します。
  • メニューのタイトル — mainMenuTitle と trackedQuestsTitle は、対応する Category Menu の title が空の場合に使われるタイトルです。
  • コマンドエラー — unknownCategoryMessage は、存在しないカテゴリに対して /tw codex <category> が表示するエラーです({category})。
  • メインメニューのフォールバック — メインの Category Menu がない場合に mainMenuTrigger がトリガーされます。たとえば、ボタンが codex:open <category> を実行する、独自の Open GUI を指定できます。

ウェイポイントとロケーターバー​

Quest Codex Waypoint はオーディエンスエントリーです。オーディエンスフィルターに接続して、誰に表示するかを選択します。その target は、固定座標、ロケート可能な目標、追跡中の目標(選択方式は HIGHEST_PRIORITY、FIRST、CLOSEST、ALL、ONE_PER_QUEST)、またはエンティティです。layers は、テキストレイヤー(プレースホルダー {icon}、{distance}、{distance_m}、{distance_km}、{elevation}、{direction}、{vertical_direction}、{target}、{world_name}、{height_diff}、{eta})、ブロックレイヤー、ビーコンレイヤーを組み合わせます。displayMode は HUD_LOCKED(デフォルト)、WORLD_DIRECTIONAL、TARGET_ANCHORED、ADAPTIVE のいずれかで、各レイヤーでオーバーライドできます。すべてパケットで送信され、エンティティがワールドに保存されることはありません。

Quest Codex Locator Bar は、同じターゲットを、バニラのロケーターバー上のドットとして表示します。これには Minecraft 1.21.6 以降が必要で、3D ウェイポイントと組み合わせて使用します。

実績と BlueMap​

  • Advancement Definition は実績を記述します。parent がないものはタブになります。起動時に、ワールドフォルダー内の questcodex_advancements というデータパックに書き出され、内容が変更されたときにサーバーがデータをリロードするため、新しいデフィニションには再起動が必要です。実績は、Grant Advancement アクションでのみ獲得できます。
  • BlueMap Icon は、起動時に、そのワールドの BlueMap マップに、ラベルとポップアップ付きのマーカーを配置します。description では、<objectives> がクエストの目標に置き換えられます。

コマンド​

すべてのコマンドは /typewriter のサブコマンドで、通常は /tw と入力し、typewriter.codex.open が必要です。

コマンド説明
/tw codexメインメニューを開きます。category が空の Category Menu、なければ mainMenuTrigger エントリーです。
/tw codex tracked追跡中のクエストのメニューを開きます。
/tw codex <category>カテゴリーを開きます。タブ補完で、定義済みのカテゴリーが一覧表示されます。

メニューのボタンでは、次の内部コマンドも実行できます。codex:open <category>、codex:tracked、codex:quest <quest_id>、codex:nav <action>。独自の GUI メニューのボタンでは、codex:open と codex:tracked を使用してください。

パーミッション​

パーミッション許可される内容
typewriter.codex.openすべての /tw codex コマンド。エクステンションはこれをオペレーターのみのデフォルトで宣言しており、パーミッションプラグインに表示されます。/tw codex を使えるグループに付与してください。

Category Menu のアクションやメニューボタンからメニューを開く場合、パーミッションは不要です。

プレースホルダー​

typewriter エクスパンションを使う PlaceholderAPI のプレースホルダーです。プレイヤーが必要です。

プレースホルダー戻り値
%typewriter_total_quests%全カテゴリーのクエスト数。
%typewriter_total_completed%, %typewriter_total_in_progress%, %typewriter_total_not_started%プレイヤーにとっての、各ステータスのクエスト数。
%typewriter_total_progress%完了数と総数。たとえば 15/42。
%typewriter_category_<name>%カテゴリー内のクエスト数。
%typewriter_category_<name>_completed%, _in_progress%, _not_started%そのステータスにあるカテゴリーのクエスト数。
%typewriter_category_<name>_progress%カテゴリーの完了数と総数。
%typewriter_codex_tracked_count%, _limit%追跡中のクエスト数と上限。
%typewriter_codex_tracked_multi_enabled%, _has_any%true または false。
%typewriter_codex_tracked_ids%, _names%, _names_lines%追跡中のクエストの ID または名前。カンマ区切り、または 1 行に 1 つ。
%typewriter_codex_tracked_primary_id%, _primary_name%公式トラッカーが表示する主要クエスト。
%typewriter_codex_tracked_has_<quest_id>%そのクエストが追跡されているかどうか。
%typewriter_codex_tracked_<n>_id%, _name%, _status%, _primary%n 番目(1 から)の追跡中クエストの詳細。ない場合は空。
%typewriter_codex_tracked_<n>_objective_count%, _objectives%, _objectives_lines%, _priority%n 番目の追跡中クエストの、表示対象の目標。

<name> はカテゴリー名で、大文字小文字は区別されずに照合されます。詳細は、プレースホルダー、コマンド、パーミッションを参照してください。

エントリー​

12 件のエントリー(拡張機能のソースから生成)。

アクション2
オーディエンス2
アーティファクト2
マニフェスト6

トラブルシューティング​

/tw codex が何も起こさない。 category が空の Category Menu がなく、mainMenuTrigger もありません。コンソールには、原因とともに Main menu could not open が記録されます。カテゴリーについては、Quest Category の category と同じ category を持つ Category Menu を作成してください。

メニューが空のまま開く。 起動時にコンソールで報告されます。参照先の Open GUI のどのスロットにも、メニューが必要とするマーカー(CATEGORY_SLOT、QUEST_SLOT、TRACKED_QUEST_SLOT)がない、menu が空か Open GUI でない、レイアウトプールが空、または mainLayoutId がその中にない、のいずれかです。マーカーには buttonPrefix codex_button: が必要です。

下の行のスロットがない。 Category Menu の rows が、Open GUI の size より小さくなっています。両方を同じ行数に設定してください。

クエストが、間に空きスロット 1 つではなく、隣り合って表示される。 gap は間隔のステップです。1 は隣接、2 は空きスロットが 1 つになります。Quest Codex 0.3.0 より前に作成したメニューは gap を余白として使用していたため、値を 2 倍にしてください。装飾との衝突は、Slot overlap の警告として報告されます。

複数のマーカーが 1 つのセルに重なる。 マーカーに count はあるが direction がないか、位置がグリッドの外に出ています。direction を設定してください。

カテゴリーからクエストが消えている。 現在のステータスに対する hideWhen... オプションで非表示になっているか、現在のソートモードでフィルタリングされているか、アサインメントがそれを解決できなかった(コンソールに Quest '...' could not be resolved)かのいずれかです。

再起動後に、追跡中のクエストが消える。 trackingArtifact が空か、その artifactId が変更されています。アクティブでなくなったクエストは、追跡リストから削除されます。

ウェイポイントが表示されない。 ウェイポイントエントリーは、プレイヤーが該当するオーディエンスの中にある必要があり、クエストが追跡中で、目標がロケート可能でなければなりません。{icon} を含むテキストレイヤーは、icon を設定するまで空のままです。

新しい実績がサーバーに認識されない。 デフィニションは起動時に書き出されるため、追加した後は再起動してください。アイコンがアイテムでないデフィニションは、警告とともにスキップされます。

関連エクステンション​

  • GUI — すべての Quest Codex メニューが使用する、レイアウト、マーカー、ビュー、open_gui シャーシ。
  • Shops — ショップメニューで、同じマーカーの仕組みを使用します。