Releases: qixils/java-crowd-control
Releases · qixils/java-crowd-control
java-crowd-control v3.6.1
What's Changed
- New CC2 APIs!
- Added
Request.Source#login
for getting the username or ID of the user in the game. Requires support from CS file. - Added new internal fields to Request for
Type#LOGIN
- Added new fields to Response for emitting
PacketType#GENERIC_EVENT
s:data
,eventType
, andinternal
- Added
- Added
CrowdControl#getConnections
for getting all theSocketManager
s connected to the server - Added
SocketManager#getSource
for directly getting theRequest.Source
of a standaloneSocketManager
Full Changelog: v3.6.0...v3.6.1
java-crowd-control v3.6.0
What's Changed
- ✨ New CC2 APIs!
- Added
Request#getSource
to get theRequest.Source
(IP andRequest.Target
) of the streamer through which an effect was purchased - Added
CrowdControl#getSources
to get all the connectedRequest.Source
s - Added
Request.PacketType.REMOTE_FUNCTION
to trigger remote functions defined in the pack's CS - Added
Request#getQuantity
andRequest#getQuantityOrDefault
- Added
- 🧹 Lowered slf4j-api dependency from 2.x to 1.x to support older logging platforms
- 🧹 Removed several class constructors in favor of their builder classes
Full Changelog: v3.5.3...v3.6.0
java-crowd-control v3.5.3
What's Changed
- ✨ Added
Request.Type.PLAYER_INFO
for identifying who a connected streamer is (a proper API for this will be created once the CC-side implementation is finalized) - ✨ Added callbacks to
TimedEffect
for listening to calls to#pause
/#resume
- ✨ Added
TimedEffect#[pause/resume]All
for i.e. pausing all effects during a loading screen - 🧹 Renamed the method in
@Subscribe
fromeffect
tovalue
(to allow omitting the method name) - 📜 Refactored example project from pseudo-code to a proper compiled file to ensure it is updated with new API versions
Full Changelog: v3.5.2...v3.5.3
java-crowd-control v3.5.2
What's Changed
- ✨ Added response packet type for effect statuses, used to show/hide effects or to mark them as (un)selectable
- ✨ Response IDs are now expected to be non-zero for effect results and zero for most everything else, in accordance with Crowd Control's new Simple TCP protocol documentation
- ✨ Refactored Request.Target for Crowd Control 2.0 (made fields nullable and created a builder)
- ✨ Created a Respondable interface for classes implementing
Response.Builder buildResponse()
- 🐛 Fixed disconnected clients lingering around as if they were still connected but constantly throwing errors
- 🧹 Removed some annotations marking methods as internal, especially relating to the PacketType of a Response
Full Changelog: v3.5.1...v3.5.2
java-crowd-control v3.5.1
What's Changed
- 🐛 Fixed a Javadoc issue
- 🧹 Marked constructors for
Request
andResponse
asExperimental
to encourage usage of their builders instead
Full Changelog: v3.5.0...v3.5.1
v3.5.0: It's *time* for an update!
What's Changed
- ✨ Added support for streamer-defined effect durations
- ✨ Migrated the
timeRemaining
field ofResponse
tojava.time.Duration
fromlong
for consistency - ✨ Updated
TimedEffect
and its builder to support the aforementioned features - ✨ Added new configuration options to the
TimedEffect
builder which can allow multiple timed effects of the same type to run at once - ✨ Added
Request#getParameters()
for fetching values from CS sliders and dropdown menus - 🐛 Fixed some Response-related enums encoding as negative values like
-1
instead of255
- 🧹 Removed features scheduled for removal in v3.5.0, namely legacy class constructors. Old code should be migrated to instead utilize builder classes where possible.
- 🧹 Improved coverage of Javadocs
Full Changelog: v3.4.1...v3.5.0
java-crowd-control v3.4.1
What's Changed
An issue causing non-ASCII character sets (i.e. the display names of non-English viewers) to decode into gibberish has been resolved.
Full Changelog: v3.4.0...v3.4.1
java-crowd-control v3.4.0
What's Changed
- ✨ Added
SocketManager#buildResponse
to allow developers to manually send packets that aren't a realResponse
to any specificRequest
- ✨ The effect ID of unavailable effects is now automatically appended to response messages so the pack's CS file can automatically parse and hide unavailable effects
- ✨ Introduced support for the new Crowd Control multi-service beta
- ✨ Added
SocketManager#addConnectListener
which allows developers to listen for incoming client/server connections- Note: The listeners can sometimes be called before the socket is accepting
Response
s; for now it's recommended to use a ScheduledExecutorService to delay the execution of any listeners that send aResponse
packet upon connection
- Note: The listeners can sometimes be called before the socket is accepting
- 🐛 Fixed some scary-looking but ultimately harmless exceptions being thrown (#47)
Full Changelog: v3.3.3...v3.4.0
java-crowd-control v3.3.3
What's Changed
- ✨ Added
TimedEffect#complete(boolean)
to allow skipping the execution of the completion callback - 🐛 Fixed "Failed to write response to socket" thrown on client disconnect (#47)
Full Changelog: v3.3.2...v3.3.3
java-crowd-control v3.3.2
What's Changed
POJOs
- TimedEffect can (and should) now be constructed using its builder class. This new builder also allows you to create startup callbacks that may return Responses other than ResultType.SUCCESS. Class constructors for TimedEffect have been deprecated and scheduled for removal.
- Various networking classes have been moved out of POJOs and into the Receiver module (where they were meant to be in the first place).
Receiver
- A duplicated shutdown message has been changed to a unique string to make debugging potential issues easier.
Sender
- AutomatableService and its method
#autoStart
have both been deprecated and scheduled for removal due to the feature not really working in the first place.
Miscellaneous
- Many annotations have been fixed or added where otherwise missing.
@since
tags have been added to javadocs all across the API.- Formatting in the USAGE.md file was fixed.
- Unit test coverage was expanded to ensure the APIs function as expected.
Full Changelog: v3.3.1...v3.3.2