Quest Codex
Quest Codex 拡張は、プレイヤーが階層カテゴリで整理されたクエストを閲覧・追跡・管理できる、完全にカスタマイズ可能な GUI システムを提供します。すべてのメニューは GUI 拡張を土台とする宣言的レイアウトプールで構築され、ハードコードされたメニューは一切なく、カスタマイズは無限です。
- ソースコード — GitHub でソースを見る。
- リリースをダウンロード — 最新の JAR を入手する。
機能
- 階層カテゴリ — 親子関係でカテゴリを入れ子にします。サブカテゴリは親の表示条件を継承します。
- レイアウトプール — 宣言的レイアウトプールで各メニューを設計します。プレースホルダー(
SORT_SLOT、CATEGORY_SLOT、QUEST_SLOT)は自動的に挿入されます。 - スクロール可能なクエスト一覧 — クエストとカテゴリのスロットは
scrollable、paginated、frameのビューポートに従い、任意のサイズのスクロールするクエストグリッドを構築できます(0.3.0 以降)。 - 動的ソート — すべて → 未開始 → 進行中 → 完了 を切り替え、モードごとにボタン表示(ラベル、Lore、カスタムアイテム)を設定できます。
- クエスト追跡 — QuestExtension のネイティブ追跡システムにより、優先度インジケーター付きでアクティブなクエストを追跡します。
- 完全なサウンドデザイン — メニューのオープン、クリック、スクロール、クエストの追跡/追跡解除イベントに対して音を設定します。
- BlueMap 統合 — 動的なラベルと表示ルールを備えたクエストアイコンを BlueMap に表示します(BTC 版)。
- レイアウトプール — 宣言的レイアウトプールで各メニューを設計します。プレースホルダー(
アーキテクチャ
エントリーライブラリ
設定
- Quest Codex Config — グローバルな音、既定の行数、メッセージテンプレート。
カテゴリシステム
- Quest Category — タイトル、アイコン、親、表示条件を持つカテゴリを定義します。
- Quest Assignment — クエストのエントリーをカテゴリに紐づけ、順序とステータスごとの上書きを設定します。
メニューと表示
- Category Menu — 宣言的レイアウトプール、プレースホルダースロット、モードごとのソートボタンでメニューを設計します。
- Quest Lore — クエストごと・ステータスごとに Lore 行を上書きします。
クイックスタート
-
1. グローバル設定を追加する(任意) — 音やメッセージをカスタマイズするには、ページ JSON に Quest Codex Config エントリーを作成します。これがなくても拡張はそのまま動作し、適切な既定値を使用します。
json { "type": "quest_codex", "id": "my_codex_config", "defaultRows": 5, "nowTrackingMessage": "<green>Now tracking: {quest}</green>" }plugins/Typewriter/pages/配下の任意のコンパイル済みページに配置します。→ Quest Codex Config -
2. カテゴリを定義する — Quest Category エントリーを追加します。表示タイトル、アイコン、入れ子用の任意の親を備えた、コーデックス内の論理的なクエストグループを定義します。主なフィールド: -
category— 一意の内部名(例:main_quests) -title— プレイヤーに表示されるタイトル(MiniMessage) -icon— 親/カテゴリ一覧に表示されるアイテム -parent— 最上位なら空のまま、入れ子にするなら設定 → Quest Category -
3. クエストを割り当てる — Quest Assignment エントリーを追加して、QuestExtension のクエストをカテゴリに紐づけます。順序とステータスごとの上書きを制御します。
json { "type": "quest_assignment", "id": "assign_main", "category": "main_quests", "questRefs": ["quest:quest_main_1", "quest:quest_main_2"], "orders": [0, 1] }→ Quest Assignment -
4. メニューを設計する — カスタム GUI が欲しいカテゴリごとに Category Menu エントリーを追加します。レイアウトプールを使って次を配置します:-
CATEGORY_SLOT— 自動挿入されるカテゴリアイコン(メインメニュー) -QUEST_SLOT— 自動挿入されるクエストボタン(カテゴリメニュー) -SORT_SLOT— 自動挿入される動的ソートボタン - 標準の GUI アイテム — 装飾アイテム、フィル、固定ボタン レイアウトプールは CUSTOM の guiType を使用します。すべては位置指定です:アイテムを (x, y) 座標に配置します。→ Category Menu -
5. メニューを開く — コマンドでコーデックスにアクセスします:
/tw codex → コーデックスのメインメニュー(0.3.0 以降) /tw codex <category> → 特定のカテゴリ例:-/tw codex main_quests— メインクエストのカテゴリを開く -/tw codex daily_tasks— デイリータスクを開く > メインメニュー: 空のcategoryとCATEGORY_SLOTマーカーを持つcategory_menuエントリーを作成するか、ボタンがcodex:open <category>を実行する GUI 拡張のopen_guiメニューとしてハブを構築し、設定のmainMenuTriggerで参照します。そうすれば/tw codexとコーデックスのBACKボタンがそれを開きます。
コマンド
| コマンド | Permission | 説明 |
|---|---|---|
/tw codex | typewriter.codex.open | コーデックスのメインメニューを開く(空カテゴリの category_menu、または設定の mainMenuTrigger)。 |
/tw codex <category> | typewriter.codex.open | 特定のクエストカテゴリを直接開く。タブ補完に対応。 |
プレースホルダー
接頭辞: %typewriter_*%
グローバルプレースホルダー
| プレースホルダー | 返り値 | 例 |
|---|---|---|
%typewriter_total_quests% | 全カテゴリのクエスト総数 | 42 |
%typewriter_total_completed% | 完了したクエストの総数 | 15 |
%typewriter_total_in_progress% | 進行中のクエストの総数 | 5 |
%typewriter_total_not_started% | 未開始のクエストの総数 | 22 |
%typewriter_total_progress% | 完了/総数のフォーマット | 15/42 |
カテゴリごとのプレースホルダー
<name> はカテゴリ識別子(例:main_quests)に置き換えてください。
| プレースホルダー | 返り値 | 例 |
|---|---|---|
%typewriter_category_<name>% | カテゴリ内のクエスト総数 | 10 |
%typewriter_category_<name>_completed% | カテゴリ内の完了数 | 3 |
%typewriter_category_<name>_in_progress% | カテゴリ内の進行中数 | 2 |
%typewriter_category_<name>_not_started% | カテゴリ内の未開始数 | 5 |
%typewriter_category_<name>_progress% | 進捗のフォーマット | 3/10 |
エイリアス:
_inprogress%と_notstarted%も使用できます。
テンプレート変数(@Placeholder フィールド内)
| 変数 | コンテキスト | 置き換え先 |
|---|---|---|
{quest} | メッセージテンプレート | クエストの表示名 |
{completed} | 進捗メッセージ | 完了したクエスト数 |
{total} | 進捗メッセージ | カテゴリ内のクエスト総数 |
権限
| Permission | 説明 |
|---|---|
typewriter.codex.open | クエストコーデックスを開く。 |
依存関係
| Extension | 必須 | 用途 |
|---|---|---|
| QuestExtension | 必須 | コアクエストエンジン。 |
| GUI Extension | 必須 | メニューの描画とレイアウトプールシステム。 |
| PlaceholderAPI | 任意 | @Placeholder フィールド用。 |