Releases: qixils/java-crowd-control
v3.3.1: Java 8 Support
The minimum Java version used by the project's libraries has been dropped to 8 to increase compatibility with legacy software.
Full Changelog: v3.3.0...v3.3.1
v3.3.0: The Sender Library
Sender Library
Receiving Crowd Control effects is fun and all, but what if you want to set up unit tests to make sure you're processing effects correctly, or maybe even create fake connected clients that just randomly apply effects to the player(s)?
Introducing the Sender library! This library acts as a Crowd Control service and allows you, the developer, to send arbitrary requests to connected video game instances. This works with the original Receiver library and anything else that uses one of the simple TCP connectors. It is available now via maven central and some documentation on it can be found in the usual place.
Breaking Changes
Some minor breaking changes were made in this release.
- The library previously known as
java-crowd-control
is nowcrowd-control-receiver
. You should update your maven dependency files accordingly. - Constructors of various classes (including CrowdControl, Request, and Response) have been changed or made package-private. These should generally be avoided in favor of the provided filters, however this should be the final iteration of the constructors.
- CrowdControl's builder classes have been repackaged.
v3.2.1: Improved Checks
What's Changed
- Create CheckResult in #29
- Make TimedEffect#isActive varargs in #30
- Improve javadocs in #31
- Complete USAGE.md documentation in #32
- Vulnerability scanning & Dependabot in #33
Full Changelog: v3.1.0...v3.2.1
Breaking Changes
As seen in #29, the #registerCheck
methods now expect CheckResult
to be returned instead of Boolean
. This makes their result much more clear so you don't have to constantly refer back to the javadocs to remember which is to block a request and which is to allow it. Unfortunately this is technically a breaking change, as due to how Java works, creating overloads for the legacy booleans is not possible. Thankfully, checks are only used sparingly and so this should be an easy update.
Note: v3.2.0 was skipped because I messed up the release and don't feel like properly fixing it 😅
v3.1.0: Error Messages & Login Feedback
v3.0.0: SimpleTCPClientConnector
Full Changelog: v2.1.3...v3.0.0
A lot of the library has been overhauled to support running in client mode (in which the library connects to a singular central server) or server mode (in which the library acts as a central server for streamers to connect to). All of the code changes can be found in #23. The README has been updated with a detailed guide for how to use the library.
Migration from v2
Migration from v2.x is fairly simple. The biggest change is using one of the #client()
or #server()
builder methods on the CrowdControl class instead of instantiating the CrowdControl class. See the documentation for more information.
java-crowd-control v2.1.3
Full Changelog: v2.1.2...v2.1.3
Adds TimedEffect#isActive(String)
to determine if a timed effect with the given effect name is currently running.
java-crowd-control v2.1.2
Full Changelog: v2.1.1...v2.1.2
TimedEffect has received further fixes to ensure compatibility with the Crowd Control server and has had some of its documentation improved.
java-crowd-control v2.1.1
This is a minor release which fixes an issue with TimedEffect sometimes failing to send a Response to the CC server.
v2.1.0: Easy Queued Effects
As of writing, the library is effectively feature-complete 🎉 A new class has been added which allows easily creating exclusive effects which only allow one of each exclusive effect to be run at a time. You can specify the effect duration and even pause or unpause it.
v2.0.0: Timed Effect Support
Version 2 of this library contains some breaking API changes which allow effect handlers to return responses at an unspecified later time. This has allowed support for timed effects that expire after a set duration. A wrapper to make this functionality easier will be implemented at a later time.