yGuerraDuelsAddon
Torneio por chaveamento com duelos sucessivos para o yGuerra.
Visão geral
O yGuerraDuelsAddon adiciona um modo de torneio ao yGuerra, transformando um tipo de guerra em um chaveamento onde clans ou jogadores se enfrentam em duelos sucessivos até restar um campeão.
O addon usa a seção Duelos do arquivo do tipo de evento.
No projeto, o tipo padrão fica em:
src/main/resources/tipos/duelos.ymlEm runtime, o arquivo equivalente é criado/carregado dentro da pasta do plugin:
plugins/yGuerra/tipos/duelos.ymlO addon só é considerado ativo quando a chave yGuerraDuelsAddon está ativada no bootstrap/licenciamento e quando o tipo atual possui:
Duelos:
Ativar: trueRequisitos
| Requisito | Descrição |
|---|---|
| yGuerra | Plugin principal carregado corretamente. |
| yPlugins | Dependência obrigatória do yGuerra. |
| Vault | Dependência obrigatória do yGuerra. |
| Addon ativo | BukkitBootstrap.isActivated("yGuerraDuelsAddon") deve retornar true. |
| Tipo configurado | O tipo precisa ter Duelos.Ativar: true. |
| Locais principais | Saida, Entrada e Espera precisam estar definidos. |
| Arena de duelos | Duelos.LocalTeam1 e Duelos.LocalTeam2 devem estar definidos para teleporte correto. |
Arquivo de configuração
O arquivo principal do modo duelos é tipos/duelos.yml.
Campos principais do tipo:
| Campo | Padrão | Função |
|---|---|---|
Comando.Comando | duelos | Comando principal do tipo. |
Comando.Aliases | duelo, duel, duels | Atalhos do comando. |
Minimo clans | 2 | Mínimo de clans para iniciar o evento. |
Minimo jogadores | 2 | Mínimo de jogadores para iniciar o evento. |
Precisa de clan | true | Define se os participantes precisam estar em clan. |
Sala de espera | true | Mantido pela estrutura do yGuerra, mas o modo duelos possui fluxo próprio de teleporte. |
Itens setados | true | Reequipa os jogadores selecionados a cada duelo. |
Perder itens | true | Remove itens ao morrer, sair ou deslogar conforme a lógica do evento. |
Seção Duelos
Duelos:
Ativar: true
JogadoresPorDuelo: 3
TempoEntreDuelos: 30
Local: 'none'
LocalTeam1: 'none'
LocalTeam2: 'none'| Campo | Função |
|---|---|
Duelos.Ativar | Liga o modo de chaveamento para o tipo. Se for false, o tipo funciona como uma guerra normal. |
Duelos.JogadoresPorDuelo | Quantidade máxima de jogadores selecionados por clan em cada duelo. Se o clan tiver menos jogadores vivos/online, usa os disponíveis. |
Duelos.TempoEntreDuelos | Tempo em segundos entre o fim de um duelo e o início do próximo. |
Duelos.Local | Local geral da arena. Usado como fallback. |
Duelos.LocalTeam1 | Local de spawn do primeiro lado do duelo. |
Duelos.LocalTeam2 | Local de spawn do segundo lado do duelo. |
Formato dos locais:
mundo;x;y;z;yaw;pitchRecomendação: configure os locais in-game usando /duelos setarena, em vez de editar manualmente.
Comandos
O tipo duelos.yml registra o comando próprio definido em Comando.Comando.
| Comando | Função |
|---|---|
/duelos | Abre o menu/informações do evento quando ele está ativo. |
/duelos iniciar | Inicia diretamente o tipo duelos. |
/guerra iniciar duelos | Inicia o tipo duelos pelo comando global do yGuerra. |
/duelos parar | Para o evento de duelos ativo. |
/duelos forcestart | Força o início, pulando chamadas restantes e indo para o warmup. |
/duelos info | Mostra informações do evento ativo. |
/duelos camarote | Teleporta o jogador para o camarote, se configurado. |
/duelos setarena | Define a posição atual como arena dos dois lados. |
/duelos setarena team1 | Define a posição atual como spawn do Team1. |
/duelos setarena team2 | Define a posição atual como spawn do Team2. |
Aliases padrão:
/duelo
/duel
/duelsPermissões
O yGuerra usa permissões globais por ação. A permissão yguerra.admin libera tudo.
| Permissão | Uso |
|---|---|
yguerra.admin | Acesso completo aos comandos administrativos. |
yguerra.usar | Usar o comando principal e abrir menus. |
yguerra.ajuda | Ver ajuda. |
yguerra.iniciar | Iniciar eventos. |
yguerra.parar | Parar eventos. |
yguerra.forcestart | Forçar início do evento. |
yguerra.setarena | Configurar arena de duelos. |
yguerra.info | Ver informações do evento. |
yguerra.camarote | Usar camarote. |
yguerra.kickplayer | Remover jogador do evento. |
yguerra.kickclan | Remover clan do evento. |
yguerra.banplayer | Banir jogador do evento. |
yguerra.banclan | Banir clan do evento. |
yguerra.unbanplayer | Desbanir jogador. |
yguerra.unbanclan | Desbanir clan. |
Configuração inicial recomendada
- Ative o addon
yGuerraDuelsAddonno sistema de ativação/licença. - Reinicie ou recarregue o plugin para garantir que o tipo
duelos.ymlseja carregado. - Confirme que
plugins/yGuerra/tipos/duelos.ymlpossuiDuelos.Ativar: true. - Configure os locais principais do evento:
Saida,EntradaeEspera. - Vá até o spawn do primeiro lado da arena e use
/duelos setarena team1. - Vá até o spawn do segundo lado da arena e use
/duelos setarena team2. - Configure o camarote se quiser teleportar eliminados para uma área de espectador.
- Ajuste
Duelos.JogadoresPorDueloeDuelos.TempoEntreDuelos. - Inicie o evento com
/guerra iniciar duelosou/duelos iniciar.
Fluxo do evento
O fluxo do modo duelos é controlado por DuelsManager e DuelsController.
- O staff inicia o tipo
duelos. - O
yGuerraentra na fase de chamada, permitindo jogadores/clans entrarem no evento. - Ao acabar a chamada, o evento valida
Minimo clanseMinimo jogadores. - O evento entra em warmup.
- Quando o PVP é liberado, o addon cria a lista do chaveamento.
- A lista é embaralhada para gerar confrontos aleatórios.
- O primeiro par é escolhido como
CLA_AeCLA_B. - O addon seleciona até
Duelos.JogadoresPorDuelojogadores vivos e online de cada clan. - Os jogadores selecionados recebem o setup do evento e são teleportados para
LocalTeam1eLocalTeam2. - Quando todos os jogadores selecionados de um lado morrem, deslogam ou saem, o outro lado vence o duelo.
- O clan perdedor é removido do evento e enviado ao camarote ou saída.
- O clan vencedor volta para
EntradaouEsperaenquanto aguarda o próximo duelo. - O vencedor é colocado na lista de vencedores da rodada.
- Quando todos os confrontos da rodada terminam, os vencedores formam a próxima rodada.
- O processo se repete até sobrar apenas um campeão.
- Ao final, o
yGuerrausa a lógica padrão de ganhador para tags e recompensas.
Bye
Quando uma rodada possui quantidade ímpar de participantes, um clan ou jogador pode passar automaticamente para a próxima rodada.
Esse comportamento usa a mensagem:
Duelos:
Mensagens:
Bye: '&6[Duelos] &b{clan} &epassa automaticamente para a proxima rodada!'Modos suportados
Duelos entre clans
Configuração padrão:
Precisa de clan: true
Duelos:
JogadoresPorDuelo: 3Neste modo, cada entrada do chaveamento representa um clan. Em cada confronto, o addon seleciona até JogadoresPorDuelo jogadores vivos e online de cada clan.
1x1 entre clans
Precisa de clan: true
Duelos:
JogadoresPorDuelo: 1Neste modo, cada duelo seleciona apenas um jogador por clan. O campeão continua sendo tratado como clan, mas o addon preserva o sobrevivente final para a lógica de finalização.
Solo 1x1 sem clan
Precisa de clan: false
Duelos:
JogadoresPorDuelo: 1Neste modo, cada entrada do chaveamento representa um jogador, não um clan. O addon remove jogadores do chaveamento quando eles saem, morrem ou deixam o evento.
Mensagens do chaveamento
As mensagens específicas do addon ficam em Duelos.Mensagens.
Duelos:
Mensagens:
InicioTorneio: '&6[Duelos] &eTorneio de Clans iniciado com &b{clans_quantia} &eclans!'
InicioRodada: '&6[Duelos] &eRodada &b{rodada} &einiciada! &b{clans_quantia} &eclans restantes.'
InicioDuelo: '&6[Duelos] &eDuelo Rodada &b{rodada}&e: &b{clan_a} &evs &b{clan_b}&e!'
VencedorDuelo: '&6[Duelos] &b{vencedor} &evenceu o duelo contra &c{perdedor}&e! (Rodada {rodada})'
Bye: '&6[Duelos] &b{clan} &epassa automaticamente para a proxima rodada!'
Campeao: '&6[Duelos] &b{clan} &ee o grande &6&lCAMPEAO &eapos &b{rodadas} &erodadas!'Placeholders disponíveis:
| Placeholder | Onde usar | Descrição |
|---|---|---|
{clans_quantia} | InicioTorneio, InicioRodada | Quantidade de participantes/clans restantes. |
{rodada} | InicioRodada, InicioDuelo, VencedorDuelo, Bye | Rodada atual. |
{clan_a} | InicioDuelo | Primeiro participante do duelo. |
{clan_b} | InicioDuelo | Segundo participante do duelo. |
{vencedor} | VencedorDuelo | Vencedor do duelo atual. |
{perdedor} | VencedorDuelo | Perdedor do duelo atual. |
{clan} | Bye, Campeao | Participante que passou por bye ou campeão final. |
{rodadas} | Campeao | Total de rodadas até o título. |
Recompensas e tags
O addon não possui um sistema separado de recompensas. Ao declarar o campeão, ele delega a finalização para a lógica padrão do yGuerra.
No duelos.yml, as recompensas usam colocações (Primeiro, Segundo, Terceiro) com Colocacao e Cargos:
Tag:
Display: '&6[Duelos]'
Recompensas:
Primeiro:
Colocacao: 1
Cargos:
Lider:
- 'give {player} emerald 64'
Capitao:
Numeros:
- 1: 9000
Arredondar decimal: true
Comandos:
- 'give {player} emerald 64'
- 'cash add {player} {numero1}'
Confiavel: []
Membro: []
Sem clan:
- 'give {player} wood 64'
Segundo:
Colocacao: 2
Cargos:
Lider:
- 'give {player} diamond 64'
# ... demais cargos
Terceiro:
Colocacao: 3
Cargos:
Lider:
- 'give {player} gold_ingot 64'
# ... demais cargos
# Recompensa opcional para quem entrou e ficou do início ao fim.
# Quem sair no meio (menu, quit, kick) não recebe. Morrer ainda conta.
# Por padrão, quem já ganhou 1º/2º/3º não recebe esta.
Participacao:
Ativar: false
Dar para colocados: false
Cargos:
Lider: []
Capitao: []
Confiavel: []
Membro: []
Sem clan: []| Campo | Função |
|---|---|
Primeiro / Segundo / Terceiro | Recompensas por colocação final. |
Colocacao | Número da colocação (1, 2, 3...). |
Cargos | Comandos por cargo (Lider, Capitao, Confiavel, Membro, Sem clan). |
Participacao.Ativar | Liga a recompensa de participação. |
Participacao.Dar para colocados | Se true, quem já ganhou 1º/2º/3º também recebe a de participação. |
Desclassificar no void
No arquivo do tipo (ex: duelos.yml e gladiador.yml):
# Desclassificar o jogador ao cair no void (false = teleporta para a entrada)
Desclassificar no void: trueTambém pode ser alternado no menu admin do tipo (menus/admin/tipo.yml, item Desclassificar no void).
Deathmatch
O modo duelos não precisa de deathmatch. O arquivo padrão vem com:
Temporizador:
Deathmatch:
Tempo: 0Recomendação: mantenha Tempo: 0 para evitar conflito de fluxo. O chaveamento já elimina participantes rodada por rodada.
Locais
O tipo precisa dos locais principais do yGuerra:
| Local | Uso |
|---|---|
Locais.Saida | Para onde jogadores são enviados ao sair, serem eliminados ou quando não há camarote. |
Locais.Entrada | Área usada para vencedores aguardarem o próximo duelo. |
Locais.Espera | Fallback para vencedores aguardarem caso Entrada não esteja válida. |
Locais.Camarote | Área de espectador para perdedores, se configurada. |
Duelos.LocalTeam1 | Spawn do lado A na arena. |
Duelos.LocalTeam2 | Spawn do lado B na arena. |
Se Duelos.LocalTeam1 ou Duelos.LocalTeam2 estiverem como none, o addon tenta usar Duelos.Local. Se nenhum local válido existir, o duelo é anunciado, mas os jogadores não são teleportados para a arena.
Comportamento em mortes, saídas e WO
O addon considera o estado real dos participantes vivos no evento.
| Situação | Comportamento |
|---|---|
| Jogador morre | Ele é removido do evento pela lógica normal e o addon verifica se o lado do duelo foi eliminado. |
| Jogador sai/desloga | O jogador é removido; se era essencial para o lado ativo, o addon reavalia o duelo. |
| Clan fica sem jogadores vivos | O outro lado vence o duelo. |
| Um lado não tem jogador online/válido ao iniciar o duelo | O outro lado vence por WO. |
| Ambos os lados não têm jogadores válidos | O duelo é pulado e o chaveamento segue. |
| Quantidade ímpar de participantes | Um participante recebe bye e avança automaticamente. |
Checklist de setup
Use este checklist antes de abrir o evento em produção:
| Item | Status |
|---|---|
Addon yGuerraDuelsAddon ativo | Pendente |
Duelos.Ativar: true | Pendente |
Minimo clans e Minimo jogadores ajustados | Pendente |
Locais.Saida configurado | Pendente |
Locais.Entrada configurado | Pendente |
Locais.Espera configurado | Pendente |
Locais.Camarote configurado, se necessário | Pendente |
/duelos setarena team1 executado | Pendente |
/duelos setarena team2 executado | Pendente |
Duelos.JogadoresPorDuelo revisado | Pendente |
Duelos.TempoEntreDuelos revisado | Pendente |
| Recompensas revisadas | Pendente |
| Tags revisadas | Pendente |
Deathmatch mantido em 0 | Pendente |
Problemas comuns
O evento inicia como guerra normal
Verifique:
| Causa | Correção |
|---|---|
| Addon não está ativo | Ative yGuerraDuelsAddon no bootstrap/licenciamento. |
Duelos.Ativar está false | Altere para true no arquivo do tipo. |
| Tipo errado foi iniciado | Use /guerra iniciar duelos ou /duelos iniciar. |
Mensagem de local nulo ao iniciar
O comando de início valida os locais principais antes de abrir o evento.
Confira se os locais abaixo não estão como none:
Locais:
Saida: 'none'
Entrada: 'none'
Espera: 'none'Duelo é anunciado, mas jogadores não são teleportados
Configure a arena:
/duelos setarena team1
/duelos setarena team2Também é possível usar /duelos setarena para definir a mesma posição para os dois lados, mas isso não é recomendado para arena real.
Participante vence sem lutar
Isso pode acontecer por bye ou WO.
| Motivo | Descrição |
|---|---|
| Bye | A rodada tinha quantidade ímpar de participantes. |
| WO | O adversário não tinha jogadores vivos e online para o duelo. |
Eliminados não vão para o camarote
Se Locais.Camarote não estiver configurado ou estiver inválido, o addon usa Locais.Saida como fallback. Configure o camarote se quiser espectadores.
Recompensa não foi entregue como esperado
O addon usa a finalização padrão do yGuerra. Revise as seções Primeiro, Segundo, Terceiro e Participacao, os cargos e se o modo é com clan ou sem clan.
Referências no código
| Arquivo | Função |
|---|---|
com.ystoreplugins.yguerra.util.ContainerUtil | Verifica se o addon está ativo e se o evento atual é de duelos. |
com.ystoreplugins.yguerra.method.controller.WarmUP | Dispara o torneio quando o PVP é liberado. |
com.ystoreplugins.yguerra.method.controller.duels.DuelsController | Mantém o estado estático do chaveamento ativo. |
com.ystoreplugins.yguerra.method.controller.duels.DuelsManager | Controla rodadas, duelos, WO, bye, campeão e teleportes. |
com.ystoreplugins.yguerra.command.TypeCommand | Registra comandos do tipo e implementa /duelos setarena. |
com.ystoreplugins.yguerra.config.TipoManager | Carrega os campos da seção Duelos do YAML. |