Add OfflineSerializable annotation
Add OfflineSerializable annotation to AirBarSerializer
Add OfflineSerializable annotation to LocationSerializer
Add skipOfflineSerializers param to serialize() and unserialize()
Serialization on quit and kick
Check if player is forced to log in before (un)serializating
Move updatePlayerGroup() call at the end of the method
Use write/readRootTagMap() methods in save-methods
Make saveInventory() take ItemStacks instead of Inventories
Add InventorySerializer
Remove OfflineSerializable annotation and related
Check if player is online before serializing on SessionEndEvent
Serialize player on PlayerJoin if not logged in and forced to log in
Do not delay teleporting
Do not use offline persistence restoring
Delay inventory restoring by 1 tick

Delaying is necessary to make sure the player has been teleported
to the right world.
Remove "inv_world" persistence key
Organize imports
Fix UnregisterCommand incorrectly sending end-session messages
Add PlayerUtils.isPlayerAt()