Pular para o conteúdo principal

Configuracao

Tres componentes principais:

  • plugins/kginfoservs_queststrack/config.yml — Configuracao geral do plugin
  • plugins/kginfoservs_queststrack/quests_config.yml — Textos, etapas e objetivos das quests
  • plugins/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

PropriedadeObrigatoriaPadraoDescricao
displayNameNaoChave de configuracaoNome exibido no menu GUI. E este valor que voce utiliza em questCategory do BetonQuest.
materialSimMaterial Minecraft para o icone (ex: WRITABLE_BOOK, CLOCK)
customModelDataNao0Custom model data para resource pack
autoTrackNaofalseSe true, as quests desta categoria sao automaticamente adicionadas ao acompanhamento do scoreboard quando ativadas
displayName e questCategory

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

  1. O jogador abre /quests
  2. Seleciona a categoria "Daily"
  3. Ve as subcategorias (Monsters, Farming, Mining)
  4. Seleciona uma subcategoria
  5. 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
BotaoDescricao
toggleCompleted.visibleIcone quando as quests concluidas estao visiveis
toggleCompleted.hiddenIcone quando as quests concluidas estao ocultas
nextPageBotao proxima pagina
prevPageBotao pagina anterior
closeButtonBotao 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

ArquivoIdioma
fr-FR.ymlFrances
en-US.ymlIngles
de-DE.ymlAlemao
pt-BR.ymlPortugues Brasileiro
pl-PL.ymlPolones

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:

PrefixoDescricao
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"
Formato MiniMessage

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

  1. Copie um arquivo existente (ex: en-US.yml) e renomeie com o locale desejado (ex: es-ES.yml)
  2. Traduza todos os valores (as chaves devem permanecer identicas)
  3. Defina language: es-ES na configuracao do BetonQuest
  4. 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>"
PropriedadePadraoDescricao
enabledtrueAtiva/desativa o scoreboard globalmente para todos os jogadores. Se false, nenhum scoreboard e criado.
titleGradiente roxo-vermelhoTitulo do scoreboard (formato MiniMessage)
separatorGradiente roxo-vermelhoSeparador entre as quests no scoreboard (formato MiniMessage)
Desempenho

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.

Scoreboard orientado a eventos

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
PropriedadePadraoDescricao
enabledtrueAtiva/desativa os placeholders %kgquetes_*%

Desative se voce nao utiliza PlaceholderAPI para reduzir as chamadas Redis/BDD.

Placeholders disponiveis

Prefixo: %kgquetes_

PlaceholderDescricao
%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
PropriedadePadraoDescricao
maxSize30Numero maximo de conexoes no pool HikariCP
minIdle5Numero minimo de conexoes inativas mantidas
connectionTimeoutMs10000Tempo maximo de espera para obter uma conexao (10s)
idleTimeoutMs300000Fecha as conexoes inativas apos 5 minutos
Dimensionamento por numero de jogadores
  • ~100 jogadores: valores padrao (maxSize: 30)
  • 500+ jogadores: aumente maxSize para 50
  • 1000+ jogadores: aumente maxSize para 80-100

Atualizacao automatica (updater)

updater:
auto-download: false
PropriedadePadraoDescricao
auto-downloadfalseSe 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: ""
PropriedadePadraoDescricao
enabledtrueAtiva/desativa a sincronizacao Redis
host"127.0.0.1"Endereco do servidor Redis
port6379Porta 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

ChaveObrigatoriaDescricao
titleSimTitulo da quest (suporta MiniMessage)
locked_descriptionNaoTexto exibido quando a quest esta bloqueada
finished_textNaoTexto exibido quando a quest esta concluida
stepsSimEtapas 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>"
PropriedadeDescricao
idIdentificador do objetivo (deve corresponder ao objetivo BetonQuest)
inprogressTexto exibido quando o objetivo esta em andamento (suporta placeholders BetonQuest)
completedTexto exibido quando o objetivo esta concluido
Placeholders BetonQuest nos objetivos

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

  1. Modifique config.yml ou quests_config.yml
  2. Execute /questsreload
  3. Verifique no jogo

Veja tambem