Links
Tags
Creators
Details
All versions
0.2.0-SNAPSHOT
Release
SignalsLib 0.2.0-SNAPSHOTlast week 7
Compatibility
Minecraft: Java Edition
26.2
26.1.x
1.21.x
1.20.x
1.19.x
1.18.x
1.17.x
1.16.x
Platforms
Bukkit
Paper
Purpur
Spigot
Changes
0.2.0-SNAPSHOT
This release reorganizes packages and renames parts of the API. Behavior is unchanged, but source compatibility with 0.1.x is not kept; see the migration table below.
Changed (packages)
signals-coreis split intome.tamkungz.signals(SignalBus,Signal,SignalKey),me.tamkungz.signals.connection(Connection,ConnectionGroup),me.tamkungz.signals.geb(GebBridge) andme.tamkungz.signals.internal(not API).signals-bukkitis split intome.tamkungz.signals.bukkit(BukkitSignals,SignalsPlugin),me.tamkungz.signals.bukkit.event(fluent builder and per-domain shortcuts) andme.tamkungz.signals.bukkit.internal(not API).package-info.javaadded to every package.
Changed (split and renamed)
SignalBus: the GEB passthrough (custom events,@Listenlisteners, sub-buses) moved to the newGebBridge, reached withSignalBus.geb().SignalBusnow only deals with typed signals.BukkitSignals: the 15 per-event shortcuts moved toPlayerSignals,BlockSignals,EntitySignalsandInventorySignals; the listener registration and its cache moved toEventSignalRegistry.SignalRouterno longer contains its subscription type; it is now the package-privateSubscription.SignalEventis nowSignalEnvelope, andSignalRouteris public so the dispatcher GEB generates for the envelope can reach it. Both live inme.tamkungz.signals.internaland are not API.SignalKey.castis now public (the router needs it from another package).SignalTestis split by feature intoSignalTest,SignalKeyTest,SignalConcurrencyTestandConnectionGroupTest.
Changed (build)
distand thedistMaven repository no longer delete older versions; each build adds its own version and only files of the same version are overwritten.- Removed
Task.projectcalls at execution time (deprecated in Gradle 8, an error in Gradle 10).
Removed
- Unused
Class-based overloads inSignalRouter.
Added
GebBridgeTest: listener and sub-bus connections, groups,post, and null checks.EventSignalSource: whatBukkitSignalsimplements and what the builder and shortcuts depend on, sobukkit.eventdoes not depend onBukkitSignals.
Migration from 0.1.x
| 0.1.x | 0.2.0 |
|---|---|
me.tamkungz.signals.Connection |
me.tamkungz.signals.connection.Connection |
me.tamkungz.signals.ConnectionGroup |
me.tamkungz.signals.connection.ConnectionGroup |
bus.geb() (raw IBus) |
bus.geb().bus() |
bus.post(event) |
bus.geb().post(event) |
bus.listen(listener) |
bus.geb().listen(listener) |
bus.registerListener(l), unregisterListener(l), isRegistered(l) |
same methods on bus.geb() |
bus.subBus(subBus, priority), registerSubBus, unregisterSubBus |
same methods on bus.geb() |
me.tamkungz.signals.bukkit.BukkitEventSignal |
me.tamkungz.signals.bukkit.event.EventSignalBuilder |
signals.event(type, priority, ignoreCancelled) |
signals.signal(type, priority, ignoreCancelled) |
signals.event(type) |
signals.signal(type) |
BukkitSignals.from(plugin, type, ...) |
BukkitSignals.standaloneSignal(plugin, type, ...) |
signals.playerJoin() |
signals.players().join() |
signals.playerQuit() |
signals.players().quit() |
signals.playerKick() |
signals.players().kick() |
signals.playerMove() |
signals.players().move() |
signals.playerTeleport() |
signals.players().teleport() |
signals.playerInteract() |
signals.players().interact() |
signals.playerDeath() |
signals.players().death() |
signals.playerRespawn() |
signals.players().respawn() |
signals.playerCommand() |
signals.players().command() |
signals.blockBreak() |
signals.blocks().breakBlock() |
signals.blockPlace() |
signals.blocks().placeBlock() |
signals.entityDamage() |
signals.entities().damage() |
signals.entityDeath() |
signals.entities().death() |
signals.inventoryClick() |
signals.inventories().click() |
signals.inventoryClose() |
signals.inventories().close() |
Supplementary resources
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:UxiIddjL:s77nuiWJ"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:UxiIddjL:s77nuiWJ"
}

