DTC - Destroy The Core
A competitive PvP event where players must destroy the core to earn rewards.
Quick challenge
How far can you run before the mobs catch you?
Minecraft check
Confirm your run
Complete the quick check to get your code.
DTC - Destroy The Core
⚔️ EC-DTC — Destroy The Core
Evento PvP competitivo avanzado para servidores Paper donde los jugadores destruyen un núcleo para ganar recompensas, dominar el ranking y obtener premios automáticos.
> Documentación para uso público. Los cambios recientes del plugin están en la sección Changelog al final.
---
🚀 ¿Qué es EC-DTC?
EC-DTC (Destroy The Core) es un sistema de eventos PvP automático y manual totalmente configurable.
> Los jugadores deben destruir un núcleo con vida configurable. > Cada golpe cuenta. Cada porcentaje importa. > Al finalizar, se calcula un TOP de contribución y se reparten recompensas automáticamente.
---
✨ Características Principales
- ✅ Sistema multi-evento por ID (`default`, `mina`, `nether`, etc.) - ✅ Scheduler independiente por evento - ✅ Mensajes 100% editables en MiniMessage - ✅ BossBar con progreso en tiempo real - ✅ Sistema de contribución individual - ✅ TOP final con recompensas por posición - ✅ Recompensas por porcentaje acumulado - ✅ Protección inteligente de bedrock fuera del evento - ✅ Placeholders para HUD, Scoreboard y Menús - ✅ Estadísticas guardadas por jugador - ✅ Soporte completo para PlaceholderAPI
---
✅ Compatibilidad
- Java 17+ - Paper/Spigot 1.20+ - PlaceholderAPI (opcional, recomendado)
---
⚙️ Instalación
1. Compila o descarga el `.jar`. 2. Copia el archivo en `plugins/`. 3. Inicia el servidor para generar `config.yml` y `lang.yml`. 4. Edita configuración y mensajes. 5. Ejecuta `/dtc reload` para aplicar cambios.
---
⌨️ Comandos
| Comando | Descripción | Permiso | |---|---|---| | `/dtc start [id]` | Inicia un evento por ID (`default`, `mina`, etc.) | `dtc.admin` | | `/dtc stop [id]` | Detiene el evento activo (opcionalmente validando ID) | `dtc.admin` | | `/dtc info [id]` | Muestra información del evento/perfil | `dtc.admin` | | `/dtc time` | Muestra tiempo y ID del próximo evento programado | `dtc.admin` | | `/dtc top` | Muestra ranking del evento activo | `dtc.admin` | | `/dtc reload` | Recarga config y mensajes | `dtc.admin` |
---
🧩 Placeholders (`%dtc_*%`)
| Placeholder | Descripción | |---|---| | `%dtc_blocks_broken%` | Bloques rotos por el jugador | | `%dtc_blocks_remaining%` | Bloques restantes del núcleo | | `%dtc_blocks_total%` | Vida total del núcleo | | `%dtc_my_contribution%` | Contribución del jugador en % | | `%dtc_global_stats%` | Valor global de contribución del jugador | | `%dtc_minutes_until_event%` | Minutos aproximados hasta el próximo evento | | `%dtc_time_until_event%` | Tiempo restante formateado | | `%dtc_next_event%` | Hora del próximo evento (`HH:mm`) | | `%dtc_event_active%` | `true` / `false` si hay evento activo | | `%dtc_event_time_left%` | Tiempo restante del evento activo |
---
🗂️ Configuración recomendada
1) Perfil de núcleo por evento
Se define en `Events.<id>`:
```yml Events: default: CoreHealth: 5 CoreMaterial: OBSIDIAN Location: world: "world" x: -174 y: 48 z: -24 break-sound: BLOCK_BEACON_DEACTIVATE break-sound-volume: 1.0 break-sound-pitch: 1.0 ```
2) Scheduler por evento (estructura única)
```yml Schedule: TimeZone: "UTC" Events: default: ActiveDays: ["SUNDAY"] Times: ["03:00"] mina: ActiveDays: ["MONDAY"] Times: ["01:00"] ```
- Formato de hora: `HH:mm` - Si falta configuración de horarios, el plugin no crashea; registra debug `[DTC-DEBUG]` y no programa ese evento.
3) Recompensas por golpe (umbrales acumulados)
```yml Core: hit-rewards: "30": - give %player% diamond 1 "60": - give %player% netherite_ingot 1 "90": - give %player% emerald 1 "100": - give %player% enchanted_golden_apple 1 ```
Interpretación: 30% / 30% / 30% / 10%.
4) Control al finalizar evento
```yml Core: replace-on-end: true ```
- `true`: reemplaza el núcleo por bedrock al terminar. - `false`: no reemplaza automáticamente.
---
💬 Mensajería (MiniMessage)
`lang.yml` acepta MiniMessage:
- `<red>Texto</red>` - `<bold>Texto</bold>` - `<gradient:#ff0000:#00ffff>Texto</gradient>`
---
🧾 Changelog reciente
v2.0.0
- Nuevo sistema de MiniMessage (`start/info/stop` con `id`). - Scheduler por evento con `Schedule.Events.<id>.ActiveDays` y `Times`. - Soporte completo de MiniMessage en mensajes (`lang.yml`) y textos de config usados por el plugin. - `/dtc time` ahora soporta `%event_id%` además de `%time%` en `Messages.NextTimeCommand`. - Fix de `Core.hit-rewards` por umbrales acumulados (config y lectura consistentes). - Clave explícita `Core.replace-on-end` para controlar reemplazo al terminar evento. - Corrección de errores de compilación por imports y genéricos. - Cancelación correcta de tareas para evitar duplicados tras reload. - Null-safety en PlaceholderAPI cuando no hay jugador en contexto. - Limpieza del mapa de cooldown en protección de bedrock.