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:
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.
Ejecutando: Cuando el juego y el mundo se están cargando. Los estados en ejecución pueden ocurrir varias veces.
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
The GameStoppingEvent is triggered.
This state occurs immediately before GAME_STOPPED
. Plugins providing an API should still be capable of accepting
basic requests.
GAME_STOPPED
The GameStoppedEvent is triggered. Once this event has finished executing, Minecraft will shut down. No further interaction with the game or other plugins should be attempted at this point.