# Errores reales y como se resolvieron

## server.properties y online-mode

Problema: el panel avisaba de `online-mode=false` aunque el usuario ya habia
cambiado valores.

Solucion: quitar bloqueos paternalistas y dejar que la app valide lo importante
sin impedir el flujo pedido por el operador.

## Playit no creaba tunel automaticamente

Problema: el API devolvia `HTTP 400 failed to parse body`.

Solucion: simplificar el flujo: agente reclamado, panel Playit visible, tunel
Minecraft Java apuntando a `127.0.0.1:25565` y estado claro en UI. La direccion se
guarda en `IP-PUBLICA-PLAYIT.txt`.

## Mods incompatibles

Problema: el cliente mostraba "lista de mods incompatible".

Solucion: comparar server mods, client mods y payload. Separar mods solo cliente y
mantener manifiestos.

## `/op` desde el panel fallaba

Problema: la consola de Minecraft espera `op`, no `/op`.

Solucion: normalizacion de comandos en el panel. El usuario puede escribir como
humano; la app envia como consola.

## TP sin OP

Problema: los comandos de chat personalizados no eran lo que el usuario queria.
Queria `/tp` normal.

Solucion: instalar soporte real por mod/config y documentar que el cliente debe
llevar el mismo pack actualizado.

## Ventana macOS tapada por Dock

Problema: la app era demasiado grande y no redimensionaba bien.

Solucion: hacer la ventana resizable, adaptar limites y compactar layouts para que
se vea entera en portatil.

## Jugadores offline en UI

Problema: un jugador aparecia aunque estuviera offline.

Solucion: separar jugadores conocidos de jugadores online y no poblar listas como
si estuvieran conectados.

## Whitelist activada sin pedirla

Problema: se habia activado por seguridad, pero el operador no la pidio.

Solucion: `white-list=false`, `enforce-whitelist=false`, `whitelist.json=[]` y
pruebas para que no vuelva a activarse accidentalmente.

## Repo desordenado

Problema: servidor, cliente, laboratorio, mockups, backups y releases estaban en
la misma raiz.

Solucion: estructura numerada:

- `01_servidor`
- `02_cliente`
- `03_laboratorio`
- `04_diseno`
- `04_documentacion`
- `05_archivo`
- `github`

## Build Rust fallaba en la copia GitHub

Problema: `cargo check` fallaba porque faltaba `cmake` para una dependencia nativa.

Solucion: instalar `cmake`, copiar el vendor local necesario y validar `cargo
check` en la copia limpia.
