Saltar al contenido principal

Configuración inicial de MegaBlock Survivors

La configuración de MegaBlock Survivors usa paquetes de contenido gestionados por Nightbreak. FreeMinecraftModels es necesario para los mobs y las armas de las partidas, aunque el descriptor del plugin lo declare como dependencia opcional.

Requisitos​

  • Java 21
  • Un servidor compatible con tu compilación de MegaBlock Survivors. El descriptor declara la API 1.21.4, pero el código actual se compila contra Spigot 26.2; el descriptor por sí solo no es una lista de versiones compatibles.
  • FreeMinecraftModels y los paquetes de modelos y contenido necesarios para jugar
  • WorldEdit para los esquemas de torres, muros y árboles que pega la generación de mundos. El plugin llama directamente a la API de WorldEdit, pero el descriptor no lo declara como dependencia
  • Soporte nativo funcional de minecraft:dialog para las pantallas de selección y recompensas

Integraciones opcionales:

  • LibsDisguises: dependencia opcional para funciones visuales adicionales

Qué crea MegaBlock Survivors​

Al arrancar, MegaBlock Survivors inicializa o usa estas rutas dentro de plugins/MegaBlockSurvivors/:

plugins/MegaBlockSurvivors/config.yml
plugins/MegaBlockSurvivors/translations.yml
plugins/MegaBlockSurvivors/content_packages/
plugins/MegaBlockSurvivors/content_markers/
plugins/MegaBlockSurvivors/imports/
plugins/MegaBlockSurvivors/schematics/
plugins/MegaBlockSurvivors/worlds/
plugins/MegaBlockSurvivors/npcs/
plugins/MegaBlockSurvivors/leaderboard.yml
plugins/MegaBlockSurvivors/meta_progression.yml
plugins/MegaBlockSurvivors/stats-dump.log
plugins/MegaBlockSurvivors/version.txt
plugins/MegaBlockSurvivors/nightbreak-changelogs.yml

nightbreak-changelogs.yml guarda el estado de lectura compartido de las notas de versión que usa /mbschangelog (consulta Comandos).

También carga un mundo de vestíbulo creado por el administrador, llamado mbs_spawn, si su carpeta existe en disco y el mundo aún no está cargado. Instala ese vestíbulo antes de iniciar el plugin. Cuando no está disponible:

  • El holograma de clasificación, situado en (4.5, 67, -14.5) de mbs_spawn, no aparece y genera un mensaje informativo en el registro.
  • El teletransporte al conectarse no hace nada. Cuando el vestíbulo está cargado, intenta enviar al jugador a (0.5, 65, 0.5), con yaw 180, si no tiene un registro de partida o el nombre de su mundo actual empieza por megablocksurvivors_. Tener una partida activa no basta para omitir esta condición.
  • La limpieza posterior a la partida usa la ubicación previa del jugador en lugar del vestíbulo.

Configuración​

config.yml contiene:

ClaveTipoPredeterminadoDescripción
setupDonebooleanofalseRegistra si se ha completado la guía de configuración inicial
preGenerateWorldCachebooleanofalseGenera por adelantado los mundos de supervivencia durante el arranque. Déjalo en false para aligerar el inicio del servidor; los mundos siguen generándose bajo demanda cuando una partida los necesita
nightbreak.autoDownloadPluginUpdatesbooleanofalseLo añade la biblioteca MagmaCore incluida en el JAR después del arranque. Con true, una actualización disponible del plugin se descarga automáticamente unos minutos después del arranque. Las descargas automáticas del plugin requieren un token válido de cuenta de Nightbreak y una suscripción activa de colaborador
nightbreak.applyPluginUpdatesWithoutRestartcadenaneverLo añade MagmaCore. never espera al siguiente reinicio, when-empty aplica una actualización descargada la próxima vez que no haya jugadores conectados e immediately la aplica de inmediato. Aplicar una actualización recarga MegaBlock Survivors y termina las partidas activas. /mbs applypluginupdate aplica a mano una actualización en espera

Consulta Actualizaciones automáticas para saber cómo se comportan los ajustes compartidos de actualización en los plugins de Nightbreak.

Traducciones​

Muchos mensajes del juego, diálogos, barras de jefe y textos de hologramas usan translations.yml. Algunos mensajes de paquetes de contenido, descripciones de comandos compartidos y textos de clasificación siguen fijados en inglés. Las funciones de traducción admitidas incluyen:

  • Códigos de color con el prefijo & y secuencias hexadecimales &#RRGGBB.
  • Etiquetas de degradado de MagmaCore como <gradient:#FF0000:#00FF00>text</gradient>.
  • Marcadores {placeholder} que el plugin sustituye durante la ejecución.
  • Las claves ausentes se muestran como un marcador visible [translations: key.name] para facilitar su localización dentro del juego.

El archivo se regenera con las entradas predeterminadas en el primer arranque y al recargar el plugin, por lo que los textos nuevos aparecen automáticamente.

Datos persistentes de jugadores​

ArchivoPropósito
leaderboard.ymlEntradas de clasificación por categoría: 6 secciones, con 2 modos de juego por 3 dificultades, limitadas a 100 entradas por categoría.
meta_progression.ymlSaldo de ecos de alma y niveles de las líneas de mejora de cada jugador. Usa el UUID del jugador como clave.
stats-dump.logRegistro de resúmenes en JSON Lines, ampliado al cerrar cada partida. /mbs dump vacía el archivo compartido antes de buscar la partida actual o más reciente de quien lo ejecuta. Aunque no exista resumen, el registro anterior se borra.

Carpetas de contenido​

CarpetaPropósito
imports/Carpeta de entrada para archivos de contenido descargados o colocados manualmente. El importador de MagmaCore los procesa al arrancar y con /mbs reload.
schematics/Esquemas de estructuras usados en la generación del mundo. Sus nombres siguen Level<1-3>_<Name>.schem: Tower, Wall / Wall1 / Wall2 y Tree1..Tree5. Los mundos 1 y 3 incluyen 4 variantes de árboles, y el mundo 2 incluye 5. La arena del jefe final no usa esquemas.
worlds/Carpetas de mundos instaladas por los paquetes de contenido.
content_packages/Definiciones YAML de cada paquete; consulta más abajo.
content_markers/Archivos marcadores que permiten detectar si un paquete ya está instalado.

Aviso de configuración inicial​

Cuando setupDone es false, el plugin muestra un aviso de configuración inicial a los jugadores con el permiso megablocksurvivors.* al conectarse. El aviso se configura mediante NightbreakFirstTimeSetupSpec únicamente con un comando de configuración, por lo que dirige a /mbs setup, el explorador de contenido, sin pasar por un paso de inicialización o descarga. Esta compilación no registra /mbs initialize; sí registra /mbs downloadall, pero solo obtiene el JAR del plugin porque los paquetes de contenido están deshabilitados en ese comando. Consulta la página de comandos y usa /mbs setup.

Abrir el explorador de contenido no establece setupDone. El menú que escribe ese indicador solo se alcanza mediante el controlador initialize, que no está registrado. Tras completar y comprobar la configuración, establece setupDone: true en config.yml y recarga el plugin para detener el recordatorio.

Guarda tus objetos habituales antes de iniciar una partida y usa un inventario dedicado al minijuego. La implementación actual sobrescribe la armadura del pecho y vacía todo el inventario al cerrar la partida, sin restaurar los objetos anteriores. También restablece los atributos, la salud, el hambre y la saturación, y elimina los efectos de poción.

  1. Instala MegaBlock Survivors y arranca el servidor una vez. Los archivos de traducción y configuración se escriben en el primer arranque.
  2. Vincula tu cuenta de Nightbreak con /nightbreaklogin <token>.
  3. Ejecuta /mbs setup para abrir el explorador de contenido de Nightbreak e instalar los paquetes necesarios. Comprueba que FreeMinecraftModels carga sus modelos; el estado instalado del paquete solo comprueba las rutas registradas.
  4. Ejecuta /mbs reload tras importar manualmente o editar la configuración de paquetes. Reinicia MegaBlock Survivors y termina las partidas activas. Si se importan modelos durante esta recarga y FreeMinecraftModels está habilitado, también se recarga el contenido de FMM. Para archivos editados o copiados directamente en las carpetas de FMM, utiliza su propio comando de recarga.

/nightbreaklogin <token> pertenece al sistema compartido de cuentas de Nightbreak/MagmaCore, no al plugin.yml de MegaBlock Survivors.

Paquetes de contenido​

Los paquetes de contenido se configuran mediante archivos YAML en content_packages/. Cada paquete puede definir:

CampoTipoDescripción
isEnabledbooleanoMetadato guardado; la detección actual de instalación usa la presencia de los recursos y no lo aplica como interruptor de juego
namecadenaNombre visible del paquete
descriptionlista de cadenasLíneas de descripción
downloadLinkcadenaURL de descarga manual
versionenteroNúmero de versión del paquete
nightbreakSlugcadenaSlug del contenido de Nightbreak para descargas automáticas
schematicFileslista de cadenasArchivos de esquemas incluidos en el paquete
worldFolderslista de cadenasCarpetas de mundos incluidas
worldContainerFolderslista de cadenasCarpetas contenedoras de mundos incluidas
modelFolderslista de cadenasCarpetas de modelos para FreeMinecraftModels
markerFileNamecadenaArchivo marcador para detectar si el paquete está instalado
categoryenumFREE, PREMIUM o RESOURCES
toggleablebooleanoSu valor predeterminado es false. El manejador actual de desinstalación siempre da instrucciones de eliminación manual; este indicador no ofrece una desactivación funcional

Un paquete cuenta como instalado si registra al menos un recurso y todos están presentes. Se comprueban rutas, no el contenido de los archivos ni que los modelos estén listos; una carpeta en el directorio de modelos deshabilitados de FreeMinecraftModels también cuenta. Si faltan algunos recursos, el estado es de instalación parcial. Pulsar un paquete instalado y actualizado muestra instrucciones de limpieza manual; cambiar solo isEnabled no deshabilita sus recursos de juego importados.

Configuración de NPC​

Los NPC se configuran mediante archivos YAML en npcs/. Los NPC registrados reaparecen al recargar su chunk. Si su mundo no estaba disponible durante la inicialización, cárgalo y recarga MegaBlock Survivors para registrarlos. Hacer clic derecho ejecuta su interactionCommand como el jugador y con sus permisos.

El plugin incluye dos NPC que aparecen automáticamente en mbs_spawn cuando ese mundo está cargado:

NPCUbicación predeterminadaDisfrazComando de interacción
Inicio de partidambs_spawn, 0, 67, -15VILLAGERmbs start
Progresión permanentembs_spawn, -9, 66, -13PIGLINmbs meta

Puedes deshabilitarlos, moverlos o cambiar su acción editando su YAML en npcs/ y recargando el plugin. Con LibsDisguises, el NPC usa un aldeano como entidad base y el disfraz configurado. Sin él, intenta usar el tipo de entidad Bukkit configurado y recurre a un aldeano si no es una entidad viva que se pueda generar.

Campos YAML de los NPC​

CampoTipoDescripción
isEnabledbooleanoDetermina si aparece el NPC
namecadenaNombre interno
locationcadenaFormato world,x,y,z o world,x,y,z,yaw,pitch
disguisecadenaTipo de entidad de LibsDisguises, opcional
interactionCommandcadenaComando ejecutado cuando un jugador hace clic derecho en el NPC
nameTagcadenaNombre personalizado visible de la entidad NPC; admite códigos de color

Notificaciones de actualización de versión​

Cuando la versión actual es posterior a la guardada en version.txt, el plugin avisa a la consola y a los operadores conectados. El primer arranque sin versión guardada, una versión sin cambios o una vuelta a una versión anterior no generan este aviso de actualización.