DNI PLUGIN icon

DNI PLUGIN -----

dni



# DNI Plugin para Minecraft

Un plugin completo para gestionar DNIs (Documentos Nacionales de Identidad) de jugadores en servidores de Minecraft.

## Características

- **Sistema de Permisos**: Diferentes niveles de acceso para ver, crear, editar y eliminar DNIs
- **ID Único**: Cada DNI tiene un ID único que nunca se elimina, incluso si se borra el DNI
- **Persistencia de Datos**: Los datos se guardan automáticamente en archivos YAML
- **Validación**: Validación automática de datos como edad, números de documento, etc.
- **Wizard Interactivo**: Creación paso a paso de DNIs con interfaz amigable
- **Comandos Completos**: Todos los comandos necesarios para gestionar DNIs

## Instalación

1. **Descargar el plugin**: Compila el proyecto con Maven o descarga el JAR
2. **Colocar en plugins**: Copia el archivo JAR a la carpeta `plugins` de tu servidor
3. **Reiniciar servidor**: Reinicia el servidor para cargar el plugin
4. **Configurar permisos**: Asigna los permisos necesarios a los jugadores/roles

## Comandos Disponibles

### Comandos Básicos

| Comando | Descripción | Permiso | Uso |
|---------|-------------|---------|-----|
| `/dni` | Ver tu propio DNI | `dni.view` | `/dni` |
| `/dni ver <jugador>` | Ver DNI de otro jugador | `dni.view.others` | `/dni ver Player123` |
| `/dni crear <jugador> <fecha> <edad> <nombre> <apellido> <nacionalidad> <genero>` | Crear DNI con todos los datos | `dni.create` | `/dni crear Player123 1990-05-15 33 Juan Pérez Español Masculino` |
| `/dni wizard <jugador>` | Crear DNI paso a paso | `dni.create` | `/dni wizard Player123` |
| `/dni editar <jugador> <campo> <valor>` | Editar un campo del DNI | `dni.edit` | `/dni editar Player123 edad 25` |
| `/dni eliminar <jugador> [confirmar]` | Eliminar DNI de un jugador | `dni.delete` | `/dni eliminar Player123 confirmar` |
| `/dni reload` | Recargar configuración del plugin | `dni.admin` | `/dni reload` |

### Comandos Individuales (Legacy)

| Comando | Descripción | Permiso | Uso |
|---------|-------------|---------|-----|
| `/dniview <jugador>` | Ver el DNI de un jugador | `dni.view` | `/dniview Player123` |
| `/dnicreate <jugador> <fecha> <edad> <nombre> <apellido> <nacionalidad> <genero>` | Crear DNI con todos los datos | `dni.create` | `/dnicreate Player123 1990-05-15 33 Juan Pérez Español Masculino` |
| `/dnicreatewizard <jugador>` | Crear DNI paso a paso | `dni.create` | `/dnicreatewizard Player123` |
| `/dnidelete <jugador> [confirmar]` | Eliminar el DNI de un jugador | `dni.delete` | `/dnidelete Player123 confirmar` |
| `/dniedit <jugador> <campo> <valor>` | Editar un campo del DNI | `dni.edit` | `/dniedit Player123 edad 25` |
| `/dnireload` | Recargar la configuración del plugin | `dni.admin` | `/dnireload` |

### Campos Editables

- `fecha_nacimiento` o `birthdate` - Formato: dd/MM/yyyy
- `edad` o `age` - Número entre 0 y 150
- `nombre` o `firstname` - Nombre del jugador
- `apellido` o `lastname` - Apellido del jugador
- `nacionalidad` o `nationality` - Nacionalidad
- `genero` o `gender` - Género

## Sistema de Permisos

### Permisos Disponibles

| Permiso | Descripción | Por Defecto |
|---------|-------------|-------------|
| `dni.view` | Ver tu propio DNI | `true` (todos) |
| `dni.view.others` | Ver DNIs de otros jugadores | `op` |
| `dni.create` | Crear nuevos DNIs | `op` |
| `dni.edit` | Editar DNIs existentes | `op` |
| `dni.delete` | Eliminar DNIs | `op` |
| `dni.admin` | Administrar el plugin | `op` |

### Configuración de Permisos

Para configurar permisos, puedes usar plugins como:
- **LuckPerms**: Sistema de permisos avanzado
- **PermissionsEx**: Sistema de permisos tradicional
- **GroupManager**: Gestión de grupos y permisos

#### Ejemplo con LuckPerms:
```
/lp user Player123 permission set dni.view true
/lp user Player123 permission set dni.create true
/lp group Moderator permission set dni.edit true
/lp group Admin permission set dni.admin true
```

## Estructura de Datos del DNI

Cada DNI contiene la siguiente información:

- **ID Único**: ID de entrada al servidor (nunca se elimina)
- **Nombre del Jugador**: Nombre del jugador en el servidor
- **Número de DNI**: Número aleatorio de 8 dígitos
- **Fecha de Nacimiento**: Fecha de nacimiento del jugador
- **Edad**: Edad actual del jugador
- **Nombre**: Nombre real del jugador
- **Apellido**: Apellido real del jugador
- **Nacionalidad**: Nacionalidad del jugador
- **Género**: Género del jugador
- **Fecha de Creación**: Cuándo se creó el DNI
- **Última Modificación**: Cuándo se modificó por última vez

## Wizard de Creación

El comando `/dnicreatewizard` te guía paso a paso para crear un DNI:

1. **Fecha de Nacimiento**: Ingresa la fecha (formato: dd/MM/yyyy)
2. **Edad**: Ingresa la edad (número)
3. **Nombre**: Ingresa el nombre
4. **Apellido**: Ingresa el apellido
5. **Nacionalidad**: Ingresa la nacionalidad
6. **Género**: Ingresa el género
7. **ID Único**: Ingresa el ID de entrada al servidor (ej: 000001)

Durante el proceso puedes escribir `cancelar` para cancelar la creación.

## Tab Completer

El plugin incluye un sistema completo de tab completer que sugiere:
- Nombres de jugadores online
- Campos editables
- Valores válidos para cada campo
- Subcomandos disponibles

Simplemente presiona la tecla Tab mientras escribes para ver las sugerencias disponibles.

## Archivos de Datos

El plugin guarda todos los datos en:
- **Ubicación**: `plugins/DNIPlugin/dni_data.yml` (YAML) o base de datos configurada
- **Formato**: YAML por defecto, configurable para MySQL/SQLite
- **Backup**: Se recomienda hacer copias de seguridad regulares

## Compilación

Para compilar el plugin desde el código fuente:

```bash
# Clonar el repositorio
git clone <url-del-repositorio>
cd dni-plugin

# Compilar con Maven
mvn clean package

# El JAR se generará en target/dni-plugin-1.0.0.jar
```

## Requisitos del Servidor

- **Versión de Minecraft**: 1.20+
- **Versión de Java**: Java 17 o superior
- **Servidor**: Spigot, Paper, o cualquier servidor compatible con Spigot API

## Solución de Problemas

### Problemas Comunes

1. **Plugin no se carga**: Verifica que tengas Java 17+ y que el servidor sea compatible
2. **Permisos no funcionan**: Asegúrate de que el plugin de permisos esté configurado correctamente
3. **Datos no se guardan**: Verifica que el plugin tenga permisos de escritura en la carpeta
4. **Comandos no responden**: Verifica que los comandos estén registrados en `plugin.yml`

### Logs

El plugin registra información importante en los logs del servidor:
- **INFO**: Operaciones exitosas
- **WARNING**: Advertencias sobre datos
- **SEVERE**: Errores críticos

## Soporte

Si tienes problemas o preguntas:
1. Revisa los logs del servidor
2. Verifica la configuración de permisos
3. Asegúrate de que todos los archivos estén en su lugar
4. Contacta al desarrollador del plugin

## Licencia

Este plugin está bajo licencia MIT. Puedes modificarlo y distribuirlo libremente.

## Changelog

### Versión 1.1.0
- Comando principal `/dni` para ver tu propio DNI
- Tab completer para todos los comandos
- Sistema de confirmación para eliminación
- ID único como ID de entrada al servidor
- Opción de configuración para base de datos o YAML
- Permisos separados para ver DNIs propios y de otros
- Wizard mejorado sin atascos

### Versión 1.0.0
- Sistema completo de gestión de DNIs
- Comandos para crear, ver, editar y eliminar DNIs
- Wizard interactivo para creación paso a paso
- Sistema de permisos configurable
- Persistencia de datos en YAML
- ID único que nunca se elimina 20_ago_2025_20_57_50 (1).png 20_ago_2025_20_57_50 (1).png
Resource Information
Author:
----------
Total Downloads: 14
First Release: Aug 21, 2025
Last Update: Aug 21, 2025
Category: ---------------
All-Time Rating:
0 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings