Skip to content

Releases: qixils/java-crowd-control

java-crowd-control v3.6.1

09 Jun 17:55
Compare
Choose a tag to compare

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_EVENTs: data, eventType, and internal
  • Added CrowdControl#getConnections for getting all the SocketManagers connected to the server
  • Added SocketManager#getSource for directly getting the Request.Source of a standalone SocketManager
Full Changelog: v3.6.0...v3.6.1

java-crowd-control v3.6.0

08 May 18:49
Compare
Choose a tag to compare

What's Changed

  • ✨ New CC2 APIs!
    • Added Request#getSource to get the Request.Source (IP and Request.Target) of the streamer through which an effect was purchased
    • Added CrowdControl#getSources to get all the connected Request.Sources
    • Added Request.PacketType.REMOTE_FUNCTION to trigger remote functions defined in the pack's CS
    • Added Request#getQuantity and Request#getQuantityOrDefault
  • 🧹 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

17 Mar 20:16
Compare
Choose a tag to compare

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 from effect to value (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

04 Feb 05:07
Compare
Choose a tag to compare

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

10 Dec 20:33
Compare
Choose a tag to compare

What's Changed

  • 🐛 Fixed a Javadoc issue
  • 🧹 Marked constructors for Request and Response as Experimental to encourage usage of their builders instead

Full Changelog: v3.5.0...v3.5.1

v3.5.0: It's *time* for an update!

10 Dec 20:08
Compare
Choose a tag to compare

What's Changed

  • ✨ Added support for streamer-defined effect durations
  • ✨ Migrated the timeRemaining field of Response to java.time.Duration from long 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 of 255
  • 🧹 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

25 Oct 19:30
Compare
Choose a tag to compare

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

22 Jun 18:43
e717141
Compare
Choose a tag to compare

What's Changed

  • ✨ Added SocketManager#buildResponse to allow developers to manually send packets that aren't a real Response to any specific Request
  • ✨ 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 Responses; for now it's recommended to use a ScheduledExecutorService to delay the execution of any listeners that send a Response packet upon connection
  • 🐛 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

12 Jan 00:58
Compare
Choose a tag to compare

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

09 Jan 01:50
10125d5
Compare
Choose a tag to compare

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