Tested, working.

You'll get to see my code changes really shortly.
OK!

Lots of files changed, thanks for that help Derision, really saved me some time. It only directly accesses the DB now when you add, and I'm following OOP rules properly, I think the methods and code are where they should be.
Now I'm looking for a suitable location to call Client::KeyRingLoad() from. Any suggestions? On zone load, or on character load? Where can I find those? Gonna keep looking.