Links
Tags
Creators
Details
26.2-3-beta.4
Compatibility
Changes
26.2-3-beta.4
Added
- Added event-specific logging for initial fire ignition, sponge absorption, dispenser bucket placement/removal, entity block changes/forming, natural growth/fading/forming/spread, leaves decay, structure growth, fertilization, and player interactions that mutate block state.
- Added stable action identifiers and lookup descriptions for every newly covered cause.
- Added regression coverage for next-tick actual-state capture, multi-block sponge/structure changes, dispenser-facing targets, player/entity attribution, natural changes, and unchanged container interactions.
- Added regression coverage for player-fired flaming arrows, large/small fireballs, and projectile ignition caused by non-player or unknown shooters.
- Added regression coverage for chiseled-bookshelf and lectern book insertion/removal, preserved before/after inventory snapshots, rollback/undo inventory restoration, and unchanged container opens.
- Added regression coverage for taking a book through the lectern interface after an unchanged open, including player attribution, occupied/empty snapshots, restored book/page data, and suppressed logging.
- Added regression coverage for snapshot-free chest, barrel, hopper, furnace, shulker-box, dispenser/dropper, brewing-stand, and crafter opens, plus jukebox record insertion/removal restoration.
- Added regression coverage for transient stone/wood/blackstone buttons, ordinary and weighted pressure plates, tripwire activations, persistent lever toggles, and lasting physical farmland changes.
- Added regression coverage for temporary occupancy on different bed colors and both bed halves, confirming bed entry skips deferred interaction capture while bed placements remain recorded.
- Added registration-order regression coverage for inherited growth/formation events, natural and fire spread, player/entity block formation attribution, and disabled fire-spread logging.
Changed
- Captured each new event's before-state while the event is running and its actual resulting block/entity state on the next server tick, preserving the event's original tick for same-tick coalescing.
- Attributed player-caused ignition, fertilization, structure growth, and interaction changes to the player's UUID/name; entity-caused changes retain the entity UUID/type, while environmental changes use explicit system cause labels.
- Resolved projectile shooters before assigning fire-ignition actors so player-launched arrows and fireballs retain the responsible player's identity without changing non-player projectile attribution.
- Fire spread now verifies the actual applied next-tick state, and non-fire
BlockSpreadEventchanges are logged independently of the fire logging setting. - Limited player-interaction inventory snapshots to structurally mutable lecterns, chiseled bookshelves, and jukeboxes; ordinary container opens skip both inventory serialization and deferred logging tasks.
- Captured lectern books removed through their interface using the dedicated cancellable book-removal event and verified the resulting empty lectern on the following server tick.
- Excluded automatically resetting buttons, pressure plates, tripwire activations, and bed occupancy from interaction history while continuing to log persistent lever changes, genuine physical block mutations, and bed placements.
- Routed inherited block growth/formation events exclusively through their most specific listener so each mutation schedules one authoritative history record.
Fixed
- Fixed #16 by covering world mutations that previously bypassed FragGuard history and therefore could not be found in lookup or restored by rollback.
- Fixed player-fired flaming arrows and fireballs being recorded under the projectile's UUID/type instead of the responsible player's UUID and name.
- Prevented ordinary player container opens from producing entity-snapshot-only false positives when no structural block change occurred.
- Fixed structurally changing inventory-holder interactions discarding their before/after block-entity snapshots; bookshelf and lectern rollback/undo now restores books while unchanged container opens remain unlogged.
- Fixed books removed through a lectern's Take Book button bypassing block history, which previously prevented rollback and undo from restoring the book and its selected page.
- Fixed ordinary container opens serializing and gzip-compressing potentially large inventories on the server thread despite producing no history record.
- Fixed transient button and pressure-plate activations leaving stale powered history after their unobserved automatic release, which caused normal rollbacks to skip those coordinates as conflicts.
- Fixed temporary tripwire activation being recorded as a lasting powered block state, which caused normal rollbacks to incorrectly skip tripwire after players moved away.
- Fixed temporary bed occupancy being recorded as a lasting block interaction, which caused normal rollbacks to incorrectly skip beds as conflicts after players woke or left.
- Fixed generic growth and formation listeners nondeterministically overwriting spread/entity-formation causes or actor attribution, and prevented disabled fire-spread logging from being bypassed through inherited handlers.
What's Changed
- 16 several world changing events are not covered by @mccreeper1318 in https://github.com/mccreeper1318/fragguard/pull/35
Full Changelog: https://github.com/mccreeper1318/fragguard/compare/26.2-3-beta.3...26.2-3-beta.4
⚠️ Beta Release Warning
Beta versions are pre-release builds intended for testing. They may contain bugs, incomplete changes, or unexpected behavior and may not be as stable as the latest full release.
Before installing a beta:
Back up your server and plugin configuration. Review the changelog for known changes. Be prepared to roll back if problems occur.
Beta builds are recommended for testing environments or users comfortable troubleshooting issues. For production servers, use the latest stable release whenever possible.
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:U73zBnOB:klit4ZFy"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:U73zBnOB:klit4ZFy"
}

