Tags
Creators
Details
1.6.0
Compatibility
Changes
Automated release v1.6.0 Commit: 83561848ff3a0576d0e5c8ac0e8e3d89e555b798 - Add Modrinth CI pipeline and new DSL declarative syntax for scripting
This pull request introduces significant improvements to the event system, modernizes the scripting documentation, and adds automation for publishing releases. The most important changes include a major refactor of the event handler infrastructure to support both member-backed and lambda event handlers, updates to the scripting DSL and documentation to promote the new lifecycle syntax, and the addition of a GitHub Actions workflow step to publish releases to Modrinth.
Event System Refactor and Enhancements:
Refactored the event handler system to introduce MemberBackedEventHandler and LambdaEventHandler, replacing the previous single EventHandler class. This allows direct registration of lambda handlers and improves handler management and cleanup. (src/main/kotlin/net/integr/backbone/systems/event/EventBus.kt) [1] [2] [3] [4] [5] Added registerLambda to EventBus for registering event handlers as lambdas, and ensured proper cleanup of lambda handlers on unregister. (src/main/kotlin/net/integr/backbone/systems/event/EventBus.kt) Exposed the global EVENT_BUS via the Backbone object for easier access. (src/main/kotlin/net/integr/backbone/Backbone.kt) Improved the Event class by adding setCallback and getCallback methods, and making operator overloads open for extension. (src/main/kotlin/net/integr/backbone/systems/event/Event.kt) Documentation and Scripting DSL Updates:
Updated the README.md to recommend the new lifecycle { ... } DSL for scripts, clarified the distinction between classic and modern scripting APIs, and provided updated examples for event listeners, commands, custom items, entities, and renderables. [1] [2] [3] [4] [5] [6] [7] [8] Documented inter-script communication features, showing how scripts can send and receive messages using the new DSL. Clarified usage of shared utility scripts and their restrictions. CI/CD Improvements:
Added a new step in the GitHub Actions workflow to automatically find the release -all.jar and publish it to Modrinth, including changelog and version metadata. (.github/workflows/ci.yaml) Other minor improvements include removal of unused imports and a minor addition to the placeholders section in the documentation. See the GitHub release for more details: https://github.com/integr-dev/backbone/releases/tag/v1.6.0
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:C7VBofq0:ylqyMrUy"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:C7VBofq0:ylqyMrUy"
}

