Removed org.bouncycastle libraries to reduce filesize significantly.
Fixed NPE trying to tab-complete nonexistent commands.
Cleaned up world-change/respawn logic and fixed respawning (fixes #102).
Suppressed warnings in TagType to placate javac.
Set item tables's hash map initial capacity to 512 to speed registration.
Made todo comments more uniform.
Use EventFactory in StatusRequestHandler, minor EventFactory cleanup.
Call weather and thunder change events.
Added /tellraw command (closes #124).
Changed offline-mode UUID to match Vanilla.
Added drop information for blocks with non-standard drops (see #98).
Properly implemented experience/levelling math (fixes #117).
Changed entity initialization to take location rather than server and world.
Split player data out of WorldMetadataService (partially done):
- GlowServer has an accessor for the main world's PlayerDataService.
- PlayerDataService handles all I/O of online and offline player data.
- Better OfflinePlayer support, more on the way.
- Unfinished improved initial player load support.
Further player data stuff:
- OfflinePlayer loads data from data service on construction.
- GlowSession is responsible for constructing the player.
- NbtSerialization's world and location lookup improved.
- PlayerReader now has all the important stuff.
Use PlayerReader and PlayerProfile to create GlowPlayers (fixes #113).
- PlayerProfile holds name, UUID, and properties and is used where these are required.
- Player's location is now read before their entity is constructed.
- Moved initial isActive check into GlowSession.
- Profile is now part of HumanEntity rather than Player.
Completely revamped entity storage system (fixes #115).
- Some missing fields (velocity, UUID) were added to the entity classes.
- More NBT tags are written and read and unsupported ones are documented.
Added more MetadataIndex values, tests, and changed Tameable handling.
Minor cleanup and fixes and better NbtSerialization documentation.
Many changes to support actual entity spawning:
- Entity location and previousLocation are now tracked more correctly.
- GlowItem is now spawnable and uses metadata for storing its item.
- Chunks now track what entities they contain.
- World I/O now loads and saves entities.
- GlowEntity getType() has been left abstract.
- EntityManager's allocation code improved.
- Non-player entities are ticked before players.