Recorrido completo · de cero a producción

GUÍA COMPLETA

Todo el plugin en orden: requisitos, instalación, primera arena, partida de prueba, PCW, Parkour, permisos y personalización. Cada bloque de comandos se puede copiar tal cual.

Paper 26.1.2 Java 25 Una edición: Free o Premium Un solo JAR con 4 módulos

Antes de empezar: lista de comprobación

Este orden evita los errores más comunes: arenas sin guardar, permisos regalados y pruebas en el servidor equivocado.

Servidor correcto

Paper 26.1.2 o superior (API 26.1) y Java 25. El proyecto se compila con maven.compiler.release=25; una Java anterior no carga las clases.

Una sola edición

Instala únicamente ProtectTheCore-Free-2.0.1-SNAPSHOT.jar o ProtectTheCore-Premium-2.0.1-SNAPSHOT.jar. Dos JAR del mismo plugin en plugins/ provocan comandos y tareas duplicadas.

Dependencias opcionales

Multiverse-Core, LuckPerms, Vault y PlaceholderAPI son softdepend: el plugin arranca sin ellas. Se recomiendan LuckPerms (rangos) y PlaceholderAPI (prefijos y placeholders).

Copia de seguridad

Antes de actualizar, copia plugins/ProtectTheCore/, la base de datos y la carpeta Mapas/. Prueba primero en staging con la misma versión de Paper.

Servidor de pruebas

Usa cuentas reales para validar TAB, belowname, scoreboard y permisos: parte del formato se decide en el cliente. Un bot o la consola no sustituyen esa prueba.

Sin permisos regalados

ptc.rank.owner solo para el dueño; ptc.rank.admin para administración; nunca entregues ptc.*, ptc.admin, ptc.event ni ptc.arena.repair a compradores.

Artefactos de esta versión: target/free/ProtectTheCore-Free-2.0.1-SNAPSHOT.jar y target/premium/ProtectTheCore-Premium-2.0.1-SNAPSHOT.jar. Se compilan con .\mvnw.cmd clean verify -Pfree y .\mvnw.cmd clean verify -Ppremium.

Paso 1 · Instalar y comprobar el arranque

La consola debe confirmar edición, versión, proveedor de permisos y base de datos antes de tocar ninguna arena.

  1. Detén el servidor de forma limpia y coloca un solo JAR en plugins/.
  2. Arranca y revisa la consola: edición FREE o PREMIUM, versión 2.0.1-SNAPSHOT, aviso [TAB], aviso de anuncios, conexión [Database] y proveedor de permisos detectado.
  3. Ejecuta /ptc para ver la ayuda paginada y /ptc help admin para los comandos de administración.
  4. Configura el lobby central desde la ubicación exacta donde quieres recibir a los jugadores.
  5. Crea los grupos de permisos antes de abrir el servidor (paso 6 de esta guía).
# En el servidor, como administrador:
/ptc setlobby

# Comprobaciones útiles:
/ptc db status
/ptc list
/ptc rangos
/ptc reload
Arranque correcto: el plugin crea plugins/ProtectTheCore/ con config.yml, mensajes_es.yml, chat_es.yml y las carpetas PTC-Games/, PTC-Clanes/, PCW-Core/, Parkour-Core/ y Shared/. Si aparece un error de YAML, corrige el archivo indicado antes de continuar.

Paso 2 · Crear una arena PTC completa

Ejemplo real con la arena Clasica y cuatro equipos. Ejecuta los comandos en este orden y colócate en el punto exacto antes de cada uno.

Secuencia completa (copiar y adaptar)
/ptc create Clasica 4
/ptc wand
/ptc select map Clasica
# Clic izquierdo en una esquina (Pos1) y clic derecho en la opuesta (Pos2).
# Al segundo clic, PTC guarda los límites y analiza el mapa automáticamente.

/ptc setspawnarena Clasica
/ptc setspectatorspawn Clasica

/ptc setspawn Clasica rojo
/ptc setspawn Clasica azul
/ptc setspawn Clasica verde
/ptc setspawn Clasica amarillo

# Mira un bloque de diamante (a menos de 10 bloques) antes de cada línea:
/ptc core Clasica rojo set
/ptc core Clasica azul set
/ptc core Clasica verde set
/ptc core Clasica amarillo set

# Mira una piedra del End o un marco de portal del End:
/ptc shop Clasica set

# Refuerza la protección de mesas de cada equipo:
/ptc protectenchant Clasica set
/ptc protectcraft Clasica set

# Granjas exactas (opcional, cantidad entre 5 y 10 por defecto):
/ptc setfarmspawn Clasica rojo pig 5
/ptc setfarmspawn Clasica azul cow 8

# Hora, clima y ciclo (menú con clics):
/ptc arena config Clasica
# Alternativa directa para la hora:
/ptc selectmap-time Clasica day

# Regeneración de minerales y madera cada 15 minutos:
/ptc setregen Clasica 900

# Verificar, guardar la copia base y habilitar:
/ptc validate Clasica
/ptc arena Clasica save
/ptc enable Clasica

Qué hace cada bloque

Crear y elegir equipos

/ptc create <nombre> [equipos] admite de 2 a 15 equipos. Los nombres aceptan el color en inglés o su nombre visible: rojo, azul, verde, amarillo, aqua, dorado, rosa, morado, azul oscuro, verde oscuro, cian, granate, gris, gris oscuro y naranja. La capacidad recomendada inicial es de 8 jugadores por equipo.

Límites y análisis automático

La varita marca el cubo de la arena. El segundo clic ejecuta /ptc map confirm y retira la varita. PTC añade arena-map.selection-vertical-padding (24 bloques por defecto) arriba y abajo, analiza todos los bloques reales y registra minerales, madera y mesas de encantamiento dentro del área. Espera el mensaje de fin de análisis antes de seguir.

Sala de espera y espectadores

/ptc setspawnarena guarda la sala de espera en tu ubicación actual; /ptc setspectatorspawn fija el punto seguro de espectadores. Son ubicaciones distintas del lobby central y de los spawns de equipo.

Spawns y núcleos

Cada spawn se guarda donde estás de pie. El núcleo debe ser un bloque de diamante dentro de los límites; al guardarlo, PTC crea una COREZONE automática de radio 8 y altura 5 que protege el área. Si el bloque no está dentro del cubo de la arena, el comando se rechaza.

Tienda y mesas

La tienda se registra mirando una END_STONE o un END_PORTAL_FRAME. Las mesas de encantamiento dentro de la arena ya quedan protegidas por el análisis; protectenchant set añade todas las mesas alrededor de cada spawn, núcleo y región BASE más la que estés mirando. Las mesas de trabajo no se detectan solas: usa protectcraft set.

Granjas, hora y clima

Las granjas reponen solo los animales que faltan cada farms.check-interval-seconds (5 s). /ptc arena config permite fijar día, mediodía, atardecer, noche, medianoche o amanecer y desactivar el ciclo; también ofrece clima natural, despejado, lluvia o tormenta y su ciclo.

Guardar y habilitar

/ptc arena <arena> save crea la copia base .ptcmap v3 (solo el cubo de la arena, con SHA-256 y copia .bak). Sin copia base la arena no está lista. /ptc enable vuelve a comprobar límites, spawns, núcleos y copia; si falla, muestra el motivo exacto.

Validación previa

/ptc validate <arena> revisa límites, sala de espera, spawn y núcleo de cada equipo, regiones, capacidad y estado. Úsalo antes de guardar y después de cualquier cambio estructural.

Orden importante: límites → spawns y núcleos → tienda/mesas/granjas → validar → guardar copia base → habilitar. Si editas el mapa después de guardar, vuelve a entrar con /ptc selectedit-arena <arena>, termina con /ptc mapsave <arena> y guarda una copia nueva; la anterior no se actualiza sola.

Paso 3 · Probar la partida de principio a fin

Una arena validada todavía necesita una partida real: espera, equipos, economía, núcleos y restauración.

  1. Entra con /ptc join Clasica o usa /ptc join random para que el plugin elija una arena en cuenta atrás o con más jugadores.
  2. En la sala de espera, elige equipo con /ptc team rojo si tu rango tiene ptc.perk.choose-team; si no, PTC asigna equipos al iniciar.
  3. Vota la tienda y los eventos con /ptc vote si o /ptc vote no. Si nadie vota, la tienda queda habilitada.
  4. Inicia con /ptc empezar (permiso ptc.start) o espera a que se cumpla el mínimo y la cuenta atrás configurada.
  5. Comprueba tienda, kits, mejoras del núcleo, protección de spawn, regeneración de minerales/madera y granjas.
  6. Termina con /ptc end Clasica o destruyendo el último núcleo; espera la restauración y vuelve a entrar.
# Prueba con jugadores simulados (no altera recompensas reales):
/ptc test start Clasica 8
/ptc test stop Clasica

# Operación durante la partida:
/ptc arena Clasica status
/ptc arena Clasica pause
/ptc arena Clasica resume
/ptc end Clasica

# Reparación manual si una copia quedó incompleta:
/ptc arena Clasica repair
Qué debe pasar: al terminar, los jugadores pasan a la sala de espera tras 3 segundos y al lobby central tras otros 3. Si todos abandonan, la arena se restaura sola. Al restaurar se verifica bloque e inventario de contenedores; la segunda pasada completa es opcional (arena-restoration.verify-after-restore: false).

Paso 4 · PCW: guerra entre clanes

PCW usa una arena propia con una aparición numerada por clan. No comparte la copia ni la restauración de PTC Games.

# 1. Crear la arena PCW y una aparición por clan (slot 1-15):
/pcw arena create MapaClanes
/pcw arena setspawn MapaClanes 1
/pcw arena setspawn MapaClanes 2
/pcw arena setspawn MapaClanes 3
/pcw arena setspawn MapaClanes 4

# 2. Hora y ciclo de la arena (opcional):
/pcw arena time MapaClanes night
/pcw arena cycle MapaClanes off

# 3. El líder o co-líder crea la sala: 4 clanes, 3 jugadores por clan:
/pcw create 4 3 MapaClanes

# 4. Invitar a los otros clanes por tag:
/pcw inviteclan ABC
/pcw inviteclan XYZ

# 5. Cada líder acepta y confirma su clan:
/pcw accept
/pcw confirm

# 6. Invitar a los miembros conectados y que acepten:
/pcw invite Jugador1
/pcw join

# Ayuda y estado:
/pcw help admin
/pcw arena list

Límites por defecto

PCW-Core/config.yml: 2-15 clanes por partida, 1-15 jugadores por clan, 2 partidas simultáneas, fuego amigo desactivado, 15 Coins al clan ganador y objetos iniciales (espada de piedra, arco, 16 flechas, 16 panes).

Flujo de alineaciones

Solo entra quien fue invitado y acepta con /pcw join. La partida empieza cuando todos los clanes completan su cupo; gana el último clan con jugadores vivos.

Apariciones antiguas

Las arenas anteriores migran red y blue a los slots 1 y 2. Puedes cambiar el tamaño de cada alineación al crear la sala, siempre dentro de los máximos configurados.

Requisitos

Necesitas un clan y el permiso de clan correspondiente. PCW no ofrece copia de bloques ni reparación de mapa: prepara el mapa a mano y evita cambios destructivos durante la guerra.

Paso 5 · Parkour: cursos, placas y récords

Un curso pertenece a un mapa, tiene inicio, meta y checkpoints consecutivos. El premio y el cooldown se configuran aparte.

# 1. Crear el curso asignado a un mapa:
/pc create Mundo Parkour1

# 2. Recibir las placas de dificultad y colocarlas:
/pc wand Parkour1
# Primera placa: inicio. Segunda placa del MISMO material: meta.
# Madera = fácil, hierro = intermedio, oro = difícil.

# 3. Desde cada ubicación, guardar checkpoints consecutivos:
/pc checkpoint 1
/pc checkpoint 2
/pc checkpoint 3

# 4. Lobby opcional de Parkour:
/pc setlobby

# 5. Probar y publicar:
/pc list
/pc start Parkour1
/pc stop

# Hologramas y rankings:
/pc coreholograms Parkour1
/pc coreholograms topcoins
/pc coreholograms list

Dificultades

Madera (fácil), hierro (intermedio) y oro (difícil). Las dos placas deben ser del mismo tipo; PTC retira las restantes al cerrar el curso. También existen /pc setstart, /pc setfinish y /pc setcheckpoint como alternativa.

Recompensas por defecto

10 Coins por completar, cooldown de 1800 s, timeout de 1800 s, distancia de caída 8.0 y 10 XP PTC por checkpoint. Se editan en Parkour-Core/config.yml y se multiplican por el multicoins activo.

Inicio automático

Al pisar la placa de inicio configurada, la carrera comienza sin comando. Si el jugador cae, vuelve al último checkpoint; /pc stop cancela la carrera sin perder el inventario.

Hologramas

/pc coreholograms <curso> crea el top 10 del curso; topcoins, topcompletions, topstreak y topeasy crean rankings globales. list y remove <id> los administran.

Paso 6 · Permisos mínimos con LuckPerms

La jerarquía staff y los rangos VIP se asignan con nodos reales; PTC no crea grupos por sí solo.

# Dueño: todo, incluida la eliminación de arenas.
/lp creategroup dueno
/lp group dueno permission set ptc.rank.owner true
/lp user TuNick parent set dueno

# Administrador: crea y gestiona, pero NO elimina arenas.
/lp creategroup admin
/lp group admin permission set ptc.rank.admin true

# Moderador: eventos, reparaciones y chat de staff.
/lp creategroup moderador
/lp group moderador permission set ptc.rank.moderator true

# Ayudante: canal de staff y espectador.
/lp creategroup ayudante
/lp group ayudante permission set ptc.rank.helper true

# Ejemplo de un nivel VIP (crea los seis por separado):
/lp creategroup vip_hierro
/lp group vip_hierro permission set ptc.rank.vip-iron true
/lp group vip_hierro meta.parent set default
Seguridad: no des ptc.*, ptc.admin, ptc.event, ptc.arena.repair ni ptc.arena.delete a grupos de compradores. Los perfiles staff son acumulativos: Moderador hereda Ayudante; Administrador hereda Moderador; Dueño hereda todo. Los nodos VIP solo activan beneficios de juego y nunca administración.
Sin plugin de permisos: PTC detecta que no hay LuckPerms/Vault/PAPI y los OP conservan ptc.* con la etiqueta DevOP. No es el modo recomendado para producción. La consola indica el proveedor detectado al arrancar.

Paso 7 · Personalizar sin recompilar

Todo lo visible y casi todas las reglas viven en YAML. El plugin nunca reescribe tus archivos al cargar ni al recargar.

ArchivoQué controlaEjemplo
config.ymlLobby, cosméticos, anuncios, economía, almacenamiento, Tebex, granjas, análisis y restauración.announcements.intervals.ptc: 180
mensajes_es.ymlPrefijo, bienvenida, anuncios, ayuda paginada y respuestas de comandos.prefix: "&b&lPTC &7&l>> "
chat_es.ymlFormato del chat general y de partida.format: "{rank}{clan}{player}&7: &f{message}"
PTC-Games/tab_es.ymlLista TAB y belowname por contexto (lobby, espera, partida, espectador, parkour, PCW).belowname.contexts.game.lines
PTC-Games/scoreboard_es.ymlSidebar por contexto, placeholders y animaciones.titles.lobby, lines.game
PTC-Games/shop.ymlCatálogo de la tienda: categorías, iconos, precios, encantamientos y objetos especiales.items.*.price
PTC-Games/kits.ymlKits iniciales, armaduras y encantamientos por pieza.kits.berserker.*
PTC-Games/enchants.ymlNiveles máximos, costes y efectos personalizados (por ejemplo, rayos con Poder).custom-effects.power-lightning
PTC-Games/levels.ymlProgresión de nivel y recompensas por subida.max-level
PTC-Clanes/config.ymlCoste de fundación, nombres, invitaciones, solicitudes y tope de miembros.settings.max-members: 250
PCW-Core/config.ymlClanes y jugadores por partida, partidas simultáneas, fuego amigo, objetos y premio.settings.maximum-team-size: 15
Parkour-Core/config.ymlPremio, cooldown, timeout, caída, XP y lobby de Parkour.settings.xp-per-checkpoint: 10
# Aplicar cambios de YAML sin reiniciar:
/ptc reload

# Recargas específicas disponibles:
/ptc reload shop
/ptc reload kits
/ptc reload enchants
/pcw reload
/pc reload

# Diagnóstico si algo no se ve como esperas:
/ptc debug
/ptc db status
Regla del proyecto: un archivo guardado se respeta tal cual; las claves ausentes usan el valor empaquetado solo en memoria. Las migraciones de formato se aplican una vez en memoria y nunca sobrescriben tu diseño. Si cambias un valor predeterminado en el JAR, el YAML antiguo del servidor conserva el suyo.

Recomendaciones del proyecto

Prácticas que evitan pérdida de datos, lag y permisos excesivos en producción.

Backups antes de tocar mapas

Copia plugins/ProtectTheCore/, Mapas/, los mundos dedicados ptc_<arena> y la base de datos. Una copia base dañada se repara solo con otra copia válida.

Staging con el mismo Paper

Compilar sin errores no demuestra compatibilidad con tus plugins. Prueba TAB, scoreboard, protecciones, economía y restauración con las mismas versiones y mapas.

Guardar después de editar

Toda edición estructural (bloques, spawns, núcleos, regiones) necesita una copia nueva. Usa /ptc selectedit-arena → cambios → /ptc mapsave → /ptc arena <arena> save.

Presupuesto por tick

Si notes lag al analizar o restaurar, baja arena-map.analysis-max-millis-per-tick, arena-map.max-millis-per-tick o los lotes de bloques. Más bloques por tick acelera, pero sube la carga.

Base de datos adecuada

SQLite es suficiente para un servidor único. Para una red con varios servidores, usa MySQL/MariaDB y nunca publiques usuario, contraseña ni host en capturas o reportes.

Una edición por instancia

No mezcles Free y Premium. Si actualizas, reemplaza el JAR anterior; conserva solo el artefacto actual y elimina copias intermedias.

Rangos externos

PTC no muestra sus nombres VIP: el rango visible es el prefijo de LuckPerms/PAPI/Vault. Crea exactamente seis grupos y revisa /ptc rangos.

Permisos por mínimo privilegio

Ayudante solo observa y usa el chat de staff; Moderador repara y controla eventos; Administrador gestiona; Dueño elimina. No eleves un rango para “que funcione”.

Errores comunes y cómo resolverlos

La mayoría se explica por configuración incompleta. Lee primero el mensaje del comando y la consola.

SíntomaCausa habitualSolución
La arena no aparece en el selectorFalta límites, spawn, núcleo, copia base o está deshabilitada./ptc validate <arena>, completa lo marcado y termina con /ptc arena <arena> save y /ptc enable <arena>.
“La arena no está lista” al entrarRestauración pendiente, edición activa, llena o en partida.El staff ve el motivo exacto en el mensaje; espera la restauración o usa /ptc arena <arena> status.
No se puede romper una mesaEstá registrada como mesa protegida./ptc protectenchant <arena> list o protectcraft <arena> list; quita la que estés mirando con remove.
Una mesa nueva sí se rompeSolo se protegen las mesas guardadas con la arena.Vuelve a ejecutar /ptc protectenchant <arena> set o protectcraft <arena> set mirando la mesa.
La hora cambia durante la partidaEl ciclo día/noche sigue activo./ptc arena config <arena> y elige una hora; el ciclo se desactiva. También /ptc selectmap-time <arena> day.
Los troncos no regeneranEl intervalo no ha pasado, están fuera de la arena o en zona protegida.Espera resource-regeneration-seconds (900 s por defecto) o fuerza /ptc regen <arena>; revisa la lista con /ptc setregen.
“No such table” en la base de datosVersión antigua o esquema adelantado por una consulta.Actualiza al JAR actual; el esquema se crea antes de la primera consulta. Revisa /ptc db status.
El nombre sale duplicado sobre la cabezaJAR antiguo o belowname.enabled desactivado con una placa vanilla visible.Usa el JAR actual; con belowname activo PTC oculta la placa vanilla en todos los equipos y contextos.
TAB o scoreboard se ve distintoOtro plugin sustituye el scoreboard o los equipos.Prueba sin ese plugin y revisa tab_es.yml/scoreboard_es.yml; PTC reaplica la visibilidad de equipos cada tick, pero no puede impedir que otro plugin reemplace el scoreboard completo.
Coins no suben al instante/ptc coins solo cambia el saldo; las recompensas se pagan en eventos de juego.Verifica la recompensa configurada y el multicoins con /ptc multicoins; las compras y entregas Tebex no se multiplican.
Si nada de lo anterior coincide: activa /ptc debug, reproduce el problema y revisa la consola. Incluye la versión de Paper, la edición, la versión del JAR y el error completo al pedir soporte; nunca compartas contraseñas de base de datos.

Checklist final antes de abrir el servidor

Si todo está marcado, la instalación está lista para jugadores reales.

  1. Paper 26.1.2+ con Java 25 y una sola edición del plugin.
  2. Consola sin errores de YAML, base de datos ni dependencias obligatorias.
  3. /ptc setlobby configurado y probado con una cuenta nueva.
  4. Grupos de permisos creados; ningún comprador con nodos administrativos.
  5. Arena PTC validada, guardada y habilitada; partida de prueba completada y mapa restaurado.
  6. Al menos una arena PCW con sus apariciones y un curso Parkour con inicio/meta.
  7. TAB, belowname, scoreboard y mensajes revisados en el cliente real.
  8. Copias de seguridad automáticas de configuración, mapas y base de datos.