GameStateChangeEvent
GameStateChangeEvent fires immediately before every game lifecycle transition. The game still reports the old state during listener execution.
Technical Overview
Section titled “Technical Overview”- Package:
dev.despical.snake.api.event.game - Parent Class:
SnakeEvent - Cancellable: Yes
| Method | Return Type | Description |
|---|---|---|
getGame() | Game | Game requesting the transition. |
getArena() | Arena | Arena changing state. |
getOldState() | GameState | State assigned before the transition. |
getNewState() | GameState | Requested destination state. |
getUser() | User | Current assigned user, which may be null during empty states. |
isCancelled() | boolean | Whether the transition is prevented. |
setCancelled(boolean) | void | Retains the old state when set to true. |
Possible states are INACTIVE, WAITING, IN_GAME, ENDING, and RESTARTING.
Cancelling an internal recovery transition such as RESTARTING can leave the game occupied. Only cancel a transition if your integration also manages the resulting lifecycle.
@EventHandlerpublic void onSnakeState(GameStateChangeEvent event) { if (event.getNewState() == GameState.IN_GAME && maintenanceMode) { event.setCancelled(true); return; }
getLogger().info(event.getArena().getId() + ": " + event.getOldState() + " -> " + event.getNewState());}