Welcome to the Hangar Open Beta. Please report any issue you encounter on GitHub!
Avatar for TamKungZ_

A tiny Java signal/event library with optional Bukkit/Spigot integration, backed by GEB

Report SignalsLib?

R

0.1.1-SNAPSHOT

Changelog

0.1.1-SNAPSHOT

Changed

  • License changed from MIT to WTFPL v2.
  • POM license metadata and PLUGIN.md updated to match.

Changed (build hardening)

  • Repositories moved to settings.gradle with FAIL_ON_PROJECT_REPOS; Spigot and Paper repositories are restricted to the groups they serve.
  • Reproducible archives: fixed timestamps, stable file order, fixed permissions.
  • JAR manifests no longer record the build user, OS, architecture, or JDK vendor.
  • LICENSE.md is now actually bundled into META-INF (the build previously looked for a non-existent LICENSE); the build fails if it or README.md is missing.
  • Tests use the JUnit BOM and an explicit junit-platform-launcher.
  • -Xlint:all enabled, Javadoc encoding set to UTF-8 with missing-comment warnings silenced, failed tests print full stack traces.
  • signals-bukkit: org.jetbrains:annotations added as compileOnly to remove Spigot API classfile warnings.
  • The build uses the JDK Gradle runs on and fails early if it is older than javaVersion; JDK auto-download is disabled.
  • Signing supports in-memory keys via signingKey / signingPassword or SIGNING_KEY / SIGNING_PASSWORD, falling back to gpg.
  • signals-bukkit: plugin.yml expansion now tracks the version as a task input; signature files are excluded from the shaded jar.
  • gradlew converted to LF line endings; .gitattributes added to keep it that way.
  • CI: read-only permissions, job timeout, Gradle wrapper validation, no persisted checkout credentials.
  • .gitignore extended with key and secret file patterns.

Added (compatibility)

  • Declared support for Minecraft 1.16.5 through 26.x on Spigot and Paper.
  • CI compiles against Spigot 1.16.5 and 26.2 and Paper 1.17.1, 1.18.2, 1.19.4, 1.20.1, 1.21.1 and 1.21.4.
  • Optional -PjavaRelease=<8..toolchain> lowers the bytecode level independently of the build JDK.

Added

  • META-INF/third-party/geb-LICENSE.txt: GEB's MIT license, bundled in the jar.

Fixed (hardening, signals-core)

  • SignalRouter: a throwing listener no longer stops the remaining listeners; the first exception is rethrown afterwards, others are added as suppressed.
  • SignalRouter.once: listener can no longer run twice under concurrent fires, and no longer breaks if fired before connect returns.
  • ConnectionGroup.add: connection is no longer leaked when the group is disconnected concurrently.
  • ConnectionGroup.disconnect: one failing connection no longer prevents the rest from disconnecting.
  • Signal: null checks for predicate, listener, mapper; upstream is now volatile.
  • SignalRouter.clear(): listeners connected during a clear are no longer dropped from the router while still reporting as connected.
  • SignalRouter: connect and disconnect are atomic per key, so a listener can no longer be added to a listener list that was just removed.
  • SignalRouter.once: the self-reference is now safely published across threads.
  • SignalKey: derived keys are unique by id, so a named key such as derived-1 can no longer collide with an internal one.
  • ConnectionGroup: disconnected connections are pruned as the group grows; ConnectionGroup.of(null) is rejected with a clear message.
  • Signal and SignalBus: a null group is rejected before any listener is registered, so nothing is leaked; SignalBus.signal(null) is rejected.
  • Six new tests cover the above.

Fixed (hardening, signals-bukkit)

  • BukkitSignals: every priority / ignoreCancelled combination shared one signal channel, so each listener ran once per registered combination and priority order was ignored. Each combination now has its own channel; the default (NORMAL, not ignoring cancelled) keeps SignalKey.of(eventType).
  • BukkitSignals, BukkitEventSignal: null event types and priorities are rejected up front.

Information

Published
October 17, 2026
Author
0Downloads

Platforms

Paper
Paper
1.16–26.2