Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Adds a bunch of concurrency safety to critical paths in the java client. Mostly this involves relying on concurrent collections, the AtomicFoobar classes, and locking around important variables.
Additionally, deathlink handling is moved to some convenience methods on the Client class, rather than static methods on a static class, since that just had gobs of issues with that design.
Finally, added a way to easily inject additional bouncepacket protocols, such as those for ringlink and traplink. No handlers for those protocols are currently included, but it should be easy to add them if desired.