Quest Codex
A extensão Quest Codex fornece um sistema de GUI totalmente personalizável para que os jogadores naveguem, rastreiem e gerenciem missões organizadas por categorias hierárquicas. Cada menu é construído por meio de pools de layout declarativos movidos pela extensão GUI — sem menus codificados, personalização infinita.
- Código-fonte — Ver as fontes no GitHub.
- Baixar releases — Obter os JARs mais recentes.
Recursos
- Categorias hierárquicas — Aninhe categorias por meio de relações pai/filho. As subcategorias herdam a visibilidade da categoria pai.
- Pools de layout — Projete cada menu por meio de pools de layout declarativos. Os placeholders (
SORT_SLOT,CATEGORY_SLOT,QUEST_SLOT) são injetados automaticamente. - Listas de missões roláveis — Os slots de missão e categoria seguem os viewports
scrollable,paginatedeframe— construa grades de missões roláveis de qualquer tamanho (desde a 0.3.0). - Ordenação dinâmica — Alterne entre Todas → Não iniciadas → Ativas → Concluídas, com uma exibição de botão por modo (rótulo, lore, item personalizado).
- Rastreamento de missões — Rastreie missões ativas com indicadores de prioridade por meio do sistema de rastreamento nativo do QuestExtension.
- Design de som completo — Configure sons para abertura do menu, cliques, rolagem e eventos de rastrear/parar de rastrear missão.
- Integração com o BlueMap — Exiba ícones de missão no BlueMap com rótulos dinâmicos e regras de visibilidade (versão BTC).
- Pools de layout — Projete cada menu por meio de pools de layout declarativos. Os placeholders (
Arquitetura
Biblioteca de entradas
Configuração
- Quest Codex Config — Sons globais, número de linhas padrão e modelos de mensagens.
Sistema de categorias
- Quest Category — Define uma categoria com título, ícone, pai e critérios de visibilidade.
- Quest Assignment — Vincula entradas de missão a uma categoria, com ordenação e sobrescritas por status.
Menu e exibição
- Category Menu — Projete menus com pools de layout declarativos, slots de placeholder e botões de ordenação por modo.
- Quest Lore — Sobrescreva as linhas de lore por missão e por status.
Início rápido
-
1. Adicionar configuração global (opcional) — Crie uma entrada Quest Codex Config em um JSON de página para personalizar sons e mensagens. A extensão funciona de imediato sem isso — ela usa padrões sensatos.
json { "type": "quest_codex", "id": "my_codex_config", "defaultRows": 5, "nowTrackingMessage": "<green>Now tracking: {quest}</green>" }Coloque-a em qualquer página compilada sobplugins/Typewriter/pages/. → Quest Codex Config -
2. Definir categorias — Adicione uma entrada Quest Category. Ela define um grupo lógico de missões no códice com seu título de exibição, ícone e um pai opcional para aninhamento. Campos principais: -
category— Nome interno único (ex.:main_quests) -title— Título de exibição mostrado aos jogadores (MiniMessage) -icon— Item mostrado na lista de pai/categoria -parent— Deixe vazio para o nível superior, ou defina para aninhar → Quest Category -
3. Atribuir missões — Adicione uma entrada Quest Assignment para vincular suas missões do QuestExtension a uma categoria. Controle a ordenação e as sobrescritas por status.
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. Projetar menus — Adicione uma entrada Category Menu para cada categoria à qual você queira uma GUI personalizada. Use o pool de layout para posicionar: -
CATEGORY_SLOT— Ícones de categoria autoinjetados (menu principal) -QUEST_SLOT— Botões de missão autoinjetados (menu de categoria) -SORT_SLOT— Botão de ordenação dinâmico autoinjetado - Itens GUI padrão — Itens decorativos, preenchimentos, botões estáticos O pool de layout usa o guiType CUSTOM. Tudo é posicional: coloque os itens em coordenadas (x, y). → Category Menu -
5. Abrir o menu — Acesse o códice por comando:
/tw codex → menu principal do códice (desde a 0.3.0) /tw codex <category> → uma categoria específicaExemplos: -/tw codex main_quests— Abre a categoria de missões principais -/tw codex daily_tasks— Abre as tarefas diárias > Menu principal: crie uma entradacategory_menucom umacategoryvazia e marcadoresCATEGORY_SLOT, ou construa o hub como um menuopen_guida extensão GUI cujos botões executamcodex:open <category>e referencie-o nomainMenuTriggerda config —/tw codexe o botãoBACKdo códice o abrirão então.
Comandos
| Comando | Permission | Descrição |
|---|---|---|
/tw codex | typewriter.codex.open | Abrir o menu principal do códice (category_menu de categoria vazia, ou o mainMenuTrigger da config). |
/tw codex <category> | typewriter.codex.open | Abrir diretamente uma categoria de missões específica. Autocompletar disponível. |
Placeholders
Prefixo: %typewriter_*%
Placeholders globais
| Placeholder | Retorna | Exemplo |
|---|---|---|
%typewriter_total_quests% | Número total de missões em todas as categorias | 42 |
%typewriter_total_completed% | Total de missões concluídas | 15 |
%typewriter_total_in_progress% | Total de missões em progresso | 5 |
%typewriter_total_not_started% | Total de missões não iniciadas | 22 |
%typewriter_total_progress% | Concluídas/Total formatado | 15/42 |
Placeholders por categoria
Substitua <name> pelo identificador da categoria (ex.: main_quests).
| Placeholder | Retorna | Exemplo |
|---|---|---|
%typewriter_category_<name>% | Total de missões na categoria | 10 |
%typewriter_category_<name>_completed% | Concluídas na categoria | 3 |
%typewriter_category_<name>_in_progress% | Em progresso na categoria | 2 |
%typewriter_category_<name>_not_started% | Não iniciadas na categoria | 5 |
%typewriter_category_<name>_progress% | Progresso formatado | 3/10 |
Aliases:
_inprogress%e_notstarted%também funcionam.
Variáveis de modelo (em campos @Placeholder)
| Variável | Contexto | Substituída por |
|---|---|---|
{quest} | Modelos de mensagem | O nome de exibição da missão |
{completed} | Mensagens de progresso | Número de missões concluídas |
{total} | Mensagens de progresso | Total de missões na categoria |
Permissões
| Permission | Descrição |
|---|---|
typewriter.codex.open | Abrir o códice de missões. |
Dependências
| Extension | Obrigatório | Uso |
|---|---|---|
| QuestExtension | Obrigatório | Motor de missões principal. |
| GUI Extension | Obrigatório | Renderização de menus e sistema de pool de layout. |
| PlaceholderAPI | Opcional | Para os campos @Placeholder. |