Looking nice keep it up!
---
In regards to the player customization. I don't know if you guys already know this, but each character slot utilizes an item container where the weapon being held is the second item.
Though, I don't know how/if the correct items are stored somewhere else, but you can set it via the server.
example: (mage uses 586)
Code:player.getPackets().sendItems(586, new Item[] {null, new Item(17293,1)});
obviously that's the wrong weapon, but yeah.
Sorry if that was common knowledge or wrong just took a quick look