Configuracao
Tres componentes principais:
plugins/kginfoservs_queststrack/config.yml— Configuracao geral do pluginplugins/kginfoservs_queststrack/quests_config.yml— Textos, etapas e objetivos das questsplugins/kginfoservs_queststrack/lang/<locale>.yml— Arquivos de traducao (fr-FR, en-US, de-DE, pt-BR, pl-PL)
config.yml — Referencia completa
Aqui esta a estrutura completa do arquivo config.yml com todas as opcoes disponiveis.
Categoria padrao (defaultCategory)
defaultCategory: "other"
Categoria utilizada para as quests que nao especificam questParameters.questCategory na sua configuracao BetonQuest. O valor deve corresponder a chave de configuracao de uma categoria (nao o displayName).
Categorias do menu (menuItems.categories)
As categorias organizam as quests no menu GUI. Voce pode definir ate 4 categorias. Cada categoria e totalmente personalizavel.
menuItems:
categories:
story:
displayName: "Story"
material: WRITABLE_BOOK
customModelData: 0
autoTrack: true
secondary:
displayName: "Secondary"
material: BOOK
customModelData: 0
autoTrack: false
dailyQuests:
displayName: "Daily"
material: CLOCK
customModelData: 0
autoTrack: false
other:
displayName: "Other"
material: BOOKSHELF
customModelData: 0
autoTrack: false
Propriedades de uma categoria
| Propriedade | Obrigatoria | Padrao | Descricao |
|---|---|---|---|
displayName | Nao | Chave de configuracao | Nome exibido no menu GUI. E este valor que voce utiliza em questCategory do BetonQuest. |
material | Sim | — | Material Minecraft para o icone (ex: WRITABLE_BOOK, CLOCK) |
customModelData | Nao | 0 | Custom model data para resource pack |
autoTrack | Nao | false | Se true, as quests desta categoria sao automaticamente adicionadas ao acompanhamento do scoreboard quando ativadas |
O valor de questCategory no BetonQuest deve corresponder exatamente ao displayName da categoria (sensivel a maiusculas/minusculas e acentos).
Exemplo: se sua categoria tem displayName: "Diaria", suas quests devem ter questCategory: "Diaria" (nao "diaria" nem "DIARIA").
Se nenhum displayName for definido, a chave de configuracao e utilizada (ex: dailyQuests).
Subcategorias
Cada categoria pode ter subcategorias para uma organizacao mais detalhada:
menuItems:
categories:
dailyQuests:
displayName: "Daily"
material: CLOCK
customModelData: 0
autoTrack: false
subcategories:
monsters:
displayName: "Monsters"
material: ZOMBIE_HEAD
farming:
displayName: "Farming"
material: NETHERITE_HOE
mining:
displayName: "Mining"
material: NETHERITE_PICKAXE
Para colocar uma quest em uma subcategoria, use o formato hierarquico com ponto no BetonQuest:
# No package.yml da quest BetonQuest
questParameters:
questCategory: "Daily.Monsters"
O formato e: displayName_categoria.displayName_subcategoria
Navegacao no menu
- O jogador abre
/quests - Seleciona a categoria "Daily"
- Ve as subcategorias (Monsters, Farming, Mining)
- Seleciona uma subcategoria
- Ve as quests dessa subcategoria
Cada subcategoria exibe automaticamente uma barra de progresso indicando a porcentagem de quests concluidas.
Botoes do menu
menuItems:
toggleCompleted:
visible:
material: LIME_DYE
customModelData: 0
hidden:
material: GRAY_DYE
customModelData: 0
nextPage:
material: PAPER
customModelData: 0
prevPage:
material: PAPER
customModelData: 0
closeButton:
material: BARRIER
customModelData: 0
| Botao | Descricao |
|---|---|
toggleCompleted.visible | Icone quando as quests concluidas estao visiveis |
toggleCompleted.hidden | Icone quando as quests concluidas estao ocultas |
nextPage | Botao proxima pagina |
prevPage | Botao pagina anterior |
closeButton | Botao fechar menu |
Arquivos de idioma (lang)
Todos os textos do plugin (menus, comandos, scoreboard, console etc.) estao externalizados em arquivos de idioma localizados na pasta plugins/kginfoservs_queststrack/lang/.
Idiomas disponiveis
| Arquivo | Idioma |
|---|---|
fr-FR.yml | Frances |
en-US.yml | Ingles |
de-DE.yml | Alemao |
pt-BR.yml | Portugues Brasileiro |
pl-PL.yml | Polones |
O idioma utilizado e determinado pela configuracao language na configuracao do BetonQuest (global para o servidor).
Categorias de chaves
Cada arquivo de idioma e organizado em secoes:
| Prefixo | Descricao |
|---|---|
command.* | Mensagens de comandos (permissoes, uso, recarga) |
tracking.* | Mensagens de acompanhamento de quests (adicionar, remover, limite) |
menu.* | Textos do menu GUI (titulos, botoes, status, formato do lore) |
scoreboard.* | Mensagens do scoreboard |
console.* | Mensagens de inicializacao/desligamento no console |
Exemplo (trecho de en-US.yml)
command:
reload-success: "Quest plugin configuration reloaded."
tracking:
now-tracking: "You are now tracking the quest: {0}"
quest-tracked: "§a✔ Quest added to tracking (slot {0}/3): §r"
menu:
header: "Quests"
quest-active: "Active"
quest-finished: "Finished"
quest-locked: "Locked"
close-button: "Close"
rewards-title: "Rewards:"
lore-format:
objective-prefix: "<#55C4FF>› </#55C4FF><gray>"
separator: "<dark_gray><st> </st></dark_gray>"
reward-prefix: "<green>+</green> <white>"
status-prefix: "<gray>Status: </gray>"
scoreboard:
enabled: "✓ Quest scoreboard enabled"
console:
db-connected: "✓ Database connected"
Todas as traducoes suportam o formato MiniMessage. Exemplos:
<gold>Texto dourado</gold><#55C4FF>Cor hex</#55C4FF><gradient:#800080:#D33D22>Gradiente</gradient><b>Negrito</b>,<st>Tachado</st>,<i>Italico</i>
Adicionar um novo idioma
- Copie um arquivo existente (ex:
en-US.yml) e renomeie com o locale desejado (ex:es-ES.yml) - Traduza todos os valores (as chaves devem permanecer identicas)
- Defina
language: es-ESna configuracao do BetonQuest - Execute
/questsreload
Scoreboard
O scoreboard exibe em tempo real os objetivos das quests acompanhadas pelo jogador.
scoreboard:
enabled: true
title: "<gradient:#800080:#D33D22>◈KGInfoServs Quests◈</gradient>"
separator: "<gradient:#800080:#D33D22>--------------</gradient>"
| Propriedade | Padrao | Descricao |
|---|---|---|
enabled | true | Ativa/desativa o scoreboard globalmente para todos os jogadores. Se false, nenhum scoreboard e criado. |
title | Gradiente roxo-vermelho | Titulo do scoreboard (formato MiniMessage) |
separator | Gradiente roxo-vermelho | Separador entre as quests no scoreboard (formato MiniMessage) |
Quando scoreboard.enabled: false, nenhum recurso e utilizado para o scoreboard (sem ticks, sem pacotes de rede, sem memoria cache). Este e o metodo recomendado se voce utiliza um plugin de scoreboard externo como TAB.
O scoreboard nao gera nenhum tick. Ele se atualiza apenas quando um evento ocorre (ativacao de quest, progresso, mudanca de etapa). Mesmo ativado, ele praticamente nao impacta o desempenho.
PlaceholderAPI
placeholders:
enabled: true
| Propriedade | Padrao | Descricao |
|---|---|---|
enabled | true | Ativa/desativa os placeholders %kgquetes_*% |
Desative se voce nao utiliza PlaceholderAPI para reduzir as chamadas Redis/BDD.
Placeholders disponiveis
Prefixo: %kgquetes_
| Placeholder | Descricao |
|---|---|
%kgquetes_title% | Titulo da quest atualmente acompanhada |
%kgquetes_objective_1% | Primeira linha de objetivo da quest acompanhada |
%kgquetes_objective_2% | Segunda linha de objetivo |
%kgquetes_objective_N% | N-esima linha de objetivo |
Pool de conexao do banco de dados (database)
database:
pool:
maxSize: 30
minIdle: 5
connectionTimeoutMs: 10000
idleTimeoutMs: 300000
| Propriedade | Padrao | Descricao |
|---|---|---|
maxSize | 30 | Numero maximo de conexoes no pool HikariCP |
minIdle | 5 | Numero minimo de conexoes inativas mantidas |
connectionTimeoutMs | 10000 | Tempo maximo de espera para obter uma conexao (10s) |
idleTimeoutMs | 300000 | Fecha as conexoes inativas apos 5 minutos |
- ~100 jogadores: valores padrao (maxSize: 30)
- 500+ jogadores: aumente
maxSizepara 50 - 1000+ jogadores: aumente
maxSizepara 80-100
Atualizacao automatica (updater)
updater:
auto-download: false
| Propriedade | Padrao | Descricao |
|---|---|---|
auto-download | false | Se true, baixa automaticamente as novas versoes em plugins/update/. O JAR sera aplicado na proxima reinicializacao do servidor. |
A verificacao de atualizacao e realizada automaticamente na inicializacao. Se uma nova versao estiver disponivel, uma mensagem e exibida no console e os administradores sao notificados ao conectar.
Voce tambem pode forcar a verificacao com /kgquests update.
Redis
redis:
enabled: true
host: "127.0.0.1"
port: 6379
password: ""
| Propriedade | Padrao | Descricao |
|---|---|---|
enabled | true | Ativa/desativa a sincronizacao Redis |
host | "127.0.0.1" | Endereco do servidor Redis |
port | 6379 | Porta do servidor Redis |
password | "" | Senha do Redis (vazio se nenhuma) |
Veja Multi-servidor para a configuracao detalhada.
quests_config.yml — Textos e etapas das quests
Este arquivo define o conteudo textual, as etapas e os objetivos de cada quest exibida no menu e no scoreboard.
Estrutura de uma quest
quests:
ma_quete:
title: "<gold>Le Tresor Perdu</gold>"
locked_description: "Trouvez l'indice pour debloquer cette quete."
finished_text: "Felicitations ! Vous avez trouve le tresor !"
steps:
'1':
- "Parlez au marchand du village"
- "Achetez une carte au tresor"
'2':
- "Suivez la carte jusqu'a la foret"
- "Trouvez l'entree de la grotte"
Referencia das chaves
| Chave | Obrigatoria | Descricao |
|---|---|---|
title | Sim | Titulo da quest (suporta MiniMessage) |
locked_description | Nao | Texto exibido quando a quest esta bloqueada |
finished_text | Nao | Texto exibido quando a quest esta concluida |
steps | Sim | Etapas da quest com objetivos |
Formato das etapas (steps)
As etapas sao numeradas a partir de 1. Tres formatos sao possiveis:
Formato simples (lista de textos)
steps:
'1':
- "Parlez au marchand"
- "Achetez une carte"
'2':
- "Suivez la carte"
Formato com secao text
steps:
'1':
text:
- "Parlez au marchand"
- "Achetez une carte"
Formato com objetivos rastreaveis
Este formato permite acompanhar o progresso individual de cada objetivo:
steps:
'1':
text:
- "Parlez au marchand"
objectives:
- id: "kill_zombies"
inprogress: "Tuer des zombies (%betonquest_ma_quete:objective.kill_zombies.amount%/%betonquest_ma_quete:objective.kill_zombies.absoluteamount%)"
completed: "<st>Zombies tues</st>"
- id: "collect_wood"
inprogress: "Collecter du bois (%betonquest_ma_quete:objective.collect_wood.amount%/%betonquest_ma_quete:objective.collect_wood.absoluteamount%)"
completed: "<st>Bois collecte</st>"
| Propriedade | Descricao |
|---|---|
id | Identificador do objetivo (deve corresponder ao objetivo BetonQuest) |
inprogress | Texto exibido quando o objetivo esta em andamento (suporta placeholders BetonQuest) |
completed | Texto exibido quando o objetivo esta concluido |
Utilize os placeholders BetonQuest para exibir o progresso em tempo real:
%betonquest_PACKAGE:objective.ID.amount%— Progresso atual%betonquest_PACKAGE:objective.ID.absoluteamount%— Total necessario%betonquest_PACKAGE:constant.KEY%— Constantes da quest
Exemplo: Matar zombies (3/10) se atualiza automaticamente.
Exemplo completo
quests:
histoire_chapitre1:
title: "<gold>Le Reveil du Heros</gold>"
locked_description: "Commencez votre aventure en parlant au guide."
finished_text: "Vous avez fait vos premiers pas dans ce monde !"
steps:
'1':
- "Parlez au guide du village"
- "Acceptez la quete"
'2':
text:
- "Visitez la forge"
objectives:
- id: "visit_forge"
inprogress: "Se rendre a la forge"
completed: "<st>Forge visitee</st>"
- id: "get_sword"
inprogress: "Obtenir une epee"
completed: "<st>Epee obtenue</st>"
'3':
objectives:
- id: "kill_dummies"
inprogress: "Battre des mannequins (%betonquest_histoire_chapitre1:objective.kill_dummies.amount%/3)"
completed: "<st>Mannequins battus (3/3)</st>"
daily_minerai:
title: "<aqua>Collecte Quotidienne</aqua>"
locked_description: "Disponible chaque jour."
finished_text: "Beau travail, mineur !"
steps:
'1':
objectives:
- id: "mine_iron"
inprogress: "Miner du fer (%betonquest_daily_minerai:objective.mine_iron.amount%/32)"
completed: "<st>Fer mine (32/32)</st>"
- id: "mine_gold"
inprogress: "Miner de l'or (%betonquest_daily_minerai:objective.mine_gold.amount%/16)"
completed: "<st>Or mine (16/16)</st>"
Aplicar as alteracoes
- Modifique
config.ymlouquests_config.yml - Execute
/questsreload - Verifique no jogo
Veja tambem
- Integracao BetonQuest — Configurar os events e tags
- Comandos — Comandos de recarga
- Multi-servidor — Configuracao Redis