⛏️ Minecraft UUID Converter (GUI)
Una suite profesional de escritorio para migrar datos de jugadores (inventarios, estadísticas, logros y skins) entre diferentes tipos de UUID en servidores de Minecraft.
Minecraft UUID Converter es una herramienta esencial para administradores de servidores. Permite realizar migraciones masivas y seguras de datos cuando un servidor cambia de modo (ej. Premium a No-Premium) o cuando se integran jugadores de Bedrock (GeyserMC) a Java. Todo esto a través de una interfaz gráfica moderna, rápida y segura.
- 🔄 Conversión Bidireccional: Soporta migraciones de Online (Premium) a Offline (Cracked), y resolución de conflictos entre cuentas de Java y Bedrock (Geyser).
- 🧠 Auto-Cálculo de UUIDs Offline: El algoritmo integrado genera instantáneamente los UUIDs correctos para el modo "No-Premium" usando el estándar de Mojang (MD5 de
OfflinePlayer:Nombre). - 🛡️ Sistema de Backup Automático: Nunca perderás datos. El script genera copias de seguridad (
.bak) de los archivos originales antes de sobrescribirlos. - ⚡ Multihilo (Anti-Congelamiento): La interfaz gráfica nunca se congela. El análisis profundo y la conversión de archivos ocurren en segundo plano utilizando
QueueManageryThreading. - 📦 Auto-Instalador: No requiere configuración compleja. Al ejecutar el programa por primera vez, detectará e instalará automáticamente las dependencias faltantes (
ttkbootstrap,requests).
Requisitos del sistema:
- Python 3.8 o superior.
- Acceso a la carpeta del mundo del servidor (ej.
world/) y al archivousercache.json.
Dependencias (gestionadas automáticamente):
ttkbootstrap(Para el tema moderno y oscuro).requests(Para consultas a la API de Mojang).
python main.py📖 Guía de Uso (Flujo de 5 Pasos)
La interfaz está dividida en pestañas que te guían paso a paso:
🏁 Intro & Mode: Selecciona el modo de conversión (ej. Online a Offline).
📂 World Selection: Carga la carpeta de tu mundo (ej. C:/servidor/world) y tu archivo usercache.json.
🔍 Usercache: Revisa la lista de jugadores detectados en la caché del servidor.
🗺️ UUID Mapping (El cerebro): Aquí verás el análisis. Selecciona los jugadores y usa el botón "Calculate Offline UUIDs" para que el script determine a qué archivos renombrar los datos.
🚀 Convert: Revisa el resumen final y presiona Start Conversion. Los archivos se copiarán con sus nuevos nombres instantáneamente. 📂 ¿Qué datos se convierten?
El script busca y renombra archivos de forma segura en las siguientes subcarpetas del mundo:
playerdata/ (Inventarios, posición, salud, Enderchest)
stats/ (Estadísticas de minado, muertes, tiempo de juego)
advancements/ (Logros desbloqueados)
skinrestorer/ (Datos del plugin de skins, si existe) 🏗️ Arquitectura del Código
El proyecto sigue una arquitectura modular y limpia para facilitar su mantenimiento:
main.py: Punto de entrada y configuración de DPI para Windows.
app.py: Controlador principal de la GUI.
logic.py: Motor de conversión de archivos (I/O).
queue_manager.py: Sistema de cola para actualizar la UI desde hilos de trabajo.
ui_builder.py / ui_components.py: Construcción de widgets y temas (Treeviews, Tabs).
- Compatibilidad Linux: Documentar que el script fuerza el renombrado en minúsculas estrictas (Case-Sensitive) para evitar pérdida de datos en servidores Linux.
- Sistema de Backups: Explicar la nueva arquitectura de seguridad que crea la carpeta
/uuid_backups/con timestamps para evitar sobrescrituras accidentales. - Optimización (Anti-Lag): Detallar que la GUI limita la visualización a los últimos 2,000 jugadores para proteger la RAM, mientras el backend procesa el 100% de la base de datos usando Multi-threading.
- Advertencia GeyserMC (Bedrock): Añadir nota crítica sobre la conversión "Bedrock a Java":
- El script elimina prefijos (
.,*). - Efecto: Fusiona inventarios con cuentas de PC (ideal para migraciones), pero puede desconectar el inventario móvil si se planea seguir jugando en Bedrock.
- El script elimina prefijos (
- Soporte Nativo NBT (1.20.5+):
- Investigar integración con librería
nbtlib. - Implementar modificación interna del archivo
.dat(además del renombrado de archivo) para cambiar la etiqueta binariaUUID: [I;...]. - Objetivo: Evitar que las versiones modernas regeneren el inventario a cero por discrepancia de UUID interno.
- Investigar integración con librería
⚖️ Licencia
Este proyecto es de uso libre para la comunidad de administradores de servidores de Minecraft.



