Files
canalhandia/specs/void-protection/spec.md
T

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:

  1. Detecção: Identifica mortes por vácuo (DamageCause.VOID ou coordenada Y abaixo da altura mínima do mundo).
  2. 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).
  3. 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.
  4. 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.

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.