GameStateUpdater class should only perform game logic via events
All of the game processing logic should be added as events. These events can still be added and created by the GameStateUpdater, but it should all be done via events. Events will need to be created before the event processing. Packet crafting will still need to be done after event processing.
Essentially no game logics should take place directly in the GameStateUpdater class.