Ciclo de vida del Plugin

Antes de los estados que hacen que el complemento sea visible, el cargador de complementos primero ordena los complementos disponibles, determina si están presentes todas las dependencias y clasifica los complementos por orden de dependencia. Los eventos del ciclo de vida se dan a los complementos en este orden. Por ejemplo, el complemento A que contenga «[required-]after:B» obtendrá cada evento después de que el complemento B haya completado el trabajo para el estado dado. Además, los estados del ciclo de vida son globales. Esto significa que todos los complementos visibles entre sí deben pasar por todos los estados a la vez.

Advertencia

El objeto Sponge Server no siempre está disponible. La disponibilidad se puede verificar utilizando el método Sponge.isServerAvailable() o Game.isServerAvailable().

Eventos de Estado

Hay tres categorías de eventos de estado:

  1. Inicialización: Cuando Sponge y los complementos se están cargando, antes de que el juego haya comenzado. Los estados de inicialización solo ocurren una vez.
  2. Ejecutando: Cuando el juego y el mundo se están cargando. Los estados en ejecución pueden ocurrir varias veces.
  3. Parando: Cuando el juego se está cerrando. Los estados de parada, como los estados de inicialización, solo ocurren una vez.

Estados de Inicialización

Los estados de inicialización solo ocurren una vez durante una sola ejecución.

CONSTRUCCIÓN

El GameConstructionEvent se activa. Durante este estado, se desencadena la instancia de clase @Plugin para cada complemento.

PRE_INICIALIZACIÓN

El GamePreInitializationEvent se activa. Durante este estado, el complemento se prepara para la inicialización. El acceso a una instancia del registrador predeterminado y el acceso a la información con respecto a las ubicaciones preferidas del archivo de configuración están disponibles.

INICIALIZACIÓN

El GameInitializationEvent es desencadenado. Durante este estado, el complemento debe finalizar el trabajo necesario para poder ser funcional. Los controladores de eventos globales deben registrarse en esta etapa.

POST_INICIALIZACIÓN

El GamePostInitializationEvent se desencadena. En este estado, la comunicación entre complementos debería estar lista para ocurrir. Los complementos que proporcionan una API deberían estar listos para aceptar solicitudes básicas.

CARGA_COMPLETA

El GameLoadCompleteEvent se desencadena. En este estado, toda la inicialización del complemento debería completarse.

Estados de ejecución

Los estados en ejecución pueden ocurrir varias veces durante una sola ejecución. SERVER_ABOUT_TO_START puede seguir a SERVER_STOPPED, y SERVER_STOPPED puede ocurrir en cualquier momento durante el proceso si hay un error.

SERVER_ABOUT_TO_START

El evento GameAboutToStartServerEvent es desencadenado. La instancia del servidor existe, pero los mundos aún no están cargados.

SERVER_STARTING

El GameStartingServerEvent es desencadenado. La instancia del servidor existe, y los mundos están cargados. El registro de comando se maneja durante este estado.

SERVER_STARTED

El evento GameStartedServerEvent es desencadenado. La instancia del servidor existe, y los mundos están cargados.

SERVER_STOPPING

El GameStoppingServerEvent es desencadenado. Este estado ocurre inmediatamente antes del último tic, antes de que los mundos sean guardados.

SERVER_STOPPED

El GameStoppedServerEvent es desencadenado. Durante este estado, no hay jugadores conectados y no se guardan los cambios en los mundos.

Stopping States

Los estados de detención nunca ocurren más de una vez durante una sola ejecución. Ocurren cuando el juego se detiene normalmente. (En Servidores: se escribe el comando /stop. En Clientes: se hace clic en el botón «Close» o en el botón «Quit Game»)

Advertencia

No se garantiza que los estados de detención se ejecuten durante el apagado. No pueden disparar si el juego se detiene por la fuerza mediante Ctrl-C, o por el Administrador de Tareas, o un bloqueo de la computadora o situaciones similares.

GAME_STOPPING

El GameStoppingServerEvent se activa. Este estado ocurre inmediatamente antes de GAME_STOPPED. Los complementos que proporcionan una API deberían ser capaces de aceptar solicitudes básicas.

GAME_STOPPED

El GameStoppedServerEvent se activa. Una vez que este evento haya terminado de ejecutarse, Minecraft se apagará. No se debe intentar ninguna interacción adicional con el juego u otros complementos en este punto.