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.2.1-SNAPSHOT-Velocity

0.2.1-SNAPSHOT

Adds three platform modules next to signals-bukkit. signals-core and signals-bukkit have no API changes.

Added

  • signals-folia: SignalsLib for Folia's regionised multithreading. The jar is marked folia-supported: true and bundles signals-bukkit, so Bukkit plugins keep using BukkitSignals unchanged.
    • FoliaSignals: wraps BukkitSignals (same players(), blocks(), entities(), inventories(), on(...)) and adds connectGlobal, connectAsync, connectRegion and connectEntity. Each runs the listener inline when the current thread already owns the region, entity or global region, and schedules it otherwise. A task scheduled before its connection was disconnected is skipped.
    • FoliaScheduler: wrapper over the global, region, entity and async schedulers, plus isFolia(), isGlobalThread(), ownsRegion(...) and ownsEntity(...).
    • Needs Paper or Folia 1.20 or newer (the Folia schedulers). Compiled against paper-api 1.20.4 by default; change it with -PfoliaApiVersion=....
  • signals-bungeecord: SignalsLib for BungeeCord and Waterfall (one jar for both).
    • BungeeSignals with players(), servers(), proxy() shortcuts and on(Class), and SignalsBungeePlugin for the shared bridge (BungeeSignals.shared()). Descriptor is bungee.yml.
    • BungeeCord can only register handlers from annotated methods, so 16 events are bridged at NORMAL priority (BungeeSignals.bridgedEvents()); on(...) throws IllegalArgumentException for any other event type.
    • Compiled against bungeecord-api 1.21-R0.4-SNAPSHOT by default; change it with -PbungeeApiVersion=....
  • signals-velocity: SignalsLib for Velocity.
    • VelocitySignals with players(), servers(), proxy() shortcuts, on(Class) for any Velocity event and PostOrder options (first(), early(), normal(), late(), last()), and SignalsVelocityPlugin (plugin id signalslib) for the shared bridge (VelocitySignals.shared()).
    • velocity-plugin.json is written by hand so its version follows the build.
    • Compiled against velocity-api 3.4.0-SNAPSHOT by default; change it with -PvelocityApiVersion=....

Fixed

  • FoliaScheduler.isGlobalThread() no longer uses Bukkit.isGlobalTickThread() (not in Paper API); it looks the check up at runtime and, on a Folia build without it, reports false so global listeners are scheduled.
  • Velocity handlers skip GEB dispatch while a signal has no listeners.
  • Javadoc notes: scheduled Folia listeners cannot change the event, BungeeCord chat includes commands, Velocity signed chat cannot be changed, and ProxyInitializeEvent must be requested in the plugin constructor.

Changed (build)

  • Version is now 0.2.1-SNAPSHOT.
  • processResources no longer reads project at execution time (Gradle 8 deprecation warning), in every module.
  • Release jars in ./dist are named per platform: SignalsLib-Bukkit-<version>.jar (was SignalsLib-<version>.jar), SignalsLib-Folia-<version>.jar, SignalsLib-BungeeCord-<version>.jar and SignalsLib-Velocity-<version>.jar, each with -sources and -javadoc jars.
  • settings.gradle: added the Central snapshots repository (group net.md-5 only, for bungeecord-api) and allowed group com.velocitypowered on the PaperMC repository.
  • Maven POM names and descriptions cover all modules.

Information

Published
October 18, 2026
Author
0Downloads

Platforms

Velocity
Velocity
3.4–4.2.1