1.7 KiB
1.7 KiB
Spec: Proteção de Itens no Vácuo (Void Protection)
1. Problema e Motivação
Quando um jogador morre no vácuo (caindo no The End, Nether ou Overworld profundo), todos os itens e armaduras caem abaixo de Y = -64 e são excluídos pelo motor do Minecraft, impossibilitando qualquer recuperação legítima e gerando frustração.
2. Solução
Implementar o módulo salvavoid no plugin Canalhandia:
- Detecção: Identifica mortes por vácuo (
DamageCause.VOIDou coordenada Y abaixo da altura mínima do mundo). - Busca de Terreno Seguro: Procura o bloco sólido mais próximo da posição horizontal onde o jogador caiu (raio configurável, padrão 32 blocos).
- Opção A (Baú de Resgate): Se encontrar terreno seguro:
- Cria um baú (ou baú duplo se necessário) sobre o bloco seguro.
- Guarda todos os itens e armaduras do jogador dentro do baú.
- Limpa os drops do evento de morte (para não cair no vácuo).
- Informa ao jogador a localização exata (coordenadas X, Y, Z) do baú no chat.
- Opção B (Preservação Direta no Inventário): Se NÃO houver nenhum bloco seguro por perto (ex: caiu no meio do vácuo infinito do End):
- Preserva o inventário e nível de XP do jogador (
keepInventory = true,keepLevel = true). - Limpa os drops do evento de morte.
- Envia mensagem confortando o jogador e avisando que os itens foram mantidos no inventário.
- Preserva o inventário e nível de XP do jogador (
3. Critérios de Aceitação
- Módulo integrado ao
/canalhandia modulo salvavoid <on|off>. - Configurações em
Settings.java:voidProtectionEnabled,voidProtectionRadius,voidProtectionKeepXp. - Testes unitários cobrindo detecção de morte no vácuo, cálculo de busca e empacotamento de inventário.