⚔️ 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
- Compila o descarga el
.jar. - Copia el archivo en
plugins/. - Inicia el servidor para generar
config.ymlylang.yml. - Edita configuración y mensajes.
- Ejecuta
/dtc reloadpara 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>:
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)
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)
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
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 multi-evento por ID (
start/info/stopconid). - Scheduler por evento con
Schedule.Events.<id>.ActiveDaysyTimes. - Soporte completo de MiniMessage en mensajes (
lang.yml) y textos de config usados por el plugin. /dtc timeahora soporta%event_id%además de%time%enMessages.NextTimeCommand.- Fix de
Core.hit-rewardspor umbrales acumulados (config y lectura consistentes). - Clave explícita
Core.replace-on-endpara 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.
Совместимость
Ссылки
Создатели
Детали
Лицензия:LicenseRef-All-Rights-Reserved
Опубликован:6 месяцев назад
Обновлён:3 недели назад

