Tags
Creators
Details
Licensed ARR
Published 5 months ago
Updated 4 months ago
All versions
0.8.9
Beta
Lattice 0.8.94 months ago 20
Uploaded by
Compatibility
Minecraft: Java Edition
1.21.11
Platform
Paper
Changes
Lattice 0.8.9 - Testability, Diagnostic Clarity, and Release Docs
Added
PaperDiagnosticContributorsnapshot detail keys are now documented in Javadoc:plugin,version,dataFolder,enabled,currentThread. Plugin authors reading the contributor class directly can see the snapshot shape without consulting the source.PaperIntegrationBootstrap.failureMessage(Throwable)andfailureDetails(Throwable)are nowstaticpackage-private so the formatting contract can be locked by a unit test without going through the reflective bridges.PaperDiagnosticContributor.detailsFor(Path, String, String, boolean)is now a package-private helper, parameter-validated, so the snapshot detail-map shape is unit-testable without instantiatingJavaPlugin(whose constructor is unsupported outside the Bukkit loader).PaperIntegrationBootstrapFailureLoggingTestlocks the failure-logging contract for the 7 reflective integration bootstrap paths.PaperDiagnosticContributorTestlocks thecurrentThreadsnapshot detail so it cannot accidentally drift to a hardcoded value.
Changed
PaperDiagnosticContributor.detailsFor(...)parameter order is now(Path dataFolder, String pluginName, String pluginVersion, boolean enabled). ThePathis first to visually break up two adjacentStringparameters of different meaning and remove a call-site transposition footgun. The sole caller (snapshot()) was updated to match. Observable output (the snapshot detail map keys and values) is unchanged.docs/api-guide.md#diagnosticsnow spells out the snapshot detail keys for thepapercontributor plus the integrationdetailsmap shape (reason/messagefor failures,apiClass/versionfor anAVAILABLEPacketEventsbinding).docs/build-and-release.mdclarifies that bothGitHub ReleaseandModrinth Releaseworkflows auto-trigger on push events matchingv*tag patterns. A normalgit push origin v<version>therefore publishes to Maven Central, the GitHub Packages mirror, GitHub Release, and Modrinth in parallel. Manualgh workflow run "Modrinth Release"is reserved for recovery; the workflow already performs its own idempotency check against the Modrinth API before publishing.PaperIntegrationBootstrapFailureLoggingTest.failureDetailsMapIsImmutablenow usesassertThrows(UnsupportedOperationException.class, ...)to actually verify theMap.ofimmutability claim (replaced a previouscontainsKeytautology).
Fixed
- A transposition footgun in
PaperDiagnosticContributor.detailsFor(...): the previous(String, String, Path, boolean)parameter list placed two strings of different meaning adjacent to each other. Reorder eliminates this hazard without changing observable behavior.
Compatibility
- No plugin authoring API changes.
- No stable
@StableApitypes were modified. - No new transitive dependencies.
- Tests are new additions only; no existing tests were changed or removed.
failureDetailsandfailureMessagewere previouslyprivate staticand remain@InternalApi; they are nowstaticpackage-private to satisfy the same internal-only contract.
Still Experimental (no change in status)
dev.beryl.lattice.updatedev.beryl.lattice.hookdev.beryl.lattice.templateand annotation processors
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:Ed95iBPq:pR6V2o7p"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:Ed95iBPq:pR6V2o7p"
}

