1) The behaviour of online player lookups is unchanged - this only affects offline player data lookups.
2) If a 'offline player' request is made from an async task, it is executed normally. (the data is loaded)
3) If a 'offline player' request that cannot be immediately fulfilled is made from the main server thread, an exception is thrown.
The exception thrown as a result of 3) can be disabled in the config. In this case, the query is performed anyway. The main server thread will block until the request is complete.
* Event instances are now generated dynamically at runtime. The performance hit of creating proxies at runtime is negligible in this case.
* A better EventBus implementation is now being used internally, API contracts are unaffected.