Skip to content

Persistence

DarkBladeDev edited this page Feb 21, 2026 · 2 revisions

Persistencia

CEE persiste runtimes activos en plugins/CustomEventEngine/runtime.json.

Cuándo se guarda y carga

  • Carga: al iniciar el plugin (onEnable) se intenta cargar el snapshot.
  • Guardado: al apagar el plugin (onDisable) se guarda el snapshot.

En el estado actual del proyecto, no hay guardado periódico (aunque exista persistence.interval-seconds en config.yml).

Qué se guarda

Por cada runtime se guarda:

  • eventId
  • worldId
  • originX, originZ
  • Lista de chunks ocupados (x/z)
  • instructionPointer
  • waitRemaining
  • variables locales (runtime.getContext().getLocalVariables())

Notas:

  • Las variables globales no se guardan en runtime.json. Se re-inicializan desde definiciones globales al cargar eventos.

Restore y locks

Al cargar:

  1. Se busca el mundo por UUID.
  2. Se reconstruye un EventRuntime con:
    • el plan compilado del evento
    • el instructionPointer y waitRemaining
    • las variables locales del snapshot
  3. Se intenta retomar locks del snapshot (tryLock).

Si no se pueden tomar los locks, ese runtime no se restaura.

Operación: limpiar estados

Si runtime.json quedó en un estado inválido (crash/edición manual), puedes:

  • Borrar el archivo runtime.json.
  • Usar comandos purge para limpiar runtimes en ejecución.

Ver: Comandos

Clone this wiki locally