- Player logout: Dismount from NPC mount before logout to prevent
orphaned mount state (ServerTickHandler)
- Teleportation: Dismount before cross-dimension teleport to prevent
mount being left behind in old dimension (NoppesUtilPlayer)
- Dead rider: Validate rider is alive, dismount dead/invalid riders
to prevent stuck mount state (NPCMountUtil)
- Role disable: Dismount rider when mount role is disabled to prevent
mounted player on non-mount NPC (RoleMount)
- Added Quest Completion Popup to questPartyCompletion()
- Added Quest Completion Message when the Party Quest is finished AND ping update
- AREA KILL Quest is currently BROKEN with Parties
-Renamed loadPlayerDataFromFile() to load(), and moved it next to the save() function for later addition to the API.
-Moved saving/loading to EP functions where they used to be.
-Removed now unused PlayerData.get() and loadPlayerDataOld() functions
ServerEventsHandler:
-Added new EntityConstructing event to add the PlayerData EP earlier.
NoppesUtilPlayer:
-questCompletion() now saves player data right before its return statement.
-Allows for the changing of several sound attributes, including volume, pitch, repeating, etc.
NpcAPI, IPlayer, IWorld:
-Added more sound functions, with sounds that can be stopped and started based on an ID.
IDialog:
-Added several new functions for dialogs' new visual attributes, as well as a way to add, get, create, remove, and clear dialog images.
Global NPC events:
-Added fields and variables from the old ScriptEvent events, in preparation to replace the old events with NpcEvent instances on local NPC scripts.
-Fixed issue where some event hooks would run on remote worlds.
Global NPC killed event:
-Added droppedItems and expDropped fields.
IWorld and NpcAPI:
-Now always uses a non-remove WorldServer object to create ScriptWorld objects and add them to the world cache.