Grim Anticheat (Fabric) 2.3.72-7c5aae9
on Oct 8, 2025Grim Anticheat (Bukkit) 2.3.72-7c5aae9
on Oct 8, 2025Changes in this Build (since previous push)
Miscellaneous
- Add ItemTypes.TURTLE_HELMET - by Ayou (
d657aec) - Merge pull request #2193 from Ayouuuu/2.0
Add ItemTypes.TURTLE_HELMET - by ManInMyVan (af2a53a)
- Slightly change ignore-duplicate-packet-rotation logic - by ManInMyVan (
38a2ea4) - Move ExploitA & C to chat category - by ManInMyVan (
b563792) - Add KnownInput#moving - by ManInMyVan (
5fb8cd9) - PlayerData -> player - by ManInMyVan (
0844fc6) - Remove whitespace in EquipmentType - by ManInMyVan (
d1b0f4d) - Check for moving while chatting - by ManInMyVan (
135c90c) - Add Chat and Exploit to punishments - by ManInMyVan (
b4714b0) - Check if chat is hidden - by ManInMyVan (
4992cf6) - Descriptions for almost every place check - by ManInMyVan (
df31a39) - Validate anvil item name length - by ManInMyVan (
4b53457) - Payload system - by ManInMyVan (
1a6b6fc) - This took too long - by ManInMyVan (
8a2ca76) - Add missing return - by ManInMyVan (
ba18d4c) - BadPacketsJ should be stable - by ManInMyVan (
3b76ded) - ExploitC fail-fast page parsing - by ManInMyVan (
0ccd03a) - Finish ExploitC, replaces ExploitB - by ManInMyVan (
e16979b) - Add include-timestamp to discord.yml - by ManInMyVan (
7b82060) - Add /grim history (#2201)
- Add /grim history command to see historical alerts
-
Add basic runtime reloading support.
- Will only actually reload if current database is different/has different setting than the one requested in config.
-
Added [log] statements matching [alert] statements
-
Add more detailed error message if Grim history subsystem fails to load.
-
Refactor /grim history code; Fix autocomplete of online player names in /grim history
-
Fix error swapping checkName and verbose in SQLite implementation
-
Refactor /grim history to use more efficient long-term storage with compact UUIDs and string deduplication.
Grim old grim history data will not be migrated!
-
Replace %version% with grim version in /grim history entry output
-
Add support for %grim_version% %client_brand% %client_version% %server_version% substtuions in grim-history-entry - by Axionize (
3e9b53e)
- Make some checks run before via - by ManInMyVan (
2e9b086) - Bump Dependencies
gradlew-wrapper 8.13 -> 8.14.3
adventure 4.21.0 -> 4.23.0
adventure-platform-bukkit 4.3.4 -> 4.4.0
cloud-paper 2.0.0.-beta.10 -> 2.0.0.-beta.11
cloud-fabric 2.0.0.-beta.10 -> 2.0.0.-beta.11
packetevents 2.9.0-SNAPSHOT -> 2.9.2-SNAPSHOT
fabric-loader 0.16.10 -> 0.16.14
fabric-loom 1.10.5 -> 1.11.4
shadow 9.0.0-beta6 -> 9.0.0-rc1 - by Axionize (bbc1bee)
- Downgrade from shadow 9.0.0-rc1 to 9.0.0-beta8 to fix jar inflation bug with shading fastutil - by Axionize (
6e28434) - 1.21.8 Server Support - Bump PE - by Axionize (
4942401) - This should now be usable - by ManInMyVan (
6e58e8c) - No it shouldn't - by ManInMyVan (
8d3e77f) - There is no more via here - by ManInMyVan (
9da9c30) - SprintA verbose - by ManInMyVan (
ed727cc) - Packet cancelling in VehicleD - by ManInMyVan (
39b74b2) - Remove some empty lines - by ManInMyVan (
c7fbc4b) - Don't use ordinal for WindowClickType in CrashF - by ManInMyVan (
1b62b1d) - More pre-via
hopefully I didn't miss any getter changes - by ManInMyVan (d90de8f)
- Pre-via chat checks - by ManInMyVan (
51bbb31) - Small cleanup - by ManInMyVan (
2a7403b) - HOW DID I FORGET - by ManInMyVan (
ac2c9ea) - Temporary fix for BadPacketsE not working on vehicles - by Axionize (
2ad9818) - PacketOrderO - by ManInMyVan (
2e01399) - Pre-via block break checks - by ManInMyVan (
408c7d5) - BadPacketsO optimizations - by ManInMyVan (
354216f) - And it was not a teleport - by ManInMyVan (
85acf78) - These don't need to implement anything - by ManInMyVan (
02426ad) - Small stuff - by ManInMyVan (
1f052f6) - More small changes - by ManInMyVan (
95b080a) - More cleanup - by ManInMyVan (
d8b719d) - Add option to disable cancelling pong packets - by SamB440 (
933f6c7) - Hardcode more 1.21.4+ hand harvestables (#2213)
- Hardcode more 1.21.4+ Hand Harvestables
Fixes issue #2117 temporarily until PacketEvents resolves their api shortcoming (https://github.com/retrooper/packetevents/issues/1217)
-
Adjust variable name
-
Cleanup spacing in BlockBreakSpeed util
Co-authored-by: ManInMyVan 113963219+ManInMyVan@users.noreply.github.com
Co-authored-by: ManInMyVan 113963219+ManInMyVan@users.noreply.github.com - by Loki (533ae70)
- Temp revert pre-via - by ManInMyVan (
77c165c) - Revert "temp revert pre-via"
This reverts commit 77c165cfa83e35ef94c6049446a6eab847d4a080. - by ManInMyVan (2528ff5)
- Bump PacketEvents - by Axionize (
29e0c6e) - Add mavenCentral() to repositsories to download me.lucko:fabric-permissions-api:0.1-SNAPSHOT for Fabric 1.16.1 - by Axionize (
ba4bbef) - Shadow 9.0.0-rc2 (#2229)
OLD: grimac-bukkit-2.3.72-shadow-9-ba4bbef66-before.jar
NEW: grimac-bukkit-2.3.72-shadow-9-a14b4044a-after.jar
JAR │ old │ new │ diff
───────┼──────────┼──────────┼──────
class │ 20.9 MiB │ 20.9 MiB │ 0 B
other │ 1.5 MiB │ 1.5 MiB │ 0 B
───────┼──────────┼──────────┼──────
total │ 22.4 MiB │ 22.4 MiB │ 0 B
CLASSES │ old │ new │ diff
─────────┼───────┼───────┼───────────
classes │ 4603 │ 4603 │ 0 (+0 -0)
methods │ 53656 │ 53656 │ 0 (+0 -0)
fields │ 22173 │ 22173 │ 0 (+0 -0)
=================
==== JAR ====
=================
size │ diff │ path
──────┼──────┼─────────────────────────────────────────────────────────────────
0 B │ 0 B │ + META-INF/versions/9/ac/grim/grimac/shaded/snakeyaml/internal/
0 B │ 0 B │ + META-INF/versions/9/ac/grim/grimac/shaded/snakeyaml/
│ 0 B │ - META-INF/versions/9/org/yaml/snakeyaml/internal/
0 B │ 0 B │ + META-INF/versions/9/ac/grim/grimac/shaded/
│ 0 B │ - META-INF/versions/9/org/yaml/snakeyaml/
0 B │ 0 B │ + META-INF/versions/9/ac/grim/grimac/
│ 0 B │ - META-INF/versions/9/org/yaml/
0 B │ 0 B │ + META-INF/versions/9/ac/grim/
│ 0 B │ - META-INF/versions/9/org/
0 B │ 0 B │ + META-INF/versions/9/ac/
0 B │ 0 B │ + META-INF/services/
──────┼──────┼─────────────────────────────────────────────────────────────────
0 B │ 0 B │ (total)
``` - *by Zongle Wang* (`5a4471c`)
- Fix very rare Reach false for versions < 1.20.2 and > 1.21.4 involving rot only packets. See https://bugs.mojang.com/browse/MC/issues/MC-255263 - *by Axionize* (`3875a6b`)
- Amend previous Reach false fix to only apply in versions > 1.14.4 - *by Axionize* (`527c87e`)
- Fix FastBreak falses with 1.20.5+ custom tool rules. - *by Axionize* (`4b514e7`)
- Make ChatC and ChatB postViaChecks as temporary workaround to PE parsing limitations. - *by Axionize* (`31107ec`)
- [ci skip] Bump run-paper version - *by SamB440* (`cec0738`)
- Zero point zero three - *by SamB440* (`25b0582`)
- Disallow step after setback - *by SamB440* (`1136936`)
- [ci skip] Add client version to bypass issue template - *by SamB440* (`61f7ad8`)
- Refactor GrimDump: extract basic info generation to reusable getBasicInfo method - *by AoElite* (`a695dac`)
- Allow all functional urls to be changeable, move all grim system property usage to a dedicated class - *by AoElite* (`a9a2034`)
- Recode grim version command to use new api - *by AoElite* (`cd8d78d`)
- Add getVehicle() and getVehicleType() in GrimPlayer - *by ManInMyVan* (`647b13c`)
- Check if a player is in a boat when sending STEER_BOAT (Add VehicleE) - *by ManInMyVan* (`b5c14f4`)
- Validate STEER_BOAT values (Add VehicleF) - *by ManInMyVan* (`2e625e2`)
- Remove Check.isFlying - *by ManInMyVan* (`be120f0`)
- Make Check.isTransaction static - *by ManInMyVan* (`0a4a6cd`)
- Split isJumping and lastJumping into separate declarations - *by ManInMyVan* (`6787d1b`)
- Simplify FloodgateUtil - *by ManInMyVan* (`d2df1b7`)
- Use Math.PI in VanillaMath instead of the literal - *by ManInMyVan* (`7376468`)
- Don't use deprecated method ItemStack.getEnchantmentLevel(EnchantmentType, ClientVersion) in TridentItem - *by ManInMyVan* (`e433652`)
- Remove unused method BlockFaceHelper.offset - *by ManInMyVan* (`796a573`)
- Mark many utility classes as UtilityClass - *by ManInMyVan* (`380e3d9`)
- Don't use deprecated method ItemStack.getEnchantmentLevel(EnchantmentType, ClientVersion) in Riptide - *by ManInMyVan* (`376e7a9`)
- Rewrite GeyserUtil to not use reflection
except once - *by ManInMyVan* (`1ba072f`)
- Merge FloodgateUtil & GeyserUtil - *by ManInMyVan* (`a3108c7`)
- Remove Killaura from punishments.yml + add Interact in japanese punishments.yml - *by ManInMyVan* (`6ce610e`)
- Fix typo in help: section of en messages.yml causing error message on /grim help. Also make /grim help handle null lines - *by Axionize* (`94813c0`)
- Remove unused import in BlockFaceHelper - *by ManInMyVan* (`8cb4189`)
- Allow line break in pages - *by ManInMyVan* (`5761896`)
- Cleaner stuckSpeedMultiplier constants - *by ManInMyVan* (`03e1514`)
- Roll up shitmath bruteforce in PredictionEngineElytra - *by ManInMyVan* (`a953f50`)
- Add force-slow-movement and force-stuck-speed (intended for anarchy servers) - *by ManInMyVan* (`0dec743`)
- Update README.md and CONTRIBUTING.md - *by AoElite* (`c0b96ea`)
- Limit 1.21.5+ sprint attribute desync to minecarts - *by cyramek* (`fd59498`)
- More readable PredictionEngineElytra.applyInputsToVelocityPossibilities - *by ManInMyVan* (`28d8320`)
- Allow platform to be configured via system argument - *by AoElite* (`b997b6b`)
- Make PacketPlayerDigging pre-via: fix #2250
also move it before PreViaCheckManagerListener - *by ManInMyVan* (`97c1bdd`)
- Remove unused imports in ChatA/B - *by ManInMyVan* (`1c46546`)
- Add support for SET_PLAYER_INVENTORY packet - *by SamB440* (`17a8d3b`)
- Add some utilities - *by AoElite* (`090d1a8`)
- Reduce the number of tasks for updating permissions - *by AoElite* (`4702add`)
- Add GrimList command for debugging exemptions - *by AoElite* (`dbac8bc`)
- Don't allow sending OFF_HAND in USE_ITEM to bypass noslow - *by ManInMyVan* (`ff9af98`)
- Get item in PacketPlayerDigging.handleUseItem instead of it being passed - *by ManInMyVan* (`a7f8c77`)
- Use getItemInHand in PacketPlayerDigging - *by ManInMyVan* (`d71239b`)
- Only set NoSlow.didSlotChangeLastTick if the slot actually changed - *by ManInMyVan* (`aab6908`)
- PacketStateData.eatingHand -> itemInUseHand - *by ManInMyVan* (`b37393c`)
- Make PacketStateData.isSlowedByUsingItem() based on slowedByUsingItemSlot
the slowedByUsingItem is redundant - *by ManInMyVan* (`cecf5fb`)
- Reduce runnables with world borders - *by ManInMyVan* (`21ef46a`)
- Cache default input value; reduce memory usage for pre-1.21.2 players - *by ManInMyVan* (`eddb14b`)
- Normalize trighandler param names - *by ManInMyVan* (`b44dd89`)
- Mark GrimMath methods as pure - *by ManInMyVan* (`566dc9b`)
- Make Ray fields final - *by ManInMyVan* (`f87a077`)
- Don't use deprecated method ItemStack.getEnchantmentLevel(EnchantmentType, ClientVersion) - *by ManInMyVan* (`d2a8dce`)
- Replace ChannelHelper.runInEventLoop with GrimPlayer#runSafely - *by ManInMyVan* (`3f17557`)
- Move ComprensatedInventory instance to GrimPlayer - *by ManInMyVan* (`ea5ed06`)
- Simplify ViaVersionUtil - *by ManInMyVan* (`42d247b`)
- Clean up EntityPredicates - *by ManInMyVan* (`e26cf0f`)
- Make MainSupportingBlockData a record - *by ManInMyVan* (`64ebdf2`)
- Use GrimMath.radians in JumpPower - *by ManInMyVan* (`2b03755`)
- Make Dripstone.update(...) void - *by ManInMyVan* (`9f4c321`)
- Remove GrimPlayer#isEyeInFluid(FluidTag) - *by ManInMyVan* (`4e1320f`)
- Deobf FluidFallingAdjustedMovement.getFluidFallingAdjustedMovement(...) - *by ManInMyVan* (`dc03060`)
- Protected -> private in final class - *by ManInMyVan* (`0bf3a21`)
- Remove GrimPlayer#getInventory() - *by ManInMyVan* (`bd4cd31`)
- Fix riptide velocity (#2262) - *by Ayou* (`0586ea5`)
- Read event after getting player - *by ManInMyVan* (`a8693c3`)
- Read event after getting player - *by ManInMyVan* (`070116b`)
- Remove unused imports - *by ManInMyVan* (`f739b1e`)
- Only do NoSlow checks if trident is not enchanted with Riptide
This is not vanilla, but this is what the legacy handler does. To implement this properly, we would need to track biomes AND skylight, which is very memory-expensive.
fix: https://github.com/GrimAnticheat/Grim/issues/2259 - *by cyramek* (`b7c5837`)
- Fix FastBreak falses white riding entity (#2273) - *by EternalHuman* (`57a9f8f`)
- Ensure fabric uses our packetevents fork - *by AoElite* (`846e9ad`)
- Update packetevents - *by AoElite* (`a02f49e`)
- Update workflow - *by AoElite* (`db92c65`)
- Remove workflow paths - *by AoElite* (`becbba3`)
- Tweak workflow - *by AoElite* (`e368bc8`)
- Remove secret requirement - *by AoElite* (`184050b`)
- Add back workflow paths - *by AoElite* (`c2a07bd`)
- Revert pre via (#2280)
* revert pre-via part 1
* don't register checks multiple times
* revert pre-via part 1
* don't register checks multiple times
* fix merge conflicts
---------
Co-authored-by: cyramek <xcyramek@gmail.com> - *by SamB440* (`cb13221`)
- Optimize away entity collision check in 1.8 (#2269) - *by Pablo Herrera* (`fe7a263`)
- Add repo.grim.ac for 1.16.1 so fabric-permissions-api will be downloaded - *by Axionize* (`293f6ea`)
- Disable CodeQL workflow schedule - *by AoElite* (`b70abbe`)
- Enable parallel building - *by AoElite* (`9b2b080`)
- Update gradle publishing actions, remove action dependency requirement, disabled building and publishing of lite - *by AoElite* (`2403bc5`)
- Update the checkout action to v5 in CodeQL workflow - *by AoElite* (`a0bd388`)
- Bump lombok plugin to 9.0.0 - *by AoElite* (`9618912`)
- Use different approach in Gradle version extraction in the publishing workflow - *by AoElite* (`2a5979c`)
- Simplify version extraction - *by AoElite* (`088621f`)
- Add a build properties file to include more details about the build - *by AoElite* (`c428bf6`)
- Use GitHub's default branch instead of assuming 2.0 - *by AoElite* (`18d1602`)
- Remove unused `mainBranch` property from BuildConfig - *by AoElite* (`f54ceb6`)
- Exclude pull requests - *by AoElite* (`01ff3ec`)
- Add build properties to dump - *by AoElite* (`8d25519`)
- Correct formatting for conditional checks in gradle-publish workflow - *by AoElite* (`1f16d7b`)
- Update readme - *by AoElite* (`4be2549`)
- Specify java version fpr codeql - *by AoElite* (`fb926ab`)
- Modify grim startup update check failure message - *by Axionize* (`3ac26d0`)
- Update new release/alpha build workflow - *by Axionize* (`cbc2f51`)
- Run workflow on .github/workflows/** update - *by Axionize* (`8f78556`)
- Update buildscript to be more flexible; add support for gradle build scans - *by Axionize* (`2df4c23`)
- Bugfix - *by Axionize* (`dda1332`)
- Build script fix - *by Axionize* (`a74e10e`)
- Remove -q from printVersion so when --scan is applied logs print out - *by Axionize* (`2f8a473`)
- Print out build scan url not found when --scan enabled and url not found - *by Axionize* (`b72485d`)
- Fix escpaing some stings in preparing final changelog - *by Axionize* (`a26951c`)
- Use secrets for MODRINTH_ID - *by Axionize* (`50f3d84`)
- Fix using secrets for MODRINTH_ID in workflows - *by Axionize* (`b824ce1`)
- Fix using secrets for MODRINTH_ID in workflows again - *by Axionize* (`0095f8a`)
- Buildscript patches - *by Axionize* (`d15a2dd`)
- Even more robust sanitization - *by Axionize* (`0fd2a96`)
- Add reset-item-usage-on-item-use - *by ManInMyVan* (`aa4c6e0`)
- Small cleanup (mostly making things private & final) - *by ManInMyVan* (`8d1ee00`)
- Make devvelocity build scan integration only run on --scan being applied; Update foojay resolver convention; - *by Axionize* (`e009389`)
- Implement API v1.2.0: Improve EventBus usability and fix reflection bugs
This update contains numerous fixes and improvements to the API, focusing on developer experience and robustness.
feat(api): Simplify EventBus registration with context resolvers
- Removes the requirement for developers to manually construct a GrimPlugin instance to use the EventBus.
- The new GrimExtensionManager uses platform-specific resolvers to automatically determine the context from common object types, reducing boilerplate.
- On Bukkit, developers can now pass:
- A `Plugin` instance (e.g., `this` from their main plugin class)
- Any `Class` from the plugin's JAR (e.g., `MyListener.class`)
- The plugin's name as a `String`
- On Fabric, developers can now pass:
- A mod's entrypoint instance (e.g., `this` from an Initializer)
- The mod ID as a `String`
- A `ModContainer` instance
- Any `Class` from the mod's JAR
fix(api): Correctly invoke reflected event listeners
- Fixes a critical bug causing a `ClassCastException` for listeners registered via `registerAnnotatedListeners`. Listeners are now correctly fired only for their declared event type. `subscribe()` remains the recommended registration method.
perf(api): Optimize invocation of reflected listeners
- Slightly improves performance of reflected listeners by removing a redundant runtime null-check from the hot path of every event call.
refactor(core): Moved concrete EventBus implementation from API to common module
- The `OptimizedEventBus` implementation has been relocated to the `common` module to better separate the public API contract from its internal logic. - *by Axionize* (`12e79a1`)
- Make ExplosionHandler#firstBreadMap private - *by ManInMyVan* (`258ef06`)
- XRot & yRot -> yaw & pitch - *by ManInMyVan* (`662d02c`)
- Deobf getNearestLookingDirections() - *by ManInMyVan* (`141ccae`)
- Nullability annotations & deobfing - *by ManInMyVan* (`0e6d116`)
### 🐛 Fixes
- Fix more SprintE falses - *by ManInMyVan* (`d835314`)
- Fix various vehicle issues [1.21.2] (#2185)
* fix happyghast step, collisions with fluids
warn about viabackwards compatibility
* fix 1.21.2+ riding without control
* use known input sneaking status if server support that
* fix fluid current pushing logic for happyghasts
* actually fix fluid pushing for happyghast
* fix vehicle input calculations for <=1.21.1 servers
* fix elytra inputs
* Revert 'fix elytra inputs'
* use pre-via listeners for sneaking
* remove warnings for sneaking issues on newer server versions
* fix float/double error causing 1e-8 imprecision when jumping on a horse
* workaround false positives when jumping on a horse
* add camel entity type
* only do this for 1.21.2+ client on 1.21.2+ servers
* build with new Grim PacketEvents fork snapshot with support for pre-via injection on Fabric - *by Cyramek* (`978364a`)
- Fix ExploitB false on pre 1.16 clients - *by ManInMyVan* (`2518ced`)
- Fix ExploitC on 1.9-1.12 servers - *by ManInMyVan* (`18f0a2a`)
- Fix vehicle relative teleport/vehicle 1.12.2+ teleport system (#2200)
* fix vehicle relative teleport/vehicle 1.12.2+ teleport system
* only mark teleports for re-encoding if we’re actually rewriting them - *by Cyramek* (`4156768`)
- Fix HappyGhast false positives when holding space
fix: https://github.com/GrimAnticheat/Grim/issues/2203 - *by cyramek* (`c66de10`)
- Https://github.com/GrimAnticheat/Grim/issues/2209 - *by cyramek* (`c37a79b`)
- Fix #2211 - *by ManInMyVan* (`9ab2f2e`)
- Fix NPE in BlockPlaceCheck#getCombinedBox (#2215) - *by Ayou* (`e2cf0fa`)
- Fix getting block jump factor in older versions - *by cyramek* (`b88dfa7`)
- Fix exception - *by ManInMyVan* (`3de670e`)
- Fix #2221 - *by ManInMyVan* (`fe1c6bf`)
- Fix PacketOrderO falses in vehicles - *by ManInMyVan* (`4287f62`)
- Fix ChatA/ChatB falses from 31107ec4b - *by ManInMyVan* (`38ccc55`)
- Shitmath look vector - *by ManInMyVan* (`0340e07`)
- Use stuckSpeedMultiplier instead of 0.99, 0.98, 0.99 - *by ManInMyVan* (`6320fa6`)
- Fix CrashH false - *by AoElite* (`8f1e993`)
- Fix deprecated method call ItemStack.getEnchantmentLevel(EnchantmentType, ClientVersion) - *by ManInMyVan* (`345502b`)
- Fix RunningMode field modifiers - *by ManInMyVan* (`9ea389b`)
- Fixed some minor build warnings - *by AoElite* (`c90d7ab`)
- Fix workflow - *by AoElite* (`fefaa57`)
- Fix repo property including org - *by AoElite* (`40a4c08`)
- Fix leaf litter hitbox - *by ManInMyVan* (`c10e74c`)
- Fix segmented hitboxes - *by ManInMyVan* (`cc10288`)
- Fix a few warns - *by ManInMyVan* (`c422173`)
- Fix 1.9 sloped rail height - *by ManInMyVan* (`7c5aae9`)
### 🤖 Maintenance & CI
- Add cliff.toml file for defining git-cliff formatting of changelogs - *by Axionize* (`a239560`)
- Create GitHub Actions script for auto-building lite version and publishing to Modrinth w/changelog - *by Axionize* (`0374b8c`)
- Replace vars.MODRINTH_ID with secrets.MODRINTH_ID to match repository Actions' settings - *by Axionize* (`5183ad8`)
- Fix generating changelog content in GitHub Actions - *by Axionize* (`2bf1260`)
- Fix escaping characters in changelog generation - *by Axionize* (`ba305cf`)
- Fix supported versions for Bukkit in Modrinth upload and Fabric dependences - *by Axionize* (`b0906d9`)
Grim Anticheat (Fabric) 2.3.72-141ccae
on Oct 7, 2025Grim Anticheat (Bukkit) 2.3.72-141ccae
on Oct 7, 2025Changes in this Build (since previous push)
Miscellaneous
- Merge pull request #2188 from Cyramek/fix-vehicle-soft-collisions
fix soft collisions for vehicles - by SamB440 (ddcc5a2)
- Add ItemTypes.TURTLE_HELMET - by Ayou (
d657aec) - Merge pull request #2193 from Ayouuuu/2.0
Add ItemTypes.TURTLE_HELMET - by ManInMyVan (af2a53a)
- Slightly change ignore-duplicate-packet-rotation logic - by ManInMyVan (
38a2ea4) - Move ExploitA & C to chat category - by ManInMyVan (
b563792) - Add KnownInput#moving - by ManInMyVan (
5fb8cd9) - PlayerData -> player - by ManInMyVan (
0844fc6) - Remove whitespace in EquipmentType - by ManInMyVan (
d1b0f4d) - Check for moving while chatting - by ManInMyVan (
135c90c) - Add Chat and Exploit to punishments - by ManInMyVan (
b4714b0) - Check if chat is hidden - by ManInMyVan (
4992cf6) - Descriptions for almost every place check - by ManInMyVan (
df31a39) - Validate anvil item name length - by ManInMyVan (
4b53457) - Payload system - by ManInMyVan (
1a6b6fc) - This took too long - by ManInMyVan (
8a2ca76) - Add missing return - by ManInMyVan (
ba18d4c) - BadPacketsJ should be stable - by ManInMyVan (
3b76ded) - ExploitC fail-fast page parsing - by ManInMyVan (
0ccd03a) - Finish ExploitC, replaces ExploitB - by ManInMyVan (
e16979b) - Add include-timestamp to discord.yml - by ManInMyVan (
7b82060) - Add /grim history (#2201)
- Add /grim history command to see historical alerts
-
Add basic runtime reloading support.
- Will only actually reload if current database is different/has different setting than the one requested in config.
-
Added [log] statements matching [alert] statements
-
Add more detailed error message if Grim history subsystem fails to load.
-
Refactor /grim history code; Fix autocomplete of online player names in /grim history
-
Fix error swapping checkName and verbose in SQLite implementation
-
Refactor /grim history to use more efficient long-term storage with compact UUIDs and string deduplication.
Grim old grim history data will not be migrated!
-
Replace %version% with grim version in /grim history entry output
-
Add support for %grim_version% %client_brand% %client_version% %server_version% substtuions in grim-history-entry - by Axionize (
3e9b53e)
- Make some checks run before via - by ManInMyVan (
2e9b086) - Bump Dependencies
gradlew-wrapper 8.13 -> 8.14.3
adventure 4.21.0 -> 4.23.0
adventure-platform-bukkit 4.3.4 -> 4.4.0
cloud-paper 2.0.0.-beta.10 -> 2.0.0.-beta.11
cloud-fabric 2.0.0.-beta.10 -> 2.0.0.-beta.11
packetevents 2.9.0-SNAPSHOT -> 2.9.2-SNAPSHOT
fabric-loader 0.16.10 -> 0.16.14
fabric-loom 1.10.5 -> 1.11.4
shadow 9.0.0-beta6 -> 9.0.0-rc1 - by Axionize (bbc1bee)
- Downgrade from shadow 9.0.0-rc1 to 9.0.0-beta8 to fix jar inflation bug with shading fastutil - by Axionize (
6e28434) - 1.21.8 Server Support - Bump PE - by Axionize (
4942401) - This should now be usable - by ManInMyVan (
6e58e8c) - No it shouldn't - by ManInMyVan (
8d3e77f) - There is no more via here - by ManInMyVan (
9da9c30) - SprintA verbose - by ManInMyVan (
ed727cc) - Packet cancelling in VehicleD - by ManInMyVan (
39b74b2) - Remove some empty lines - by ManInMyVan (
c7fbc4b) - Don't use ordinal for WindowClickType in CrashF - by ManInMyVan (
1b62b1d) - More pre-via
hopefully I didn't miss any getter changes - by ManInMyVan (d90de8f)
- Pre-via chat checks - by ManInMyVan (
51bbb31) - Small cleanup - by ManInMyVan (
2a7403b) - HOW DID I FORGET - by ManInMyVan (
ac2c9ea) - Temporary fix for BadPacketsE not working on vehicles - by Axionize (
2ad9818) - PacketOrderO - by ManInMyVan (
2e01399) - Pre-via block break checks - by ManInMyVan (
408c7d5) - BadPacketsO optimizations - by ManInMyVan (
354216f) - And it was not a teleport - by ManInMyVan (
85acf78) - These don't need to implement anything - by ManInMyVan (
02426ad) - Small stuff - by ManInMyVan (
1f052f6) - More small changes - by ManInMyVan (
95b080a) - More cleanup - by ManInMyVan (
d8b719d) - Add option to disable cancelling pong packets - by SamB440 (
933f6c7) - Hardcode more 1.21.4+ hand harvestables (#2213)
- Hardcode more 1.21.4+ Hand Harvestables
Fixes issue #2117 temporarily until PacketEvents resolves their api shortcoming (https://github.com/retrooper/packetevents/issues/1217)
-
Adjust variable name
-
Cleanup spacing in BlockBreakSpeed util
Co-authored-by: ManInMyVan 113963219+ManInMyVan@users.noreply.github.com
Co-authored-by: ManInMyVan 113963219+ManInMyVan@users.noreply.github.com - by Loki (533ae70)
- Temp revert pre-via - by ManInMyVan (
77c165c) - Revert "temp revert pre-via"
This reverts commit 77c165cfa83e35ef94c6049446a6eab847d4a080. - by ManInMyVan (2528ff5)
- Bump PacketEvents - by Axionize (
29e0c6e) - Add mavenCentral() to repositsories to download me.lucko:fabric-permissions-api:0.1-SNAPSHOT for Fabric 1.16.1 - by Axionize (
ba4bbef) - Shadow 9.0.0-rc2 (#2229)
OLD: grimac-bukkit-2.3.72-shadow-9-ba4bbef66-before.jar
NEW: grimac-bukkit-2.3.72-shadow-9-a14b4044a-after.jar
JAR │ old │ new │ diff
───────┼──────────┼──────────┼──────
class │ 20.9 MiB │ 20.9 MiB │ 0 B
other │ 1.5 MiB │ 1.5 MiB │ 0 B
───────┼──────────┼──────────┼──────
total │ 22.4 MiB │ 22.4 MiB │ 0 B
CLASSES │ old │ new │ diff
─────────┼───────┼───────┼───────────
classes │ 4603 │ 4603 │ 0 (+0 -0)
methods │ 53656 │ 53656 │ 0 (+0 -0)
fields │ 22173 │ 22173 │ 0 (+0 -0)
=================
==== JAR ====
=================
size │ diff │ path
──────┼──────┼─────────────────────────────────────────────────────────────────
0 B │ 0 B │ + META-INF/versions/9/ac/grim/grimac/shaded/snakeyaml/internal/
0 B │ 0 B │ + META-INF/versions/9/ac/grim/grimac/shaded/snakeyaml/
│ 0 B │ - META-INF/versions/9/org/yaml/snakeyaml/internal/
0 B │ 0 B │ + META-INF/versions/9/ac/grim/grimac/shaded/
│ 0 B │ - META-INF/versions/9/org/yaml/snakeyaml/
0 B │ 0 B │ + META-INF/versions/9/ac/grim/grimac/
│ 0 B │ - META-INF/versions/9/org/yaml/
0 B │ 0 B │ + META-INF/versions/9/ac/grim/
│ 0 B │ - META-INF/versions/9/org/
0 B │ 0 B │ + META-INF/versions/9/ac/
0 B │ 0 B │ + META-INF/services/
──────┼──────┼─────────────────────────────────────────────────────────────────
0 B │ 0 B │ (total)
``` - *by Zongle Wang* (`5a4471c`)
- Fix very rare Reach false for versions < 1.20.2 and > 1.21.4 involving rot only packets. See https://bugs.mojang.com/browse/MC/issues/MC-255263 - *by Axionize* (`3875a6b`)
- Amend previous Reach false fix to only apply in versions > 1.14.4 - *by Axionize* (`527c87e`)
- Fix FastBreak falses with 1.20.5+ custom tool rules. - *by Axionize* (`4b514e7`)
- Make ChatC and ChatB postViaChecks as temporary workaround to PE parsing limitations. - *by Axionize* (`31107ec`)
- [ci skip] Bump run-paper version - *by SamB440* (`cec0738`)
- Zero point zero three - *by SamB440* (`25b0582`)
- Disallow step after setback - *by SamB440* (`1136936`)
- [ci skip] Add client version to bypass issue template - *by SamB440* (`61f7ad8`)
- Refactor GrimDump: extract basic info generation to reusable getBasicInfo method - *by AoElite* (`a695dac`)
- Allow all functional urls to be changeable, move all grim system property usage to a dedicated class - *by AoElite* (`a9a2034`)
- Recode grim version command to use new api - *by AoElite* (`cd8d78d`)
- Add getVehicle() and getVehicleType() in GrimPlayer - *by ManInMyVan* (`647b13c`)
- Check if a player is in a boat when sending STEER_BOAT (Add VehicleE) - *by ManInMyVan* (`b5c14f4`)
- Validate STEER_BOAT values (Add VehicleF) - *by ManInMyVan* (`2e625e2`)
- Remove Check.isFlying - *by ManInMyVan* (`be120f0`)
- Make Check.isTransaction static - *by ManInMyVan* (`0a4a6cd`)
- Split isJumping and lastJumping into separate declarations - *by ManInMyVan* (`6787d1b`)
- Simplify FloodgateUtil - *by ManInMyVan* (`d2df1b7`)
- Use Math.PI in VanillaMath instead of the literal - *by ManInMyVan* (`7376468`)
- Don't use deprecated method ItemStack.getEnchantmentLevel(EnchantmentType, ClientVersion) in TridentItem - *by ManInMyVan* (`e433652`)
- Remove unused method BlockFaceHelper.offset - *by ManInMyVan* (`796a573`)
- Mark many utility classes as UtilityClass - *by ManInMyVan* (`380e3d9`)
- Don't use deprecated method ItemStack.getEnchantmentLevel(EnchantmentType, ClientVersion) in Riptide - *by ManInMyVan* (`376e7a9`)
- Rewrite GeyserUtil to not use reflection
except once - *by ManInMyVan* (`1ba072f`)
- Merge FloodgateUtil & GeyserUtil - *by ManInMyVan* (`a3108c7`)
- Remove Killaura from punishments.yml + add Interact in japanese punishments.yml - *by ManInMyVan* (`6ce610e`)
- Fix typo in help: section of en messages.yml causing error message on /grim help. Also make /grim help handle null lines - *by Axionize* (`94813c0`)
- Remove unused import in BlockFaceHelper - *by ManInMyVan* (`8cb4189`)
- Allow line break in pages - *by ManInMyVan* (`5761896`)
- Cleaner stuckSpeedMultiplier constants - *by ManInMyVan* (`03e1514`)
- Roll up shitmath bruteforce in PredictionEngineElytra - *by ManInMyVan* (`a953f50`)
- Add force-slow-movement and force-stuck-speed (intended for anarchy servers) - *by ManInMyVan* (`0dec743`)
- Update README.md and CONTRIBUTING.md - *by AoElite* (`c0b96ea`)
- Limit 1.21.5+ sprint attribute desync to minecarts - *by cyramek* (`fd59498`)
- More readable PredictionEngineElytra.applyInputsToVelocityPossibilities - *by ManInMyVan* (`28d8320`)
- Allow platform to be configured via system argument - *by AoElite* (`b997b6b`)
- Make PacketPlayerDigging pre-via: fix #2250
also move it before PreViaCheckManagerListener - *by ManInMyVan* (`97c1bdd`)
- Remove unused imports in ChatA/B - *by ManInMyVan* (`1c46546`)
- Add support for SET_PLAYER_INVENTORY packet - *by SamB440* (`17a8d3b`)
- Add some utilities - *by AoElite* (`090d1a8`)
- Reduce the number of tasks for updating permissions - *by AoElite* (`4702add`)
- Add GrimList command for debugging exemptions - *by AoElite* (`dbac8bc`)
- Don't allow sending OFF_HAND in USE_ITEM to bypass noslow - *by ManInMyVan* (`ff9af98`)
- Get item in PacketPlayerDigging.handleUseItem instead of it being passed - *by ManInMyVan* (`a7f8c77`)
- Use getItemInHand in PacketPlayerDigging - *by ManInMyVan* (`d71239b`)
- Only set NoSlow.didSlotChangeLastTick if the slot actually changed - *by ManInMyVan* (`aab6908`)
- PacketStateData.eatingHand -> itemInUseHand - *by ManInMyVan* (`b37393c`)
- Make PacketStateData.isSlowedByUsingItem() based on slowedByUsingItemSlot
the slowedByUsingItem is redundant - *by ManInMyVan* (`cecf5fb`)
- Reduce runnables with world borders - *by ManInMyVan* (`21ef46a`)
- Cache default input value; reduce memory usage for pre-1.21.2 players - *by ManInMyVan* (`eddb14b`)
- Normalize trighandler param names - *by ManInMyVan* (`b44dd89`)
- Mark GrimMath methods as pure - *by ManInMyVan* (`566dc9b`)
- Make Ray fields final - *by ManInMyVan* (`f87a077`)
- Don't use deprecated method ItemStack.getEnchantmentLevel(EnchantmentType, ClientVersion) - *by ManInMyVan* (`d2a8dce`)
- Replace ChannelHelper.runInEventLoop with GrimPlayer#runSafely - *by ManInMyVan* (`3f17557`)
- Move ComprensatedInventory instance to GrimPlayer - *by ManInMyVan* (`ea5ed06`)
- Simplify ViaVersionUtil - *by ManInMyVan* (`42d247b`)
- Clean up EntityPredicates - *by ManInMyVan* (`e26cf0f`)
- Make MainSupportingBlockData a record - *by ManInMyVan* (`64ebdf2`)
- Use GrimMath.radians in JumpPower - *by ManInMyVan* (`2b03755`)
- Make Dripstone.update(...) void - *by ManInMyVan* (`9f4c321`)
- Remove GrimPlayer#isEyeInFluid(FluidTag) - *by ManInMyVan* (`4e1320f`)
- Deobf FluidFallingAdjustedMovement.getFluidFallingAdjustedMovement(...) - *by ManInMyVan* (`dc03060`)
- Protected -> private in final class - *by ManInMyVan* (`0bf3a21`)
- Remove GrimPlayer#getInventory() - *by ManInMyVan* (`bd4cd31`)
- Fix riptide velocity (#2262) - *by Ayou* (`0586ea5`)
- Read event after getting player - *by ManInMyVan* (`a8693c3`)
- Read event after getting player - *by ManInMyVan* (`070116b`)
- Remove unused imports - *by ManInMyVan* (`f739b1e`)
- Only do NoSlow checks if trident is not enchanted with Riptide
This is not vanilla, but this is what the legacy handler does. To implement this properly, we would need to track biomes AND skylight, which is very memory-expensive.
fix: https://github.com/GrimAnticheat/Grim/issues/2259 - *by cyramek* (`b7c5837`)
- Fix FastBreak falses white riding entity (#2273) - *by EternalHuman* (`57a9f8f`)
- Ensure fabric uses our packetevents fork - *by AoElite* (`846e9ad`)
- Update packetevents - *by AoElite* (`a02f49e`)
- Update workflow - *by AoElite* (`db92c65`)
- Remove workflow paths - *by AoElite* (`becbba3`)
- Tweak workflow - *by AoElite* (`e368bc8`)
- Remove secret requirement - *by AoElite* (`184050b`)
- Add back workflow paths - *by AoElite* (`c2a07bd`)
- Revert pre via (#2280)
* revert pre-via part 1
* don't register checks multiple times
* revert pre-via part 1
* don't register checks multiple times
* fix merge conflicts
---------
Co-authored-by: cyramek <xcyramek@gmail.com> - *by SamB440* (`cb13221`)
- Optimize away entity collision check in 1.8 (#2269) - *by Pablo Herrera* (`fe7a263`)
- Add repo.grim.ac for 1.16.1 so fabric-permissions-api will be downloaded - *by Axionize* (`293f6ea`)
- Disable CodeQL workflow schedule - *by AoElite* (`b70abbe`)
- Enable parallel building - *by AoElite* (`9b2b080`)
- Update gradle publishing actions, remove action dependency requirement, disabled building and publishing of lite - *by AoElite* (`2403bc5`)
- Update the checkout action to v5 in CodeQL workflow - *by AoElite* (`a0bd388`)
- Bump lombok plugin to 9.0.0 - *by AoElite* (`9618912`)
- Use different approach in Gradle version extraction in the publishing workflow - *by AoElite* (`2a5979c`)
- Simplify version extraction - *by AoElite* (`088621f`)
- Add a build properties file to include more details about the build - *by AoElite* (`c428bf6`)
- Use GitHub's default branch instead of assuming 2.0 - *by AoElite* (`18d1602`)
- Remove unused `mainBranch` property from BuildConfig - *by AoElite* (`f54ceb6`)
- Exclude pull requests - *by AoElite* (`01ff3ec`)
- Add build properties to dump - *by AoElite* (`8d25519`)
- Correct formatting for conditional checks in gradle-publish workflow - *by AoElite* (`1f16d7b`)
- Update readme - *by AoElite* (`4be2549`)
- Specify java version fpr codeql - *by AoElite* (`fb926ab`)
- Modify grim startup update check failure message - *by Axionize* (`3ac26d0`)
- Update new release/alpha build workflow - *by Axionize* (`cbc2f51`)
- Run workflow on .github/workflows/** update - *by Axionize* (`8f78556`)
- Update buildscript to be more flexible; add support for gradle build scans - *by Axionize* (`2df4c23`)
- Bugfix - *by Axionize* (`dda1332`)
- Build script fix - *by Axionize* (`a74e10e`)
- Remove -q from printVersion so when --scan is applied logs print out - *by Axionize* (`2f8a473`)
- Print out build scan url not found when --scan enabled and url not found - *by Axionize* (`b72485d`)
- Fix escpaing some stings in preparing final changelog - *by Axionize* (`a26951c`)
- Use secrets for MODRINTH_ID - *by Axionize* (`50f3d84`)
- Fix using secrets for MODRINTH_ID in workflows - *by Axionize* (`b824ce1`)
- Fix using secrets for MODRINTH_ID in workflows again - *by Axionize* (`0095f8a`)
- Buildscript patches - *by Axionize* (`d15a2dd`)
- Even more robust sanitization - *by Axionize* (`0fd2a96`)
- Add reset-item-usage-on-item-use - *by ManInMyVan* (`aa4c6e0`)
- Small cleanup (mostly making things private & final) - *by ManInMyVan* (`8d1ee00`)
- Make devvelocity build scan integration only run on --scan being applied; Update foojay resolver convention; - *by Axionize* (`e009389`)
- Implement API v1.2.0: Improve EventBus usability and fix reflection bugs
This update contains numerous fixes and improvements to the API, focusing on developer experience and robustness.
feat(api): Simplify EventBus registration with context resolvers
- Removes the requirement for developers to manually construct a GrimPlugin instance to use the EventBus.
- The new GrimExtensionManager uses platform-specific resolvers to automatically determine the context from common object types, reducing boilerplate.
- On Bukkit, developers can now pass:
- A `Plugin` instance (e.g., `this` from their main plugin class)
- Any `Class` from the plugin's JAR (e.g., `MyListener.class`)
- The plugin's name as a `String`
- On Fabric, developers can now pass:
- A mod's entrypoint instance (e.g., `this` from an Initializer)
- The mod ID as a `String`
- A `ModContainer` instance
- Any `Class` from the mod's JAR
fix(api): Correctly invoke reflected event listeners
- Fixes a critical bug causing a `ClassCastException` for listeners registered via `registerAnnotatedListeners`. Listeners are now correctly fired only for their declared event type. `subscribe()` remains the recommended registration method.
perf(api): Optimize invocation of reflected listeners
- Slightly improves performance of reflected listeners by removing a redundant runtime null-check from the hot path of every event call.
refactor(core): Moved concrete EventBus implementation from API to common module
- The `OptimizedEventBus` implementation has been relocated to the `common` module to better separate the public API contract from its internal logic. - *by Axionize* (`12e79a1`)
- Make ExplosionHandler#firstBreadMap private - *by ManInMyVan* (`258ef06`)
- XRot & yRot -> yaw & pitch - *by ManInMyVan* (`662d02c`)
- Deobf getNearestLookingDirections() - *by ManInMyVan* (`141ccae`)
### 🐛 Fixes
- Fix #2190 - *by ManInMyVan* (`bb7ba08`)
- Fix more SprintE falses - *by ManInMyVan* (`d835314`)
- Fix various vehicle issues [1.21.2] (#2185)
* fix happyghast step, collisions with fluids
warn about viabackwards compatibility
* fix 1.21.2+ riding without control
* use known input sneaking status if server support that
* fix fluid current pushing logic for happyghasts
* actually fix fluid pushing for happyghast
* fix vehicle input calculations for <=1.21.1 servers
* fix elytra inputs
* Revert 'fix elytra inputs'
* use pre-via listeners for sneaking
* remove warnings for sneaking issues on newer server versions
* fix float/double error causing 1e-8 imprecision when jumping on a horse
* workaround false positives when jumping on a horse
* add camel entity type
* only do this for 1.21.2+ client on 1.21.2+ servers
* build with new Grim PacketEvents fork snapshot with support for pre-via injection on Fabric - *by Cyramek* (`978364a`)
- Fix ExploitB false on pre 1.16 clients - *by ManInMyVan* (`2518ced`)
- Fix ExploitC on 1.9-1.12 servers - *by ManInMyVan* (`18f0a2a`)
- Fix vehicle relative teleport/vehicle 1.12.2+ teleport system (#2200)
* fix vehicle relative teleport/vehicle 1.12.2+ teleport system
* only mark teleports for re-encoding if we’re actually rewriting them - *by Cyramek* (`4156768`)
- Fix HappyGhast false positives when holding space
fix: https://github.com/GrimAnticheat/Grim/issues/2203 - *by cyramek* (`c66de10`)
- Https://github.com/GrimAnticheat/Grim/issues/2209 - *by cyramek* (`c37a79b`)
- Fix #2211 - *by ManInMyVan* (`9ab2f2e`)
- Fix NPE in BlockPlaceCheck#getCombinedBox (#2215) - *by Ayou* (`e2cf0fa`)
- Fix getting block jump factor in older versions - *by cyramek* (`b88dfa7`)
- Fix exception - *by ManInMyVan* (`3de670e`)
- Fix #2221 - *by ManInMyVan* (`fe1c6bf`)
- Fix PacketOrderO falses in vehicles - *by ManInMyVan* (`4287f62`)
- Fix ChatA/ChatB falses from 31107ec4b - *by ManInMyVan* (`38ccc55`)
- Shitmath look vector - *by ManInMyVan* (`0340e07`)
- Use stuckSpeedMultiplier instead of 0.99, 0.98, 0.99 - *by ManInMyVan* (`6320fa6`)
- Fix CrashH false - *by AoElite* (`8f1e993`)
- Fix deprecated method call ItemStack.getEnchantmentLevel(EnchantmentType, ClientVersion) - *by ManInMyVan* (`345502b`)
- Fix RunningMode field modifiers - *by ManInMyVan* (`9ea389b`)
- Fixed some minor build warnings - *by AoElite* (`c90d7ab`)
- Fix workflow - *by AoElite* (`fefaa57`)
- Fix repo property including org - *by AoElite* (`40a4c08`)
- Fix leaf litter hitbox - *by ManInMyVan* (`c10e74c`)
- Fix segmented hitboxes - *by ManInMyVan* (`cc10288`)
- Fix a few warns - *by ManInMyVan* (`c422173`)
### 🤖 Maintenance & CI
- Add cliff.toml file for defining git-cliff formatting of changelogs - *by Axionize* (`a239560`)
- Create GitHub Actions script for auto-building lite version and publishing to Modrinth w/changelog - *by Axionize* (`0374b8c`)
- Replace vars.MODRINTH_ID with secrets.MODRINTH_ID to match repository Actions' settings - *by Axionize* (`5183ad8`)
- Fix generating changelog content in GitHub Actions - *by Axionize* (`2bf1260`)
- Fix escaping characters in changelog generation - *by Axionize* (`ba305cf`)
- Fix supported versions for Bukkit in Modrinth upload and Fabric dependences - *by Axionize* (`b0906d9`)
Grim Anticheat (Fabric) 2.3.72-0e6d116
on Oct 7, 2025Grim Anticheat (Bukkit) 2.3.72-0e6d116
on Oct 7, 2025Changes in this Build (since previous push)
Miscellaneous
- Add ItemTypes.TURTLE_HELMET - by Ayou (
d657aec) - Merge pull request #2193 from Ayouuuu/2.0
Add ItemTypes.TURTLE_HELMET - by ManInMyVan (af2a53a)
- Slightly change ignore-duplicate-packet-rotation logic - by ManInMyVan (
38a2ea4) - Move ExploitA & C to chat category - by ManInMyVan (
b563792) - Add KnownInput#moving - by ManInMyVan (
5fb8cd9) - PlayerData -> player - by ManInMyVan (
0844fc6) - Remove whitespace in EquipmentType - by ManInMyVan (
d1b0f4d) - Check for moving while chatting - by ManInMyVan (
135c90c) - Add Chat and Exploit to punishments - by ManInMyVan (
b4714b0) - Check if chat is hidden - by ManInMyVan (
4992cf6) - Descriptions for almost every place check - by ManInMyVan (
df31a39) - Validate anvil item name length - by ManInMyVan (
4b53457) - Payload system - by ManInMyVan (
1a6b6fc) - This took too long - by ManInMyVan (
8a2ca76) - Add missing return - by ManInMyVan (
ba18d4c) - BadPacketsJ should be stable - by ManInMyVan (
3b76ded) - ExploitC fail-fast page parsing - by ManInMyVan (
0ccd03a) - Finish ExploitC, replaces ExploitB - by ManInMyVan (
e16979b) - Add include-timestamp to discord.yml - by ManInMyVan (
7b82060) - Add /grim history (#2201)
- Add /grim history command to see historical alerts
-
Add basic runtime reloading support.
- Will only actually reload if current database is different/has different setting than the one requested in config.
-
Added [log] statements matching [alert] statements
-
Add more detailed error message if Grim history subsystem fails to load.
-
Refactor /grim history code; Fix autocomplete of online player names in /grim history
-
Fix error swapping checkName and verbose in SQLite implementation
-
Refactor /grim history to use more efficient long-term storage with compact UUIDs and string deduplication.
Grim old grim history data will not be migrated!
-
Replace %version% with grim version in /grim history entry output
-
Add support for %grim_version% %client_brand% %client_version% %server_version% substtuions in grim-history-entry - by Axionize (
3e9b53e)
- Make some checks run before via - by ManInMyVan (
2e9b086) - Bump Dependencies
gradlew-wrapper 8.13 -> 8.14.3
adventure 4.21.0 -> 4.23.0
adventure-platform-bukkit 4.3.4 -> 4.4.0
cloud-paper 2.0.0.-beta.10 -> 2.0.0.-beta.11
cloud-fabric 2.0.0.-beta.10 -> 2.0.0.-beta.11
packetevents 2.9.0-SNAPSHOT -> 2.9.2-SNAPSHOT
fabric-loader 0.16.10 -> 0.16.14
fabric-loom 1.10.5 -> 1.11.4
shadow 9.0.0-beta6 -> 9.0.0-rc1 - by Axionize (bbc1bee)
- Downgrade from shadow 9.0.0-rc1 to 9.0.0-beta8 to fix jar inflation bug with shading fastutil - by Axionize (
6e28434) - 1.21.8 Server Support - Bump PE - by Axionize (
4942401) - This should now be usable - by ManInMyVan (
6e58e8c) - No it shouldn't - by ManInMyVan (
8d3e77f) - There is no more via here - by ManInMyVan (
9da9c30) - SprintA verbose - by ManInMyVan (
ed727cc) - Packet cancelling in VehicleD - by ManInMyVan (
39b74b2) - Remove some empty lines - by ManInMyVan (
c7fbc4b) - Don't use ordinal for WindowClickType in CrashF - by ManInMyVan (
1b62b1d) - More pre-via
hopefully I didn't miss any getter changes - by ManInMyVan (d90de8f)
- Pre-via chat checks - by ManInMyVan (
51bbb31) - Small cleanup - by ManInMyVan (
2a7403b) - HOW DID I FORGET - by ManInMyVan (
ac2c9ea) - Temporary fix for BadPacketsE not working on vehicles - by Axionize (
2ad9818) - PacketOrderO - by ManInMyVan (
2e01399) - Pre-via block break checks - by ManInMyVan (
408c7d5) - BadPacketsO optimizations - by ManInMyVan (
354216f) - And it was not a teleport - by ManInMyVan (
85acf78) - These don't need to implement anything - by ManInMyVan (
02426ad) - Small stuff - by ManInMyVan (
1f052f6) - More small changes - by ManInMyVan (
95b080a) - More cleanup - by ManInMyVan (
d8b719d) - Add option to disable cancelling pong packets - by SamB440 (
933f6c7) - Hardcode more 1.21.4+ hand harvestables (#2213)
- Hardcode more 1.21.4+ Hand Harvestables
Fixes issue #2117 temporarily until PacketEvents resolves their api shortcoming (https://github.com/retrooper/packetevents/issues/1217)
-
Adjust variable name
-
Cleanup spacing in BlockBreakSpeed util
Co-authored-by: ManInMyVan 113963219+ManInMyVan@users.noreply.github.com
Co-authored-by: ManInMyVan 113963219+ManInMyVan@users.noreply.github.com - by Loki (533ae70)
- Temp revert pre-via - by ManInMyVan (
77c165c) - Revert "temp revert pre-via"
This reverts commit 77c165cfa83e35ef94c6049446a6eab847d4a080. - by ManInMyVan (2528ff5)
- Bump PacketEvents - by Axionize (
29e0c6e) - Add mavenCentral() to repositsories to download me.lucko:fabric-permissions-api:0.1-SNAPSHOT for Fabric 1.16.1 - by Axionize (
ba4bbef) - Shadow 9.0.0-rc2 (#2229)
OLD: grimac-bukkit-2.3.72-shadow-9-ba4bbef66-before.jar
NEW: grimac-bukkit-2.3.72-shadow-9-a14b4044a-after.jar
JAR │ old │ new │ diff
───────┼──────────┼──────────┼──────
class │ 20.9 MiB │ 20.9 MiB │ 0 B
other │ 1.5 MiB │ 1.5 MiB │ 0 B
───────┼──────────┼──────────┼──────
total │ 22.4 MiB │ 22.4 MiB │ 0 B
CLASSES │ old │ new │ diff
─────────┼───────┼───────┼───────────
classes │ 4603 │ 4603 │ 0 (+0 -0)
methods │ 53656 │ 53656 │ 0 (+0 -0)
fields │ 22173 │ 22173 │ 0 (+0 -0)
=================
==== JAR ====
=================
size │ diff │ path
──────┼──────┼─────────────────────────────────────────────────────────────────
0 B │ 0 B │ + META-INF/versions/9/ac/grim/grimac/shaded/snakeyaml/internal/
0 B │ 0 B │ + META-INF/versions/9/ac/grim/grimac/shaded/snakeyaml/
│ 0 B │ - META-INF/versions/9/org/yaml/snakeyaml/internal/
0 B │ 0 B │ + META-INF/versions/9/ac/grim/grimac/shaded/
│ 0 B │ - META-INF/versions/9/org/yaml/snakeyaml/
0 B │ 0 B │ + META-INF/versions/9/ac/grim/grimac/
│ 0 B │ - META-INF/versions/9/org/yaml/
0 B │ 0 B │ + META-INF/versions/9/ac/grim/
│ 0 B │ - META-INF/versions/9/org/
0 B │ 0 B │ + META-INF/versions/9/ac/
0 B │ 0 B │ + META-INF/services/
──────┼──────┼─────────────────────────────────────────────────────────────────
0 B │ 0 B │ (total)
``` - *by Zongle Wang* (`5a4471c`)
- Fix very rare Reach false for versions < 1.20.2 and > 1.21.4 involving rot only packets. See https://bugs.mojang.com/browse/MC/issues/MC-255263 - *by Axionize* (`3875a6b`)
- Amend previous Reach false fix to only apply in versions > 1.14.4 - *by Axionize* (`527c87e`)
- Fix FastBreak falses with 1.20.5+ custom tool rules. - *by Axionize* (`4b514e7`)
- Make ChatC and ChatB postViaChecks as temporary workaround to PE parsing limitations. - *by Axionize* (`31107ec`)
- [ci skip] Bump run-paper version - *by SamB440* (`cec0738`)
- Zero point zero three - *by SamB440* (`25b0582`)
- Disallow step after setback - *by SamB440* (`1136936`)
- [ci skip] Add client version to bypass issue template - *by SamB440* (`61f7ad8`)
- Refactor GrimDump: extract basic info generation to reusable getBasicInfo method - *by AoElite* (`a695dac`)
- Allow all functional urls to be changeable, move all grim system property usage to a dedicated class - *by AoElite* (`a9a2034`)
- Recode grim version command to use new api - *by AoElite* (`cd8d78d`)
- Add getVehicle() and getVehicleType() in GrimPlayer - *by ManInMyVan* (`647b13c`)
- Check if a player is in a boat when sending STEER_BOAT (Add VehicleE) - *by ManInMyVan* (`b5c14f4`)
- Validate STEER_BOAT values (Add VehicleF) - *by ManInMyVan* (`2e625e2`)
- Remove Check.isFlying - *by ManInMyVan* (`be120f0`)
- Make Check.isTransaction static - *by ManInMyVan* (`0a4a6cd`)
- Split isJumping and lastJumping into separate declarations - *by ManInMyVan* (`6787d1b`)
- Simplify FloodgateUtil - *by ManInMyVan* (`d2df1b7`)
- Use Math.PI in VanillaMath instead of the literal - *by ManInMyVan* (`7376468`)
- Don't use deprecated method ItemStack.getEnchantmentLevel(EnchantmentType, ClientVersion) in TridentItem - *by ManInMyVan* (`e433652`)
- Remove unused method BlockFaceHelper.offset - *by ManInMyVan* (`796a573`)
- Mark many utility classes as UtilityClass - *by ManInMyVan* (`380e3d9`)
- Don't use deprecated method ItemStack.getEnchantmentLevel(EnchantmentType, ClientVersion) in Riptide - *by ManInMyVan* (`376e7a9`)
- Rewrite GeyserUtil to not use reflection
except once - *by ManInMyVan* (`1ba072f`)
- Merge FloodgateUtil & GeyserUtil - *by ManInMyVan* (`a3108c7`)
- Remove Killaura from punishments.yml + add Interact in japanese punishments.yml - *by ManInMyVan* (`6ce610e`)
- Fix typo in help: section of en messages.yml causing error message on /grim help. Also make /grim help handle null lines - *by Axionize* (`94813c0`)
- Remove unused import in BlockFaceHelper - *by ManInMyVan* (`8cb4189`)
- Allow line break in pages - *by ManInMyVan* (`5761896`)
- Cleaner stuckSpeedMultiplier constants - *by ManInMyVan* (`03e1514`)
- Roll up shitmath bruteforce in PredictionEngineElytra - *by ManInMyVan* (`a953f50`)
- Add force-slow-movement and force-stuck-speed (intended for anarchy servers) - *by ManInMyVan* (`0dec743`)
- Update README.md and CONTRIBUTING.md - *by AoElite* (`c0b96ea`)
- Limit 1.21.5+ sprint attribute desync to minecarts - *by cyramek* (`fd59498`)
- More readable PredictionEngineElytra.applyInputsToVelocityPossibilities - *by ManInMyVan* (`28d8320`)
- Allow platform to be configured via system argument - *by AoElite* (`b997b6b`)
- Make PacketPlayerDigging pre-via: fix #2250
also move it before PreViaCheckManagerListener - *by ManInMyVan* (`97c1bdd`)
- Remove unused imports in ChatA/B - *by ManInMyVan* (`1c46546`)
- Add support for SET_PLAYER_INVENTORY packet - *by SamB440* (`17a8d3b`)
- Add some utilities - *by AoElite* (`090d1a8`)
- Reduce the number of tasks for updating permissions - *by AoElite* (`4702add`)
- Add GrimList command for debugging exemptions - *by AoElite* (`dbac8bc`)
- Don't allow sending OFF_HAND in USE_ITEM to bypass noslow - *by ManInMyVan* (`ff9af98`)
- Get item in PacketPlayerDigging.handleUseItem instead of it being passed - *by ManInMyVan* (`a7f8c77`)
- Use getItemInHand in PacketPlayerDigging - *by ManInMyVan* (`d71239b`)
- Only set NoSlow.didSlotChangeLastTick if the slot actually changed - *by ManInMyVan* (`aab6908`)
- PacketStateData.eatingHand -> itemInUseHand - *by ManInMyVan* (`b37393c`)
- Make PacketStateData.isSlowedByUsingItem() based on slowedByUsingItemSlot
the slowedByUsingItem is redundant - *by ManInMyVan* (`cecf5fb`)
- Reduce runnables with world borders - *by ManInMyVan* (`21ef46a`)
- Cache default input value; reduce memory usage for pre-1.21.2 players - *by ManInMyVan* (`eddb14b`)
- Normalize trighandler param names - *by ManInMyVan* (`b44dd89`)
- Mark GrimMath methods as pure - *by ManInMyVan* (`566dc9b`)
- Make Ray fields final - *by ManInMyVan* (`f87a077`)
- Don't use deprecated method ItemStack.getEnchantmentLevel(EnchantmentType, ClientVersion) - *by ManInMyVan* (`d2a8dce`)
- Replace ChannelHelper.runInEventLoop with GrimPlayer#runSafely - *by ManInMyVan* (`3f17557`)
- Move ComprensatedInventory instance to GrimPlayer - *by ManInMyVan* (`ea5ed06`)
- Simplify ViaVersionUtil - *by ManInMyVan* (`42d247b`)
- Clean up EntityPredicates - *by ManInMyVan* (`e26cf0f`)
- Make MainSupportingBlockData a record - *by ManInMyVan* (`64ebdf2`)
- Use GrimMath.radians in JumpPower - *by ManInMyVan* (`2b03755`)
- Make Dripstone.update(...) void - *by ManInMyVan* (`9f4c321`)
- Remove GrimPlayer#isEyeInFluid(FluidTag) - *by ManInMyVan* (`4e1320f`)
- Deobf FluidFallingAdjustedMovement.getFluidFallingAdjustedMovement(...) - *by ManInMyVan* (`dc03060`)
- Protected -> private in final class - *by ManInMyVan* (`0bf3a21`)
- Remove GrimPlayer#getInventory() - *by ManInMyVan* (`bd4cd31`)
- Fix riptide velocity (#2262) - *by Ayou* (`0586ea5`)
- Read event after getting player - *by ManInMyVan* (`a8693c3`)
- Read event after getting player - *by ManInMyVan* (`070116b`)
- Remove unused imports - *by ManInMyVan* (`f739b1e`)
- Only do NoSlow checks if trident is not enchanted with Riptide
This is not vanilla, but this is what the legacy handler does. To implement this properly, we would need to track biomes AND skylight, which is very memory-expensive.
fix: https://github.com/GrimAnticheat/Grim/issues/2259 - *by cyramek* (`b7c5837`)
- Fix FastBreak falses white riding entity (#2273) - *by EternalHuman* (`57a9f8f`)
- Ensure fabric uses our packetevents fork - *by AoElite* (`846e9ad`)
- Update packetevents - *by AoElite* (`a02f49e`)
- Update workflow - *by AoElite* (`db92c65`)
- Remove workflow paths - *by AoElite* (`becbba3`)
- Tweak workflow - *by AoElite* (`e368bc8`)
- Remove secret requirement - *by AoElite* (`184050b`)
- Add back workflow paths - *by AoElite* (`c2a07bd`)
- Revert pre via (#2280)
* revert pre-via part 1
* don't register checks multiple times
* revert pre-via part 1
* don't register checks multiple times
* fix merge conflicts
---------
Co-authored-by: cyramek <xcyramek@gmail.com> - *by SamB440* (`cb13221`)
- Optimize away entity collision check in 1.8 (#2269) - *by Pablo Herrera* (`fe7a263`)
- Add repo.grim.ac for 1.16.1 so fabric-permissions-api will be downloaded - *by Axionize* (`293f6ea`)
- Disable CodeQL workflow schedule - *by AoElite* (`b70abbe`)
- Enable parallel building - *by AoElite* (`9b2b080`)
- Update gradle publishing actions, remove action dependency requirement, disabled building and publishing of lite - *by AoElite* (`2403bc5`)
- Update the checkout action to v5 in CodeQL workflow - *by AoElite* (`a0bd388`)
- Bump lombok plugin to 9.0.0 - *by AoElite* (`9618912`)
- Use different approach in Gradle version extraction in the publishing workflow - *by AoElite* (`2a5979c`)
- Simplify version extraction - *by AoElite* (`088621f`)
- Add a build properties file to include more details about the build - *by AoElite* (`c428bf6`)
- Use GitHub's default branch instead of assuming 2.0 - *by AoElite* (`18d1602`)
- Remove unused `mainBranch` property from BuildConfig - *by AoElite* (`f54ceb6`)
- Exclude pull requests - *by AoElite* (`01ff3ec`)
- Add build properties to dump - *by AoElite* (`8d25519`)
- Correct formatting for conditional checks in gradle-publish workflow - *by AoElite* (`1f16d7b`)
- Update readme - *by AoElite* (`4be2549`)
- Specify java version fpr codeql - *by AoElite* (`fb926ab`)
- Modify grim startup update check failure message - *by Axionize* (`3ac26d0`)
- Update new release/alpha build workflow - *by Axionize* (`cbc2f51`)
- Run workflow on .github/workflows/** update - *by Axionize* (`8f78556`)
- Update buildscript to be more flexible; add support for gradle build scans - *by Axionize* (`2df4c23`)
- Bugfix - *by Axionize* (`dda1332`)
- Build script fix - *by Axionize* (`a74e10e`)
- Remove -q from printVersion so when --scan is applied logs print out - *by Axionize* (`2f8a473`)
- Print out build scan url not found when --scan enabled and url not found - *by Axionize* (`b72485d`)
- Fix escpaing some stings in preparing final changelog - *by Axionize* (`a26951c`)
- Use secrets for MODRINTH_ID - *by Axionize* (`50f3d84`)
- Fix using secrets for MODRINTH_ID in workflows - *by Axionize* (`b824ce1`)
- Fix using secrets for MODRINTH_ID in workflows again - *by Axionize* (`0095f8a`)
- Buildscript patches - *by Axionize* (`d15a2dd`)
- Even more robust sanitization - *by Axionize* (`0fd2a96`)
- Add reset-item-usage-on-item-use - *by ManInMyVan* (`aa4c6e0`)
- Small cleanup (mostly making things private & final) - *by ManInMyVan* (`8d1ee00`)
- Make devvelocity build scan integration only run on --scan being applied; Update foojay resolver convention; - *by Axionize* (`e009389`)
- Implement API v1.2.0: Improve EventBus usability and fix reflection bugs
This update contains numerous fixes and improvements to the API, focusing on developer experience and robustness.
feat(api): Simplify EventBus registration with context resolvers
- Removes the requirement for developers to manually construct a GrimPlugin instance to use the EventBus.
- The new GrimExtensionManager uses platform-specific resolvers to automatically determine the context from common object types, reducing boilerplate.
- On Bukkit, developers can now pass:
- A `Plugin` instance (e.g., `this` from their main plugin class)
- Any `Class` from the plugin's JAR (e.g., `MyListener.class`)
- The plugin's name as a `String`
- On Fabric, developers can now pass:
- A mod's entrypoint instance (e.g., `this` from an Initializer)
- The mod ID as a `String`
- A `ModContainer` instance
- Any `Class` from the mod's JAR
fix(api): Correctly invoke reflected event listeners
- Fixes a critical bug causing a `ClassCastException` for listeners registered via `registerAnnotatedListeners`. Listeners are now correctly fired only for their declared event type. `subscribe()` remains the recommended registration method.
perf(api): Optimize invocation of reflected listeners
- Slightly improves performance of reflected listeners by removing a redundant runtime null-check from the hot path of every event call.
refactor(core): Moved concrete EventBus implementation from API to common module
- The `OptimizedEventBus` implementation has been relocated to the `common` module to better separate the public API contract from its internal logic. - *by Axionize* (`12e79a1`)
- Make ExplosionHandler#firstBreadMap private - *by ManInMyVan* (`258ef06`)
- XRot & yRot -> yaw & pitch - *by ManInMyVan* (`662d02c`)
- Deobf getNearestLookingDirections() - *by ManInMyVan* (`141ccae`)
- Nullability annotations & deobfing - *by ManInMyVan* (`0e6d116`)
### 🐛 Fixes
- Fix #2190 - *by ManInMyVan* (`bb7ba08`)
- Fix more SprintE falses - *by ManInMyVan* (`d835314`)
- Fix various vehicle issues [1.21.2] (#2185)
* fix happyghast step, collisions with fluids
warn about viabackwards compatibility
* fix 1.21.2+ riding without control
* use known input sneaking status if server support that
* fix fluid current pushing logic for happyghasts
* actually fix fluid pushing for happyghast
* fix vehicle input calculations for <=1.21.1 servers
* fix elytra inputs
* Revert 'fix elytra inputs'
* use pre-via listeners for sneaking
* remove warnings for sneaking issues on newer server versions
* fix float/double error causing 1e-8 imprecision when jumping on a horse
* workaround false positives when jumping on a horse
* add camel entity type
* only do this for 1.21.2+ client on 1.21.2+ servers
* build with new Grim PacketEvents fork snapshot with support for pre-via injection on Fabric - *by Cyramek* (`978364a`)
- Fix ExploitB false on pre 1.16 clients - *by ManInMyVan* (`2518ced`)
- Fix ExploitC on 1.9-1.12 servers - *by ManInMyVan* (`18f0a2a`)
- Fix vehicle relative teleport/vehicle 1.12.2+ teleport system (#2200)
* fix vehicle relative teleport/vehicle 1.12.2+ teleport system
* only mark teleports for re-encoding if we’re actually rewriting them - *by Cyramek* (`4156768`)
- Fix HappyGhast false positives when holding space
fix: https://github.com/GrimAnticheat/Grim/issues/2203 - *by cyramek* (`c66de10`)
- Https://github.com/GrimAnticheat/Grim/issues/2209 - *by cyramek* (`c37a79b`)
- Fix #2211 - *by ManInMyVan* (`9ab2f2e`)
- Fix NPE in BlockPlaceCheck#getCombinedBox (#2215) - *by Ayou* (`e2cf0fa`)
- Fix getting block jump factor in older versions - *by cyramek* (`b88dfa7`)
- Fix exception - *by ManInMyVan* (`3de670e`)
- Fix #2221 - *by ManInMyVan* (`fe1c6bf`)
- Fix PacketOrderO falses in vehicles - *by ManInMyVan* (`4287f62`)
- Fix ChatA/ChatB falses from 31107ec4b - *by ManInMyVan* (`38ccc55`)
- Shitmath look vector - *by ManInMyVan* (`0340e07`)
- Use stuckSpeedMultiplier instead of 0.99, 0.98, 0.99 - *by ManInMyVan* (`6320fa6`)
- Fix CrashH false - *by AoElite* (`8f1e993`)
- Fix deprecated method call ItemStack.getEnchantmentLevel(EnchantmentType, ClientVersion) - *by ManInMyVan* (`345502b`)
- Fix RunningMode field modifiers - *by ManInMyVan* (`9ea389b`)
- Fixed some minor build warnings - *by AoElite* (`c90d7ab`)
- Fix workflow - *by AoElite* (`fefaa57`)
- Fix repo property including org - *by AoElite* (`40a4c08`)
- Fix leaf litter hitbox - *by ManInMyVan* (`c10e74c`)
- Fix segmented hitboxes - *by ManInMyVan* (`cc10288`)
- Fix a few warns - *by ManInMyVan* (`c422173`)
### 🤖 Maintenance & CI
- Add cliff.toml file for defining git-cliff formatting of changelogs - *by Axionize* (`a239560`)
- Create GitHub Actions script for auto-building lite version and publishing to Modrinth w/changelog - *by Axionize* (`0374b8c`)
- Replace vars.MODRINTH_ID with secrets.MODRINTH_ID to match repository Actions' settings - *by Axionize* (`5183ad8`)
- Fix generating changelog content in GitHub Actions - *by Axionize* (`2bf1260`)
- Fix escaping characters in changelog generation - *by Axionize* (`ba305cf`)
- Fix supported versions for Bukkit in Modrinth upload and Fabric dependences - *by Axionize* (`b0906d9`)
Grim Anticheat (Fabric) 2.3.72-12e79a1
on Oct 6, 2025Grim Anticheat (Bukkit) 2.3.72-12e79a1
on Oct 6, 2025Changes in this Build (since previous push)
Miscellaneous
- Normalize PredictionEngine class names - by ManInMyVan (
3c56235) - A bit more cleanup - by ManInMyVan (
d2913b3) - Merge pull request #2188 from Cyramek/fix-vehicle-soft-collisions
fix soft collisions for vehicles - by SamB440 (ddcc5a2)
- Add ItemTypes.TURTLE_HELMET - by Ayou (
d657aec) - Merge pull request #2193 from Ayouuuu/2.0
Add ItemTypes.TURTLE_HELMET - by ManInMyVan (af2a53a)
- Slightly change ignore-duplicate-packet-rotation logic - by ManInMyVan (
38a2ea4) - Move ExploitA & C to chat category - by ManInMyVan (
b563792) - Add KnownInput#moving - by ManInMyVan (
5fb8cd9) - PlayerData -> player - by ManInMyVan (
0844fc6) - Remove whitespace in EquipmentType - by ManInMyVan (
d1b0f4d) - Check for moving while chatting - by ManInMyVan (
135c90c) - Add Chat and Exploit to punishments - by ManInMyVan (
b4714b0) - Check if chat is hidden - by ManInMyVan (
4992cf6) - Descriptions for almost every place check - by ManInMyVan (
df31a39) - Validate anvil item name length - by ManInMyVan (
4b53457) - Payload system - by ManInMyVan (
1a6b6fc) - This took too long - by ManInMyVan (
8a2ca76) - Add missing return - by ManInMyVan (
ba18d4c) - BadPacketsJ should be stable - by ManInMyVan (
3b76ded) - ExploitC fail-fast page parsing - by ManInMyVan (
0ccd03a) - Finish ExploitC, replaces ExploitB - by ManInMyVan (
e16979b) - Add include-timestamp to discord.yml - by ManInMyVan (
7b82060) - Add /grim history (#2201)
- Add /grim history command to see historical alerts
-
Add basic runtime reloading support.
- Will only actually reload if current database is different/has different setting than the one requested in config.
-
Added [log] statements matching [alert] statements
-
Add more detailed error message if Grim history subsystem fails to load.
-
Refactor /grim history code; Fix autocomplete of online player names in /grim history
-
Fix error swapping checkName and verbose in SQLite implementation
-
Refactor /grim history to use more efficient long-term storage with compact UUIDs and string deduplication.
Grim old grim history data will not be migrated!
-
Replace %version% with grim version in /grim history entry output
-
Add support for %grim_version% %client_brand% %client_version% %server_version% substtuions in grim-history-entry - by Axionize (
3e9b53e)
- Make some checks run before via - by ManInMyVan (
2e9b086) - Bump Dependencies
gradlew-wrapper 8.13 -> 8.14.3
adventure 4.21.0 -> 4.23.0
adventure-platform-bukkit 4.3.4 -> 4.4.0
cloud-paper 2.0.0.-beta.10 -> 2.0.0.-beta.11
cloud-fabric 2.0.0.-beta.10 -> 2.0.0.-beta.11
packetevents 2.9.0-SNAPSHOT -> 2.9.2-SNAPSHOT
fabric-loader 0.16.10 -> 0.16.14
fabric-loom 1.10.5 -> 1.11.4
shadow 9.0.0-beta6 -> 9.0.0-rc1 - by Axionize (bbc1bee)
- Downgrade from shadow 9.0.0-rc1 to 9.0.0-beta8 to fix jar inflation bug with shading fastutil - by Axionize (
6e28434) - 1.21.8 Server Support - Bump PE - by Axionize (
4942401) - This should now be usable - by ManInMyVan (
6e58e8c) - No it shouldn't - by ManInMyVan (
8d3e77f) - There is no more via here - by ManInMyVan (
9da9c30) - SprintA verbose - by ManInMyVan (
ed727cc) - Packet cancelling in VehicleD - by ManInMyVan (
39b74b2) - Remove some empty lines - by ManInMyVan (
c7fbc4b) - Don't use ordinal for WindowClickType in CrashF - by ManInMyVan (
1b62b1d) - More pre-via
hopefully I didn't miss any getter changes - by ManInMyVan (d90de8f)
- Pre-via chat checks - by ManInMyVan (
51bbb31) - Small cleanup - by ManInMyVan (
2a7403b) - HOW DID I FORGET - by ManInMyVan (
ac2c9ea) - Temporary fix for BadPacketsE not working on vehicles - by Axionize (
2ad9818) - PacketOrderO - by ManInMyVan (
2e01399) - Pre-via block break checks - by ManInMyVan (
408c7d5) - BadPacketsO optimizations - by ManInMyVan (
354216f) - And it was not a teleport - by ManInMyVan (
85acf78) - These don't need to implement anything - by ManInMyVan (
02426ad) - Small stuff - by ManInMyVan (
1f052f6) - More small changes - by ManInMyVan (
95b080a) - More cleanup - by ManInMyVan (
d8b719d) - Add option to disable cancelling pong packets - by SamB440 (
933f6c7) - Hardcode more 1.21.4+ hand harvestables (#2213)
- Hardcode more 1.21.4+ Hand Harvestables
Fixes issue #2117 temporarily until PacketEvents resolves their api shortcoming (https://github.com/retrooper/packetevents/issues/1217)
-
Adjust variable name
-
Cleanup spacing in BlockBreakSpeed util
Co-authored-by: ManInMyVan 113963219+ManInMyVan@users.noreply.github.com
Co-authored-by: ManInMyVan 113963219+ManInMyVan@users.noreply.github.com - by Loki (533ae70)
- Temp revert pre-via - by ManInMyVan (
77c165c) - Revert "temp revert pre-via"
This reverts commit 77c165cfa83e35ef94c6049446a6eab847d4a080. - by ManInMyVan (2528ff5)
- Bump PacketEvents - by Axionize (
29e0c6e) - Add mavenCentral() to repositsories to download me.lucko:fabric-permissions-api:0.1-SNAPSHOT for Fabric 1.16.1 - by Axionize (
ba4bbef) - Shadow 9.0.0-rc2 (#2229)
OLD: grimac-bukkit-2.3.72-shadow-9-ba4bbef66-before.jar
NEW: grimac-bukkit-2.3.72-shadow-9-a14b4044a-after.jar
JAR │ old │ new │ diff
───────┼──────────┼──────────┼──────
class │ 20.9 MiB │ 20.9 MiB │ 0 B
other │ 1.5 MiB │ 1.5 MiB │ 0 B
───────┼──────────┼──────────┼──────
total │ 22.4 MiB │ 22.4 MiB │ 0 B
CLASSES │ old │ new │ diff
─────────┼───────┼───────┼───────────
classes │ 4603 │ 4603 │ 0 (+0 -0)
methods │ 53656 │ 53656 │ 0 (+0 -0)
fields │ 22173 │ 22173 │ 0 (+0 -0)
=================
==== JAR ====
=================
size │ diff │ path
──────┼──────┼─────────────────────────────────────────────────────────────────
0 B │ 0 B │ + META-INF/versions/9/ac/grim/grimac/shaded/snakeyaml/internal/
0 B │ 0 B │ + META-INF/versions/9/ac/grim/grimac/shaded/snakeyaml/
│ 0 B │ - META-INF/versions/9/org/yaml/snakeyaml/internal/
0 B │ 0 B │ + META-INF/versions/9/ac/grim/grimac/shaded/
│ 0 B │ - META-INF/versions/9/org/yaml/snakeyaml/
0 B │ 0 B │ + META-INF/versions/9/ac/grim/grimac/
│ 0 B │ - META-INF/versions/9/org/yaml/
0 B │ 0 B │ + META-INF/versions/9/ac/grim/
│ 0 B │ - META-INF/versions/9/org/
0 B │ 0 B │ + META-INF/versions/9/ac/
0 B │ 0 B │ + META-INF/services/
──────┼──────┼─────────────────────────────────────────────────────────────────
0 B │ 0 B │ (total)
``` - *by Zongle Wang* (`5a4471c`)
- Fix very rare Reach false for versions < 1.20.2 and > 1.21.4 involving rot only packets. See https://bugs.mojang.com/browse/MC/issues/MC-255263 - *by Axionize* (`3875a6b`)
- Amend previous Reach false fix to only apply in versions > 1.14.4 - *by Axionize* (`527c87e`)
- Fix FastBreak falses with 1.20.5+ custom tool rules. - *by Axionize* (`4b514e7`)
- Make ChatC and ChatB postViaChecks as temporary workaround to PE parsing limitations. - *by Axionize* (`31107ec`)
- [ci skip] Bump run-paper version - *by SamB440* (`cec0738`)
- Zero point zero three - *by SamB440* (`25b0582`)
- Disallow step after setback - *by SamB440* (`1136936`)
- [ci skip] Add client version to bypass issue template - *by SamB440* (`61f7ad8`)
- Refactor GrimDump: extract basic info generation to reusable getBasicInfo method - *by AoElite* (`a695dac`)
- Allow all functional urls to be changeable, move all grim system property usage to a dedicated class - *by AoElite* (`a9a2034`)
- Recode grim version command to use new api - *by AoElite* (`cd8d78d`)
- Add getVehicle() and getVehicleType() in GrimPlayer - *by ManInMyVan* (`647b13c`)
- Check if a player is in a boat when sending STEER_BOAT (Add VehicleE) - *by ManInMyVan* (`b5c14f4`)
- Validate STEER_BOAT values (Add VehicleF) - *by ManInMyVan* (`2e625e2`)
- Remove Check.isFlying - *by ManInMyVan* (`be120f0`)
- Make Check.isTransaction static - *by ManInMyVan* (`0a4a6cd`)
- Split isJumping and lastJumping into separate declarations - *by ManInMyVan* (`6787d1b`)
- Simplify FloodgateUtil - *by ManInMyVan* (`d2df1b7`)
- Use Math.PI in VanillaMath instead of the literal - *by ManInMyVan* (`7376468`)
- Don't use deprecated method ItemStack.getEnchantmentLevel(EnchantmentType, ClientVersion) in TridentItem - *by ManInMyVan* (`e433652`)
- Remove unused method BlockFaceHelper.offset - *by ManInMyVan* (`796a573`)
- Mark many utility classes as UtilityClass - *by ManInMyVan* (`380e3d9`)
- Don't use deprecated method ItemStack.getEnchantmentLevel(EnchantmentType, ClientVersion) in Riptide - *by ManInMyVan* (`376e7a9`)
- Rewrite GeyserUtil to not use reflection
except once - *by ManInMyVan* (`1ba072f`)
- Merge FloodgateUtil & GeyserUtil - *by ManInMyVan* (`a3108c7`)
- Remove Killaura from punishments.yml + add Interact in japanese punishments.yml - *by ManInMyVan* (`6ce610e`)
- Fix typo in help: section of en messages.yml causing error message on /grim help. Also make /grim help handle null lines - *by Axionize* (`94813c0`)
- Remove unused import in BlockFaceHelper - *by ManInMyVan* (`8cb4189`)
- Allow line break in pages - *by ManInMyVan* (`5761896`)
- Cleaner stuckSpeedMultiplier constants - *by ManInMyVan* (`03e1514`)
- Roll up shitmath bruteforce in PredictionEngineElytra - *by ManInMyVan* (`a953f50`)
- Add force-slow-movement and force-stuck-speed (intended for anarchy servers) - *by ManInMyVan* (`0dec743`)
- Update README.md and CONTRIBUTING.md - *by AoElite* (`c0b96ea`)
- Limit 1.21.5+ sprint attribute desync to minecarts - *by cyramek* (`fd59498`)
- More readable PredictionEngineElytra.applyInputsToVelocityPossibilities - *by ManInMyVan* (`28d8320`)
- Allow platform to be configured via system argument - *by AoElite* (`b997b6b`)
- Make PacketPlayerDigging pre-via: fix #2250
also move it before PreViaCheckManagerListener - *by ManInMyVan* (`97c1bdd`)
- Remove unused imports in ChatA/B - *by ManInMyVan* (`1c46546`)
- Add support for SET_PLAYER_INVENTORY packet - *by SamB440* (`17a8d3b`)
- Add some utilities - *by AoElite* (`090d1a8`)
- Reduce the number of tasks for updating permissions - *by AoElite* (`4702add`)
- Add GrimList command for debugging exemptions - *by AoElite* (`dbac8bc`)
- Don't allow sending OFF_HAND in USE_ITEM to bypass noslow - *by ManInMyVan* (`ff9af98`)
- Get item in PacketPlayerDigging.handleUseItem instead of it being passed - *by ManInMyVan* (`a7f8c77`)
- Use getItemInHand in PacketPlayerDigging - *by ManInMyVan* (`d71239b`)
- Only set NoSlow.didSlotChangeLastTick if the slot actually changed - *by ManInMyVan* (`aab6908`)
- PacketStateData.eatingHand -> itemInUseHand - *by ManInMyVan* (`b37393c`)
- Make PacketStateData.isSlowedByUsingItem() based on slowedByUsingItemSlot
the slowedByUsingItem is redundant - *by ManInMyVan* (`cecf5fb`)
- Reduce runnables with world borders - *by ManInMyVan* (`21ef46a`)
- Cache default input value; reduce memory usage for pre-1.21.2 players - *by ManInMyVan* (`eddb14b`)
- Normalize trighandler param names - *by ManInMyVan* (`b44dd89`)
- Mark GrimMath methods as pure - *by ManInMyVan* (`566dc9b`)
- Make Ray fields final - *by ManInMyVan* (`f87a077`)
- Don't use deprecated method ItemStack.getEnchantmentLevel(EnchantmentType, ClientVersion) - *by ManInMyVan* (`d2a8dce`)
- Replace ChannelHelper.runInEventLoop with GrimPlayer#runSafely - *by ManInMyVan* (`3f17557`)
- Move ComprensatedInventory instance to GrimPlayer - *by ManInMyVan* (`ea5ed06`)
- Simplify ViaVersionUtil - *by ManInMyVan* (`42d247b`)
- Clean up EntityPredicates - *by ManInMyVan* (`e26cf0f`)
- Make MainSupportingBlockData a record - *by ManInMyVan* (`64ebdf2`)
- Use GrimMath.radians in JumpPower - *by ManInMyVan* (`2b03755`)
- Make Dripstone.update(...) void - *by ManInMyVan* (`9f4c321`)
- Remove GrimPlayer#isEyeInFluid(FluidTag) - *by ManInMyVan* (`4e1320f`)
- Deobf FluidFallingAdjustedMovement.getFluidFallingAdjustedMovement(...) - *by ManInMyVan* (`dc03060`)
- Protected -> private in final class - *by ManInMyVan* (`0bf3a21`)
- Remove GrimPlayer#getInventory() - *by ManInMyVan* (`bd4cd31`)
- Fix riptide velocity (#2262) - *by Ayou* (`0586ea5`)
- Read event after getting player - *by ManInMyVan* (`a8693c3`)
- Read event after getting player - *by ManInMyVan* (`070116b`)
- Remove unused imports - *by ManInMyVan* (`f739b1e`)
- Only do NoSlow checks if trident is not enchanted with Riptide
This is not vanilla, but this is what the legacy handler does. To implement this properly, we would need to track biomes AND skylight, which is very memory-expensive.
fix: https://github.com/GrimAnticheat/Grim/issues/2259 - *by cyramek* (`b7c5837`)
- Fix FastBreak falses white riding entity (#2273) - *by EternalHuman* (`57a9f8f`)
- Ensure fabric uses our packetevents fork - *by AoElite* (`846e9ad`)
- Update packetevents - *by AoElite* (`a02f49e`)
- Update workflow - *by AoElite* (`db92c65`)
- Remove workflow paths - *by AoElite* (`becbba3`)
- Tweak workflow - *by AoElite* (`e368bc8`)
- Remove secret requirement - *by AoElite* (`184050b`)
- Add back workflow paths - *by AoElite* (`c2a07bd`)
- Revert pre via (#2280)
* revert pre-via part 1
* don't register checks multiple times
* revert pre-via part 1
* don't register checks multiple times
* fix merge conflicts
---------
Co-authored-by: cyramek <xcyramek@gmail.com> - *by SamB440* (`cb13221`)
- Optimize away entity collision check in 1.8 (#2269) - *by Pablo Herrera* (`fe7a263`)
- Add repo.grim.ac for 1.16.1 so fabric-permissions-api will be downloaded - *by Axionize* (`293f6ea`)
- Disable CodeQL workflow schedule - *by AoElite* (`b70abbe`)
- Enable parallel building - *by AoElite* (`9b2b080`)
- Update gradle publishing actions, remove action dependency requirement, disabled building and publishing of lite - *by AoElite* (`2403bc5`)
- Update the checkout action to v5 in CodeQL workflow - *by AoElite* (`a0bd388`)
- Bump lombok plugin to 9.0.0 - *by AoElite* (`9618912`)
- Use different approach in Gradle version extraction in the publishing workflow - *by AoElite* (`2a5979c`)
- Simplify version extraction - *by AoElite* (`088621f`)
- Add a build properties file to include more details about the build - *by AoElite* (`c428bf6`)
- Use GitHub's default branch instead of assuming 2.0 - *by AoElite* (`18d1602`)
- Remove unused `mainBranch` property from BuildConfig - *by AoElite* (`f54ceb6`)
- Exclude pull requests - *by AoElite* (`01ff3ec`)
- Add build properties to dump - *by AoElite* (`8d25519`)
- Correct formatting for conditional checks in gradle-publish workflow - *by AoElite* (`1f16d7b`)
- Update readme - *by AoElite* (`4be2549`)
- Specify java version fpr codeql - *by AoElite* (`fb926ab`)
- Modify grim startup update check failure message - *by Axionize* (`3ac26d0`)
- Update new release/alpha build workflow - *by Axionize* (`cbc2f51`)
- Run workflow on .github/workflows/** update - *by Axionize* (`8f78556`)
- Update buildscript to be more flexible; add support for gradle build scans - *by Axionize* (`2df4c23`)
- Bugfix - *by Axionize* (`dda1332`)
- Build script fix - *by Axionize* (`a74e10e`)
- Remove -q from printVersion so when --scan is applied logs print out - *by Axionize* (`2f8a473`)
- Print out build scan url not found when --scan enabled and url not found - *by Axionize* (`b72485d`)
- Fix escpaing some stings in preparing final changelog - *by Axionize* (`a26951c`)
- Use secrets for MODRINTH_ID - *by Axionize* (`50f3d84`)
- Fix using secrets for MODRINTH_ID in workflows - *by Axionize* (`b824ce1`)
- Fix using secrets for MODRINTH_ID in workflows again - *by Axionize* (`0095f8a`)
- Buildscript patches - *by Axionize* (`d15a2dd`)
- Even more robust sanitization - *by Axionize* (`0fd2a96`)
- Add reset-item-usage-on-item-use - *by ManInMyVan* (`aa4c6e0`)
- Small cleanup (mostly making things private & final) - *by ManInMyVan* (`8d1ee00`)
- Make devvelocity build scan integration only run on --scan being applied; Update foojay resolver convention; - *by Axionize* (`e009389`)
- Implement API v1.2.0: Improve EventBus usability and fix reflection bugs
This update contains numerous fixes and improvements to the API, focusing on developer experience and robustness.
feat(api): Simplify EventBus registration with context resolvers
- Removes the requirement for developers to manually construct a GrimPlugin instance to use the EventBus.
- The new GrimExtensionManager uses platform-specific resolvers to automatically determine the context from common object types, reducing boilerplate.
- On Bukkit, developers can now pass:
- A `Plugin` instance (e.g., `this` from their main plugin class)
- Any `Class` from the plugin's JAR (e.g., `MyListener.class`)
- The plugin's name as a `String`
- On Fabric, developers can now pass:
- A mod's entrypoint instance (e.g., `this` from an Initializer)
- The mod ID as a `String`
- A `ModContainer` instance
- Any `Class` from the mod's JAR
fix(api): Correctly invoke reflected event listeners
- Fixes a critical bug causing a `ClassCastException` for listeners registered via `registerAnnotatedListeners`. Listeners are now correctly fired only for their declared event type. `subscribe()` remains the recommended registration method.
perf(api): Optimize invocation of reflected listeners
- Slightly improves performance of reflected listeners by removing a redundant runtime null-check from the hot path of every event call.
refactor(core): Moved concrete EventBus implementation from API to common module
- The `OptimizedEventBus` implementation has been relocated to the `common` module to better separate the public API contract from its internal logic. - *by Axionize* (`12e79a1`)
### 🐛 Fixes
- Fix #2181 - *by ManInMyVan* (`d59a9fa`)
- Fix build - *by ManInMyVan* (`b8e70b8`)
- Fix soft collisions for vehicles - *by cyramek* (`fec8806`)
- Fix elytra inputs - *by cyramek* (`c4a18a5`)
- Fix #2190 - *by ManInMyVan* (`bb7ba08`)
- Fix more SprintE falses - *by ManInMyVan* (`d835314`)
- Fix various vehicle issues [1.21.2] (#2185)
* fix happyghast step, collisions with fluids
warn about viabackwards compatibility
* fix 1.21.2+ riding without control
* use known input sneaking status if server support that
* fix fluid current pushing logic for happyghasts
* actually fix fluid pushing for happyghast
* fix vehicle input calculations for <=1.21.1 servers
* fix elytra inputs
* Revert 'fix elytra inputs'
* use pre-via listeners for sneaking
* remove warnings for sneaking issues on newer server versions
* fix float/double error causing 1e-8 imprecision when jumping on a horse
* workaround false positives when jumping on a horse
* add camel entity type
* only do this for 1.21.2+ client on 1.21.2+ servers
* build with new Grim PacketEvents fork snapshot with support for pre-via injection on Fabric - *by Cyramek* (`978364a`)
- Fix ExploitB false on pre 1.16 clients - *by ManInMyVan* (`2518ced`)
- Fix ExploitC on 1.9-1.12 servers - *by ManInMyVan* (`18f0a2a`)
- Fix vehicle relative teleport/vehicle 1.12.2+ teleport system (#2200)
* fix vehicle relative teleport/vehicle 1.12.2+ teleport system
* only mark teleports for re-encoding if we’re actually rewriting them - *by Cyramek* (`4156768`)
- Fix HappyGhast false positives when holding space
fix: https://github.com/GrimAnticheat/Grim/issues/2203 - *by cyramek* (`c66de10`)
- Https://github.com/GrimAnticheat/Grim/issues/2209 - *by cyramek* (`c37a79b`)
- Fix #2211 - *by ManInMyVan* (`9ab2f2e`)
- Fix NPE in BlockPlaceCheck#getCombinedBox (#2215) - *by Ayou* (`e2cf0fa`)
- Fix getting block jump factor in older versions - *by cyramek* (`b88dfa7`)
- Fix exception - *by ManInMyVan* (`3de670e`)
- Fix #2221 - *by ManInMyVan* (`fe1c6bf`)
- Fix PacketOrderO falses in vehicles - *by ManInMyVan* (`4287f62`)
- Fix ChatA/ChatB falses from 31107ec4b - *by ManInMyVan* (`38ccc55`)
- Shitmath look vector - *by ManInMyVan* (`0340e07`)
- Use stuckSpeedMultiplier instead of 0.99, 0.98, 0.99 - *by ManInMyVan* (`6320fa6`)
- Fix CrashH false - *by AoElite* (`8f1e993`)
- Fix deprecated method call ItemStack.getEnchantmentLevel(EnchantmentType, ClientVersion) - *by ManInMyVan* (`345502b`)
- Fix RunningMode field modifiers - *by ManInMyVan* (`9ea389b`)
- Fixed some minor build warnings - *by AoElite* (`c90d7ab`)
- Fix workflow - *by AoElite* (`fefaa57`)
- Fix repo property including org - *by AoElite* (`40a4c08`)
- Fix leaf litter hitbox - *by ManInMyVan* (`c10e74c`)
- Fix segmented hitboxes - *by ManInMyVan* (`cc10288`)
### 🤖 Maintenance & CI
- Add cliff.toml file for defining git-cliff formatting of changelogs - *by Axionize* (`a239560`)
- Create GitHub Actions script for auto-building lite version and publishing to Modrinth w/changelog - *by Axionize* (`0374b8c`)
- Replace vars.MODRINTH_ID with secrets.MODRINTH_ID to match repository Actions' settings - *by Axionize* (`5183ad8`)
- Fix generating changelog content in GitHub Actions - *by Axionize* (`2bf1260`)
- Fix escaping characters in changelog generation - *by Axionize* (`ba305cf`)
- Fix supported versions for Bukkit in Modrinth upload and Fabric dependences - *by Axionize* (`b0906d9`)
Grim Anticheat (Fabric) 2.3.72-8d1ee00
on Oct 5, 2025Grim Anticheat (Bukkit) 2.3.72-8d1ee00
on Oct 5, 2025Changes in this Build (since previous push)
Miscellaneous
- Minor cleanup - by ManInMyVan (
1bfef2e) - Normalize PredictionEngine class names - by ManInMyVan (
3c56235) - A bit more cleanup - by ManInMyVan (
d2913b3) - Merge pull request #2188 from Cyramek/fix-vehicle-soft-collisions
fix soft collisions for vehicles - by SamB440 (ddcc5a2)
- Add ItemTypes.TURTLE_HELMET - by Ayou (
d657aec) - Merge pull request #2193 from Ayouuuu/2.0
Add ItemTypes.TURTLE_HELMET - by ManInMyVan (af2a53a)
- Slightly change ignore-duplicate-packet-rotation logic - by ManInMyVan (
38a2ea4) - Move ExploitA & C to chat category - by ManInMyVan (
b563792) - Add KnownInput#moving - by ManInMyVan (
5fb8cd9) - PlayerData -> player - by ManInMyVan (
0844fc6) - Remove whitespace in EquipmentType - by ManInMyVan (
d1b0f4d) - Check for moving while chatting - by ManInMyVan (
135c90c) - Add Chat and Exploit to punishments - by ManInMyVan (
b4714b0) - Check if chat is hidden - by ManInMyVan (
4992cf6) - Descriptions for almost every place check - by ManInMyVan (
df31a39) - Validate anvil item name length - by ManInMyVan (
4b53457) - Payload system - by ManInMyVan (
1a6b6fc) - This took too long - by ManInMyVan (
8a2ca76) - Add missing return - by ManInMyVan (
ba18d4c) - BadPacketsJ should be stable - by ManInMyVan (
3b76ded) - ExploitC fail-fast page parsing - by ManInMyVan (
0ccd03a) - Finish ExploitC, replaces ExploitB - by ManInMyVan (
e16979b) - Add include-timestamp to discord.yml - by ManInMyVan (
7b82060) - Add /grim history (#2201)
- Add /grim history command to see historical alerts
-
Add basic runtime reloading support.
- Will only actually reload if current database is different/has different setting than the one requested in config.
-
Added [log] statements matching [alert] statements
-
Add more detailed error message if Grim history subsystem fails to load.
-
Refactor /grim history code; Fix autocomplete of online player names in /grim history
-
Fix error swapping checkName and verbose in SQLite implementation
-
Refactor /grim history to use more efficient long-term storage with compact UUIDs and string deduplication.
Grim old grim history data will not be migrated!
-
Replace %version% with grim version in /grim history entry output
-
Add support for %grim_version% %client_brand% %client_version% %server_version% substtuions in grim-history-entry - by Axionize (
3e9b53e)
- Make some checks run before via - by ManInMyVan (
2e9b086) - Bump Dependencies
gradlew-wrapper 8.13 -> 8.14.3
adventure 4.21.0 -> 4.23.0
adventure-platform-bukkit 4.3.4 -> 4.4.0
cloud-paper 2.0.0.-beta.10 -> 2.0.0.-beta.11
cloud-fabric 2.0.0.-beta.10 -> 2.0.0.-beta.11
packetevents 2.9.0-SNAPSHOT -> 2.9.2-SNAPSHOT
fabric-loader 0.16.10 -> 0.16.14
fabric-loom 1.10.5 -> 1.11.4
shadow 9.0.0-beta6 -> 9.0.0-rc1 - by Axionize (bbc1bee)
- Downgrade from shadow 9.0.0-rc1 to 9.0.0-beta8 to fix jar inflation bug with shading fastutil - by Axionize (
6e28434) - 1.21.8 Server Support - Bump PE - by Axionize (
4942401) - This should now be usable - by ManInMyVan (
6e58e8c) - No it shouldn't - by ManInMyVan (
8d3e77f) - There is no more via here - by ManInMyVan (
9da9c30) - SprintA verbose - by ManInMyVan (
ed727cc) - Packet cancelling in VehicleD - by ManInMyVan (
39b74b2) - Remove some empty lines - by ManInMyVan (
c7fbc4b) - Don't use ordinal for WindowClickType in CrashF - by ManInMyVan (
1b62b1d) - More pre-via
hopefully I didn't miss any getter changes - by ManInMyVan (d90de8f)
- Pre-via chat checks - by ManInMyVan (
51bbb31) - Small cleanup - by ManInMyVan (
2a7403b) - HOW DID I FORGET - by ManInMyVan (
ac2c9ea) - Temporary fix for BadPacketsE not working on vehicles - by Axionize (
2ad9818) - PacketOrderO - by ManInMyVan (
2e01399) - Pre-via block break checks - by ManInMyVan (
408c7d5) - BadPacketsO optimizations - by ManInMyVan (
354216f) - And it was not a teleport - by ManInMyVan (
85acf78) - These don't need to implement anything - by ManInMyVan (
02426ad) - Small stuff - by ManInMyVan (
1f052f6) - More small changes - by ManInMyVan (
95b080a) - More cleanup - by ManInMyVan (
d8b719d) - Add option to disable cancelling pong packets - by SamB440 (
933f6c7) - Hardcode more 1.21.4+ hand harvestables (#2213)
- Hardcode more 1.21.4+ Hand Harvestables
Fixes issue #2117 temporarily until PacketEvents resolves their api shortcoming (https://github.com/retrooper/packetevents/issues/1217)
-
Adjust variable name
-
Cleanup spacing in BlockBreakSpeed util
Co-authored-by: ManInMyVan 113963219+ManInMyVan@users.noreply.github.com
Co-authored-by: ManInMyVan 113963219+ManInMyVan@users.noreply.github.com - by Loki (533ae70)
- Temp revert pre-via - by ManInMyVan (
77c165c) - Revert "temp revert pre-via"
This reverts commit 77c165cfa83e35ef94c6049446a6eab847d4a080. - by ManInMyVan (2528ff5)
- Bump PacketEvents - by Axionize (
29e0c6e) - Add mavenCentral() to repositsories to download me.lucko:fabric-permissions-api:0.1-SNAPSHOT for Fabric 1.16.1 - by Axionize (
ba4bbef) - Shadow 9.0.0-rc2 (#2229)
OLD: grimac-bukkit-2.3.72-shadow-9-ba4bbef66-before.jar
NEW: grimac-bukkit-2.3.72-shadow-9-a14b4044a-after.jar
JAR │ old │ new │ diff
───────┼──────────┼──────────┼──────
class │ 20.9 MiB │ 20.9 MiB │ 0 B
other │ 1.5 MiB │ 1.5 MiB │ 0 B
───────┼──────────┼──────────┼──────
total │ 22.4 MiB │ 22.4 MiB │ 0 B
CLASSES │ old │ new │ diff
─────────┼───────┼───────┼───────────
classes │ 4603 │ 4603 │ 0 (+0 -0)
methods │ 53656 │ 53656 │ 0 (+0 -0)
fields │ 22173 │ 22173 │ 0 (+0 -0)
=================
==== JAR ====
=================
size │ diff │ path
──────┼──────┼─────────────────────────────────────────────────────────────────
0 B │ 0 B │ + META-INF/versions/9/ac/grim/grimac/shaded/snakeyaml/internal/
0 B │ 0 B │ + META-INF/versions/9/ac/grim/grimac/shaded/snakeyaml/
│ 0 B │ - META-INF/versions/9/org/yaml/snakeyaml/internal/
0 B │ 0 B │ + META-INF/versions/9/ac/grim/grimac/shaded/
│ 0 B │ - META-INF/versions/9/org/yaml/snakeyaml/
0 B │ 0 B │ + META-INF/versions/9/ac/grim/grimac/
│ 0 B │ - META-INF/versions/9/org/yaml/
0 B │ 0 B │ + META-INF/versions/9/ac/grim/
│ 0 B │ - META-INF/versions/9/org/
0 B │ 0 B │ + META-INF/versions/9/ac/
0 B │ 0 B │ + META-INF/services/
──────┼──────┼─────────────────────────────────────────────────────────────────
0 B │ 0 B │ (total)
``` - *by Zongle Wang* (`5a4471c`)
- Fix very rare Reach false for versions < 1.20.2 and > 1.21.4 involving rot only packets. See https://bugs.mojang.com/browse/MC/issues/MC-255263 - *by Axionize* (`3875a6b`)
- Amend previous Reach false fix to only apply in versions > 1.14.4 - *by Axionize* (`527c87e`)
- Fix FastBreak falses with 1.20.5+ custom tool rules. - *by Axionize* (`4b514e7`)
- Make ChatC and ChatB postViaChecks as temporary workaround to PE parsing limitations. - *by Axionize* (`31107ec`)
- [ci skip] Bump run-paper version - *by SamB440* (`cec0738`)
- Zero point zero three - *by SamB440* (`25b0582`)
- Disallow step after setback - *by SamB440* (`1136936`)
- [ci skip] Add client version to bypass issue template - *by SamB440* (`61f7ad8`)
- Refactor GrimDump: extract basic info generation to reusable getBasicInfo method - *by AoElite* (`a695dac`)
- Allow all functional urls to be changeable, move all grim system property usage to a dedicated class - *by AoElite* (`a9a2034`)
- Recode grim version command to use new api - *by AoElite* (`cd8d78d`)
- Add getVehicle() and getVehicleType() in GrimPlayer - *by ManInMyVan* (`647b13c`)
- Check if a player is in a boat when sending STEER_BOAT (Add VehicleE) - *by ManInMyVan* (`b5c14f4`)
- Validate STEER_BOAT values (Add VehicleF) - *by ManInMyVan* (`2e625e2`)
- Remove Check.isFlying - *by ManInMyVan* (`be120f0`)
- Make Check.isTransaction static - *by ManInMyVan* (`0a4a6cd`)
- Split isJumping and lastJumping into separate declarations - *by ManInMyVan* (`6787d1b`)
- Simplify FloodgateUtil - *by ManInMyVan* (`d2df1b7`)
- Use Math.PI in VanillaMath instead of the literal - *by ManInMyVan* (`7376468`)
- Don't use deprecated method ItemStack.getEnchantmentLevel(EnchantmentType, ClientVersion) in TridentItem - *by ManInMyVan* (`e433652`)
- Remove unused method BlockFaceHelper.offset - *by ManInMyVan* (`796a573`)
- Mark many utility classes as UtilityClass - *by ManInMyVan* (`380e3d9`)
- Don't use deprecated method ItemStack.getEnchantmentLevel(EnchantmentType, ClientVersion) in Riptide - *by ManInMyVan* (`376e7a9`)
- Rewrite GeyserUtil to not use reflection
except once - *by ManInMyVan* (`1ba072f`)
- Merge FloodgateUtil & GeyserUtil - *by ManInMyVan* (`a3108c7`)
- Remove Killaura from punishments.yml + add Interact in japanese punishments.yml - *by ManInMyVan* (`6ce610e`)
- Fix typo in help: section of en messages.yml causing error message on /grim help. Also make /grim help handle null lines - *by Axionize* (`94813c0`)
- Remove unused import in BlockFaceHelper - *by ManInMyVan* (`8cb4189`)
- Allow line break in pages - *by ManInMyVan* (`5761896`)
- Cleaner stuckSpeedMultiplier constants - *by ManInMyVan* (`03e1514`)
- Roll up shitmath bruteforce in PredictionEngineElytra - *by ManInMyVan* (`a953f50`)
- Add force-slow-movement and force-stuck-speed (intended for anarchy servers) - *by ManInMyVan* (`0dec743`)
- Update README.md and CONTRIBUTING.md - *by AoElite* (`c0b96ea`)
- Limit 1.21.5+ sprint attribute desync to minecarts - *by cyramek* (`fd59498`)
- More readable PredictionEngineElytra.applyInputsToVelocityPossibilities - *by ManInMyVan* (`28d8320`)
- Allow platform to be configured via system argument - *by AoElite* (`b997b6b`)
- Make PacketPlayerDigging pre-via: fix #2250
also move it before PreViaCheckManagerListener - *by ManInMyVan* (`97c1bdd`)
- Remove unused imports in ChatA/B - *by ManInMyVan* (`1c46546`)
- Add support for SET_PLAYER_INVENTORY packet - *by SamB440* (`17a8d3b`)
- Add some utilities - *by AoElite* (`090d1a8`)
- Reduce the number of tasks for updating permissions - *by AoElite* (`4702add`)
- Add GrimList command for debugging exemptions - *by AoElite* (`dbac8bc`)
- Don't allow sending OFF_HAND in USE_ITEM to bypass noslow - *by ManInMyVan* (`ff9af98`)
- Get item in PacketPlayerDigging.handleUseItem instead of it being passed - *by ManInMyVan* (`a7f8c77`)
- Use getItemInHand in PacketPlayerDigging - *by ManInMyVan* (`d71239b`)
- Only set NoSlow.didSlotChangeLastTick if the slot actually changed - *by ManInMyVan* (`aab6908`)
- PacketStateData.eatingHand -> itemInUseHand - *by ManInMyVan* (`b37393c`)
- Make PacketStateData.isSlowedByUsingItem() based on slowedByUsingItemSlot
the slowedByUsingItem is redundant - *by ManInMyVan* (`cecf5fb`)
- Reduce runnables with world borders - *by ManInMyVan* (`21ef46a`)
- Cache default input value; reduce memory usage for pre-1.21.2 players - *by ManInMyVan* (`eddb14b`)
- Normalize trighandler param names - *by ManInMyVan* (`b44dd89`)
- Mark GrimMath methods as pure - *by ManInMyVan* (`566dc9b`)
- Make Ray fields final - *by ManInMyVan* (`f87a077`)
- Don't use deprecated method ItemStack.getEnchantmentLevel(EnchantmentType, ClientVersion) - *by ManInMyVan* (`d2a8dce`)
- Replace ChannelHelper.runInEventLoop with GrimPlayer#runSafely - *by ManInMyVan* (`3f17557`)
- Move ComprensatedInventory instance to GrimPlayer - *by ManInMyVan* (`ea5ed06`)
- Simplify ViaVersionUtil - *by ManInMyVan* (`42d247b`)
- Clean up EntityPredicates - *by ManInMyVan* (`e26cf0f`)
- Make MainSupportingBlockData a record - *by ManInMyVan* (`64ebdf2`)
- Use GrimMath.radians in JumpPower - *by ManInMyVan* (`2b03755`)
- Make Dripstone.update(...) void - *by ManInMyVan* (`9f4c321`)
- Remove GrimPlayer#isEyeInFluid(FluidTag) - *by ManInMyVan* (`4e1320f`)
- Deobf FluidFallingAdjustedMovement.getFluidFallingAdjustedMovement(...) - *by ManInMyVan* (`dc03060`)
- Protected -> private in final class - *by ManInMyVan* (`0bf3a21`)
- Remove GrimPlayer#getInventory() - *by ManInMyVan* (`bd4cd31`)
- Fix riptide velocity (#2262) - *by Ayou* (`0586ea5`)
- Read event after getting player - *by ManInMyVan* (`a8693c3`)
- Read event after getting player - *by ManInMyVan* (`070116b`)
- Remove unused imports - *by ManInMyVan* (`f739b1e`)
- Only do NoSlow checks if trident is not enchanted with Riptide
This is not vanilla, but this is what the legacy handler does. To implement this properly, we would need to track biomes AND skylight, which is very memory-expensive.
fix: https://github.com/GrimAnticheat/Grim/issues/2259 - *by cyramek* (`b7c5837`)
- Fix FastBreak falses white riding entity (#2273) - *by EternalHuman* (`57a9f8f`)
- Ensure fabric uses our packetevents fork - *by AoElite* (`846e9ad`)
- Update packetevents - *by AoElite* (`a02f49e`)
- Update workflow - *by AoElite* (`db92c65`)
- Remove workflow paths - *by AoElite* (`becbba3`)
- Tweak workflow - *by AoElite* (`e368bc8`)
- Remove secret requirement - *by AoElite* (`184050b`)
- Add back workflow paths - *by AoElite* (`c2a07bd`)
- Revert pre via (#2280)
* revert pre-via part 1
* don't register checks multiple times
* revert pre-via part 1
* don't register checks multiple times
* fix merge conflicts
---------
Co-authored-by: cyramek <xcyramek@gmail.com> - *by SamB440* (`cb13221`)
- Optimize away entity collision check in 1.8 (#2269) - *by Pablo Herrera* (`fe7a263`)
- Add repo.grim.ac for 1.16.1 so fabric-permissions-api will be downloaded - *by Axionize* (`293f6ea`)
- Disable CodeQL workflow schedule - *by AoElite* (`b70abbe`)
- Enable parallel building - *by AoElite* (`9b2b080`)
- Update gradle publishing actions, remove action dependency requirement, disabled building and publishing of lite - *by AoElite* (`2403bc5`)
- Update the checkout action to v5 in CodeQL workflow - *by AoElite* (`a0bd388`)
- Bump lombok plugin to 9.0.0 - *by AoElite* (`9618912`)
- Use different approach in Gradle version extraction in the publishing workflow - *by AoElite* (`2a5979c`)
- Simplify version extraction - *by AoElite* (`088621f`)
- Add a build properties file to include more details about the build - *by AoElite* (`c428bf6`)
- Use GitHub's default branch instead of assuming 2.0 - *by AoElite* (`18d1602`)
- Remove unused `mainBranch` property from BuildConfig - *by AoElite* (`f54ceb6`)
- Exclude pull requests - *by AoElite* (`01ff3ec`)
- Add build properties to dump - *by AoElite* (`8d25519`)
- Correct formatting for conditional checks in gradle-publish workflow - *by AoElite* (`1f16d7b`)
- Update readme - *by AoElite* (`4be2549`)
- Specify java version fpr codeql - *by AoElite* (`fb926ab`)
- Modify grim startup update check failure message - *by Axionize* (`3ac26d0`)
- Update new release/alpha build workflow - *by Axionize* (`cbc2f51`)
- Run workflow on .github/workflows/** update - *by Axionize* (`8f78556`)
- Update buildscript to be more flexible; add support for gradle build scans - *by Axionize* (`2df4c23`)
- Bugfix - *by Axionize* (`dda1332`)
- Build script fix - *by Axionize* (`a74e10e`)
- Remove -q from printVersion so when --scan is applied logs print out - *by Axionize* (`2f8a473`)
- Print out build scan url not found when --scan enabled and url not found - *by Axionize* (`b72485d`)
- Fix escpaing some stings in preparing final changelog - *by Axionize* (`a26951c`)
- Use secrets for MODRINTH_ID - *by Axionize* (`50f3d84`)
- Fix using secrets for MODRINTH_ID in workflows - *by Axionize* (`b824ce1`)
- Fix using secrets for MODRINTH_ID in workflows again - *by Axionize* (`0095f8a`)
- Buildscript patches - *by Axionize* (`d15a2dd`)
- Even more robust sanitization - *by Axionize* (`0fd2a96`)
- Add reset-item-usage-on-item-use - *by ManInMyVan* (`aa4c6e0`)
- Small cleanup (mostly making things private & final) - *by ManInMyVan* (`8d1ee00`)
### 🐛 Fixes
- Fix NPE - *by ManInMyVan* (`9a22a28`)
- Fix #2181 - *by ManInMyVan* (`d59a9fa`)
- Fix build - *by ManInMyVan* (`b8e70b8`)
- Fix soft collisions for vehicles - *by cyramek* (`fec8806`)
- Fix elytra inputs - *by cyramek* (`c4a18a5`)
- Fix #2190 - *by ManInMyVan* (`bb7ba08`)
- Fix more SprintE falses - *by ManInMyVan* (`d835314`)
- Fix various vehicle issues [1.21.2] (#2185)
* fix happyghast step, collisions with fluids
warn about viabackwards compatibility
* fix 1.21.2+ riding without control
* use known input sneaking status if server support that
* fix fluid current pushing logic for happyghasts
* actually fix fluid pushing for happyghast
* fix vehicle input calculations for <=1.21.1 servers
* fix elytra inputs
* Revert 'fix elytra inputs'
* use pre-via listeners for sneaking
* remove warnings for sneaking issues on newer server versions
* fix float/double error causing 1e-8 imprecision when jumping on a horse
* workaround false positives when jumping on a horse
* add camel entity type
* only do this for 1.21.2+ client on 1.21.2+ servers
* build with new Grim PacketEvents fork snapshot with support for pre-via injection on Fabric - *by Cyramek* (`978364a`)
- Fix ExploitB false on pre 1.16 clients - *by ManInMyVan* (`2518ced`)
- Fix ExploitC on 1.9-1.12 servers - *by ManInMyVan* (`18f0a2a`)
- Fix vehicle relative teleport/vehicle 1.12.2+ teleport system (#2200)
* fix vehicle relative teleport/vehicle 1.12.2+ teleport system
* only mark teleports for re-encoding if we’re actually rewriting them - *by Cyramek* (`4156768`)
- Fix HappyGhast false positives when holding space
fix: https://github.com/GrimAnticheat/Grim/issues/2203 - *by cyramek* (`c66de10`)
- Https://github.com/GrimAnticheat/Grim/issues/2209 - *by cyramek* (`c37a79b`)
- Fix #2211 - *by ManInMyVan* (`9ab2f2e`)
- Fix NPE in BlockPlaceCheck#getCombinedBox (#2215) - *by Ayou* (`e2cf0fa`)
- Fix getting block jump factor in older versions - *by cyramek* (`b88dfa7`)
- Fix exception - *by ManInMyVan* (`3de670e`)
- Fix #2221 - *by ManInMyVan* (`fe1c6bf`)
- Fix PacketOrderO falses in vehicles - *by ManInMyVan* (`4287f62`)
- Fix ChatA/ChatB falses from 31107ec4b - *by ManInMyVan* (`38ccc55`)
- Shitmath look vector - *by ManInMyVan* (`0340e07`)
- Use stuckSpeedMultiplier instead of 0.99, 0.98, 0.99 - *by ManInMyVan* (`6320fa6`)
- Fix CrashH false - *by AoElite* (`8f1e993`)
- Fix deprecated method call ItemStack.getEnchantmentLevel(EnchantmentType, ClientVersion) - *by ManInMyVan* (`345502b`)
- Fix RunningMode field modifiers - *by ManInMyVan* (`9ea389b`)
- Fixed some minor build warnings - *by AoElite* (`c90d7ab`)
- Fix workflow - *by AoElite* (`fefaa57`)
- Fix repo property including org - *by AoElite* (`40a4c08`)
- Fix leaf litter hitbox - *by ManInMyVan* (`c10e74c`)
- Fix segmented hitboxes - *by ManInMyVan* (`cc10288`)
### 🤖 Maintenance & CI
- Add cliff.toml file for defining git-cliff formatting of changelogs - *by Axionize* (`a239560`)
- Create GitHub Actions script for auto-building lite version and publishing to Modrinth w/changelog - *by Axionize* (`0374b8c`)
- Replace vars.MODRINTH_ID with secrets.MODRINTH_ID to match repository Actions' settings - *by Axionize* (`5183ad8`)
- Fix generating changelog content in GitHub Actions - *by Axionize* (`2bf1260`)
- Fix escaping characters in changelog generation - *by Axionize* (`ba305cf`)
- Fix supported versions for Bukkit in Modrinth upload and Fabric dependences - *by Axionize* (`b0906d9`)
Grim Anticheat (Fabric) 2.3.72-aa4c6e0
on Oct 4, 2025Grim Anticheat (Bukkit) 2.3.72-aa4c6e0
on Oct 4, 2025Changes in this Build (since previous push)
Miscellaneous
- Why does this only not affect 1.21.4 - by ManInMyVan (
c30be94) - Minor cleanup - by ManInMyVan (
1bfef2e) - Normalize PredictionEngine class names - by ManInMyVan (
3c56235) - A bit more cleanup - by ManInMyVan (
d2913b3) - Merge pull request #2188 from Cyramek/fix-vehicle-soft-collisions
fix soft collisions for vehicles - by SamB440 (ddcc5a2)
- Add ItemTypes.TURTLE_HELMET - by Ayou (
d657aec) - Merge pull request #2193 from Ayouuuu/2.0
Add ItemTypes.TURTLE_HELMET - by ManInMyVan (af2a53a)
- Slightly change ignore-duplicate-packet-rotation logic - by ManInMyVan (
38a2ea4) - Move ExploitA & C to chat category - by ManInMyVan (
b563792) - Add KnownInput#moving - by ManInMyVan (
5fb8cd9) - PlayerData -> player - by ManInMyVan (
0844fc6) - Remove whitespace in EquipmentType - by ManInMyVan (
d1b0f4d) - Check for moving while chatting - by ManInMyVan (
135c90c) - Add Chat and Exploit to punishments - by ManInMyVan (
b4714b0) - Check if chat is hidden - by ManInMyVan (
4992cf6) - Descriptions for almost every place check - by ManInMyVan (
df31a39) - Validate anvil item name length - by ManInMyVan (
4b53457) - Payload system - by ManInMyVan (
1a6b6fc) - This took too long - by ManInMyVan (
8a2ca76) - Add missing return - by ManInMyVan (
ba18d4c) - BadPacketsJ should be stable - by ManInMyVan (
3b76ded) - ExploitC fail-fast page parsing - by ManInMyVan (
0ccd03a) - Finish ExploitC, replaces ExploitB - by ManInMyVan (
e16979b) - Add include-timestamp to discord.yml - by ManInMyVan (
7b82060) - Add /grim history (#2201)
- Add /grim history command to see historical alerts
-
Add basic runtime reloading support.
- Will only actually reload if current database is different/has different setting than the one requested in config.
-
Added [log] statements matching [alert] statements
-
Add more detailed error message if Grim history subsystem fails to load.
-
Refactor /grim history code; Fix autocomplete of online player names in /grim history
-
Fix error swapping checkName and verbose in SQLite implementation
-
Refactor /grim history to use more efficient long-term storage with compact UUIDs and string deduplication.
Grim old grim history data will not be migrated!
-
Replace %version% with grim version in /grim history entry output
-
Add support for %grim_version% %client_brand% %client_version% %server_version% substtuions in grim-history-entry - by Axionize (
3e9b53e)
- Make some checks run before via - by ManInMyVan (
2e9b086) - Bump Dependencies
gradlew-wrapper 8.13 -> 8.14.3
adventure 4.21.0 -> 4.23.0
adventure-platform-bukkit 4.3.4 -> 4.4.0
cloud-paper 2.0.0.-beta.10 -> 2.0.0.-beta.11
cloud-fabric 2.0.0.-beta.10 -> 2.0.0.-beta.11
packetevents 2.9.0-SNAPSHOT -> 2.9.2-SNAPSHOT
fabric-loader 0.16.10 -> 0.16.14
fabric-loom 1.10.5 -> 1.11.4
shadow 9.0.0-beta6 -> 9.0.0-rc1 - by Axionize (bbc1bee)
- Downgrade from shadow 9.0.0-rc1 to 9.0.0-beta8 to fix jar inflation bug with shading fastutil - by Axionize (
6e28434) - 1.21.8 Server Support - Bump PE - by Axionize (
4942401) - This should now be usable - by ManInMyVan (
6e58e8c) - No it shouldn't - by ManInMyVan (
8d3e77f) - There is no more via here - by ManInMyVan (
9da9c30) - SprintA verbose - by ManInMyVan (
ed727cc) - Packet cancelling in VehicleD - by ManInMyVan (
39b74b2) - Remove some empty lines - by ManInMyVan (
c7fbc4b) - Don't use ordinal for WindowClickType in CrashF - by ManInMyVan (
1b62b1d) - More pre-via
hopefully I didn't miss any getter changes - by ManInMyVan (d90de8f)
- Pre-via chat checks - by ManInMyVan (
51bbb31) - Small cleanup - by ManInMyVan (
2a7403b) - HOW DID I FORGET - by ManInMyVan (
ac2c9ea) - Temporary fix for BadPacketsE not working on vehicles - by Axionize (
2ad9818) - PacketOrderO - by ManInMyVan (
2e01399) - Pre-via block break checks - by ManInMyVan (
408c7d5) - BadPacketsO optimizations - by ManInMyVan (
354216f) - And it was not a teleport - by ManInMyVan (
85acf78) - These don't need to implement anything - by ManInMyVan (
02426ad) - Small stuff - by ManInMyVan (
1f052f6) - More small changes - by ManInMyVan (
95b080a) - More cleanup - by ManInMyVan (
d8b719d) - Add option to disable cancelling pong packets - by SamB440 (
933f6c7) - Hardcode more 1.21.4+ hand harvestables (#2213)
- Hardcode more 1.21.4+ Hand Harvestables
Fixes issue #2117 temporarily until PacketEvents resolves their api shortcoming (https://github.com/retrooper/packetevents/issues/1217)
-
Adjust variable name
-
Cleanup spacing in BlockBreakSpeed util
Co-authored-by: ManInMyVan 113963219+ManInMyVan@users.noreply.github.com
Co-authored-by: ManInMyVan 113963219+ManInMyVan@users.noreply.github.com - by Loki (533ae70)
- Temp revert pre-via - by ManInMyVan (
77c165c) - Revert "temp revert pre-via"
This reverts commit 77c165cfa83e35ef94c6049446a6eab847d4a080. - by ManInMyVan (2528ff5)
- Bump PacketEvents - by Axionize (
29e0c6e) - Add mavenCentral() to repositsories to download me.lucko:fabric-permissions-api:0.1-SNAPSHOT for Fabric 1.16.1 - by Axionize (
ba4bbef) - Shadow 9.0.0-rc2 (#2229)
OLD: grimac-bukkit-2.3.72-shadow-9-ba4bbef66-before.jar
NEW: grimac-bukkit-2.3.72-shadow-9-a14b4044a-after.jar
JAR │ old │ new │ diff
───────┼──────────┼──────────┼──────
class │ 20.9 MiB │ 20.9 MiB │ 0 B
other │ 1.5 MiB │ 1.5 MiB │ 0 B
───────┼──────────┼──────────┼──────
total │ 22.4 MiB │ 22.4 MiB │ 0 B
CLASSES │ old │ new │ diff
─────────┼───────┼───────┼───────────
classes │ 4603 │ 4603 │ 0 (+0 -0)
methods │ 53656 │ 53656 │ 0 (+0 -0)
fields │ 22173 │ 22173 │ 0 (+0 -0)
=================
==== JAR ====
=================
size │ diff │ path
──────┼──────┼─────────────────────────────────────────────────────────────────
0 B │ 0 B │ + META-INF/versions/9/ac/grim/grimac/shaded/snakeyaml/internal/
0 B │ 0 B │ + META-INF/versions/9/ac/grim/grimac/shaded/snakeyaml/
│ 0 B │ - META-INF/versions/9/org/yaml/snakeyaml/internal/
0 B │ 0 B │ + META-INF/versions/9/ac/grim/grimac/shaded/
│ 0 B │ - META-INF/versions/9/org/yaml/snakeyaml/
0 B │ 0 B │ + META-INF/versions/9/ac/grim/grimac/
│ 0 B │ - META-INF/versions/9/org/yaml/
0 B │ 0 B │ + META-INF/versions/9/ac/grim/
│ 0 B │ - META-INF/versions/9/org/
0 B │ 0 B │ + META-INF/versions/9/ac/
0 B │ 0 B │ + META-INF/services/
──────┼──────┼─────────────────────────────────────────────────────────────────
0 B │ 0 B │ (total)
``` - *by Zongle Wang* (`5a4471c`)
- Fix very rare Reach false for versions < 1.20.2 and > 1.21.4 involving rot only packets. See https://bugs.mojang.com/browse/MC/issues/MC-255263 - *by Axionize* (`3875a6b`)
- Amend previous Reach false fix to only apply in versions > 1.14.4 - *by Axionize* (`527c87e`)
- Fix FastBreak falses with 1.20.5+ custom tool rules. - *by Axionize* (`4b514e7`)
- Make ChatC and ChatB postViaChecks as temporary workaround to PE parsing limitations. - *by Axionize* (`31107ec`)
- [ci skip] Bump run-paper version - *by SamB440* (`cec0738`)
- Zero point zero three - *by SamB440* (`25b0582`)
- Disallow step after setback - *by SamB440* (`1136936`)
- [ci skip] Add client version to bypass issue template - *by SamB440* (`61f7ad8`)
- Refactor GrimDump: extract basic info generation to reusable getBasicInfo method - *by AoElite* (`a695dac`)
- Allow all functional urls to be changeable, move all grim system property usage to a dedicated class - *by AoElite* (`a9a2034`)
- Recode grim version command to use new api - *by AoElite* (`cd8d78d`)
- Add getVehicle() and getVehicleType() in GrimPlayer - *by ManInMyVan* (`647b13c`)
- Check if a player is in a boat when sending STEER_BOAT (Add VehicleE) - *by ManInMyVan* (`b5c14f4`)
- Validate STEER_BOAT values (Add VehicleF) - *by ManInMyVan* (`2e625e2`)
- Remove Check.isFlying - *by ManInMyVan* (`be120f0`)
- Make Check.isTransaction static - *by ManInMyVan* (`0a4a6cd`)
- Split isJumping and lastJumping into separate declarations - *by ManInMyVan* (`6787d1b`)
- Simplify FloodgateUtil - *by ManInMyVan* (`d2df1b7`)
- Use Math.PI in VanillaMath instead of the literal - *by ManInMyVan* (`7376468`)
- Don't use deprecated method ItemStack.getEnchantmentLevel(EnchantmentType, ClientVersion) in TridentItem - *by ManInMyVan* (`e433652`)
- Remove unused method BlockFaceHelper.offset - *by ManInMyVan* (`796a573`)
- Mark many utility classes as UtilityClass - *by ManInMyVan* (`380e3d9`)
- Don't use deprecated method ItemStack.getEnchantmentLevel(EnchantmentType, ClientVersion) in Riptide - *by ManInMyVan* (`376e7a9`)
- Rewrite GeyserUtil to not use reflection
except once - *by ManInMyVan* (`1ba072f`)
- Merge FloodgateUtil & GeyserUtil - *by ManInMyVan* (`a3108c7`)
- Remove Killaura from punishments.yml + add Interact in japanese punishments.yml - *by ManInMyVan* (`6ce610e`)
- Fix typo in help: section of en messages.yml causing error message on /grim help. Also make /grim help handle null lines - *by Axionize* (`94813c0`)
- Remove unused import in BlockFaceHelper - *by ManInMyVan* (`8cb4189`)
- Allow line break in pages - *by ManInMyVan* (`5761896`)
- Cleaner stuckSpeedMultiplier constants - *by ManInMyVan* (`03e1514`)
- Roll up shitmath bruteforce in PredictionEngineElytra - *by ManInMyVan* (`a953f50`)
- Add force-slow-movement and force-stuck-speed (intended for anarchy servers) - *by ManInMyVan* (`0dec743`)
- Update README.md and CONTRIBUTING.md - *by AoElite* (`c0b96ea`)
- Limit 1.21.5+ sprint attribute desync to minecarts - *by cyramek* (`fd59498`)
- More readable PredictionEngineElytra.applyInputsToVelocityPossibilities - *by ManInMyVan* (`28d8320`)
- Allow platform to be configured via system argument - *by AoElite* (`b997b6b`)
- Make PacketPlayerDigging pre-via: fix #2250
also move it before PreViaCheckManagerListener - *by ManInMyVan* (`97c1bdd`)
- Remove unused imports in ChatA/B - *by ManInMyVan* (`1c46546`)
- Add support for SET_PLAYER_INVENTORY packet - *by SamB440* (`17a8d3b`)
- Add some utilities - *by AoElite* (`090d1a8`)
- Reduce the number of tasks for updating permissions - *by AoElite* (`4702add`)
- Add GrimList command for debugging exemptions - *by AoElite* (`dbac8bc`)
- Don't allow sending OFF_HAND in USE_ITEM to bypass noslow - *by ManInMyVan* (`ff9af98`)
- Get item in PacketPlayerDigging.handleUseItem instead of it being passed - *by ManInMyVan* (`a7f8c77`)
- Use getItemInHand in PacketPlayerDigging - *by ManInMyVan* (`d71239b`)
- Only set NoSlow.didSlotChangeLastTick if the slot actually changed - *by ManInMyVan* (`aab6908`)
- PacketStateData.eatingHand -> itemInUseHand - *by ManInMyVan* (`b37393c`)
- Make PacketStateData.isSlowedByUsingItem() based on slowedByUsingItemSlot
the slowedByUsingItem is redundant - *by ManInMyVan* (`cecf5fb`)
- Reduce runnables with world borders - *by ManInMyVan* (`21ef46a`)
- Cache default input value; reduce memory usage for pre-1.21.2 players - *by ManInMyVan* (`eddb14b`)
- Normalize trighandler param names - *by ManInMyVan* (`b44dd89`)
- Mark GrimMath methods as pure - *by ManInMyVan* (`566dc9b`)
- Make Ray fields final - *by ManInMyVan* (`f87a077`)
- Don't use deprecated method ItemStack.getEnchantmentLevel(EnchantmentType, ClientVersion) - *by ManInMyVan* (`d2a8dce`)
- Replace ChannelHelper.runInEventLoop with GrimPlayer#runSafely - *by ManInMyVan* (`3f17557`)
- Move ComprensatedInventory instance to GrimPlayer - *by ManInMyVan* (`ea5ed06`)
- Simplify ViaVersionUtil - *by ManInMyVan* (`42d247b`)
- Clean up EntityPredicates - *by ManInMyVan* (`e26cf0f`)
- Make MainSupportingBlockData a record - *by ManInMyVan* (`64ebdf2`)
- Use GrimMath.radians in JumpPower - *by ManInMyVan* (`2b03755`)
- Make Dripstone.update(...) void - *by ManInMyVan* (`9f4c321`)
- Remove GrimPlayer#isEyeInFluid(FluidTag) - *by ManInMyVan* (`4e1320f`)
- Deobf FluidFallingAdjustedMovement.getFluidFallingAdjustedMovement(...) - *by ManInMyVan* (`dc03060`)
- Protected -> private in final class - *by ManInMyVan* (`0bf3a21`)
- Remove GrimPlayer#getInventory() - *by ManInMyVan* (`bd4cd31`)
- Fix riptide velocity (#2262) - *by Ayou* (`0586ea5`)
- Read event after getting player - *by ManInMyVan* (`a8693c3`)
- Read event after getting player - *by ManInMyVan* (`070116b`)
- Remove unused imports - *by ManInMyVan* (`f739b1e`)
- Only do NoSlow checks if trident is not enchanted with Riptide
This is not vanilla, but this is what the legacy handler does. To implement this properly, we would need to track biomes AND skylight, which is very memory-expensive.
fix: https://github.com/GrimAnticheat/Grim/issues/2259 - *by cyramek* (`b7c5837`)
- Fix FastBreak falses white riding entity (#2273) - *by EternalHuman* (`57a9f8f`)
- Ensure fabric uses our packetevents fork - *by AoElite* (`846e9ad`)
- Update packetevents - *by AoElite* (`a02f49e`)
- Update workflow - *by AoElite* (`db92c65`)
- Remove workflow paths - *by AoElite* (`becbba3`)
- Tweak workflow - *by AoElite* (`e368bc8`)
- Remove secret requirement - *by AoElite* (`184050b`)
- Add back workflow paths - *by AoElite* (`c2a07bd`)
- Revert pre via (#2280)
* revert pre-via part 1
* don't register checks multiple times
* revert pre-via part 1
* don't register checks multiple times
* fix merge conflicts
---------
Co-authored-by: cyramek <xcyramek@gmail.com> - *by SamB440* (`cb13221`)
- Optimize away entity collision check in 1.8 (#2269) - *by Pablo Herrera* (`fe7a263`)
- Add repo.grim.ac for 1.16.1 so fabric-permissions-api will be downloaded - *by Axionize* (`293f6ea`)
- Disable CodeQL workflow schedule - *by AoElite* (`b70abbe`)
- Enable parallel building - *by AoElite* (`9b2b080`)
- Update gradle publishing actions, remove action dependency requirement, disabled building and publishing of lite - *by AoElite* (`2403bc5`)
- Update the checkout action to v5 in CodeQL workflow - *by AoElite* (`a0bd388`)
- Bump lombok plugin to 9.0.0 - *by AoElite* (`9618912`)
- Use different approach in Gradle version extraction in the publishing workflow - *by AoElite* (`2a5979c`)
- Simplify version extraction - *by AoElite* (`088621f`)
- Add a build properties file to include more details about the build - *by AoElite* (`c428bf6`)
- Use GitHub's default branch instead of assuming 2.0 - *by AoElite* (`18d1602`)
- Remove unused `mainBranch` property from BuildConfig - *by AoElite* (`f54ceb6`)
- Exclude pull requests - *by AoElite* (`01ff3ec`)
- Add build properties to dump - *by AoElite* (`8d25519`)
- Correct formatting for conditional checks in gradle-publish workflow - *by AoElite* (`1f16d7b`)
- Update readme - *by AoElite* (`4be2549`)
- Specify java version fpr codeql - *by AoElite* (`fb926ab`)
- Modify grim startup update check failure message - *by Axionize* (`3ac26d0`)
- Update new release/alpha build workflow - *by Axionize* (`cbc2f51`)
- Run workflow on .github/workflows/** update - *by Axionize* (`8f78556`)
- Update buildscript to be more flexible; add support for gradle build scans - *by Axionize* (`2df4c23`)
- Bugfix - *by Axionize* (`dda1332`)
- Build script fix - *by Axionize* (`a74e10e`)
- Remove -q from printVersion so when --scan is applied logs print out - *by Axionize* (`2f8a473`)
- Print out build scan url not found when --scan enabled and url not found - *by Axionize* (`b72485d`)
- Fix escpaing some stings in preparing final changelog - *by Axionize* (`a26951c`)
- Use secrets for MODRINTH_ID - *by Axionize* (`50f3d84`)
- Fix using secrets for MODRINTH_ID in workflows - *by Axionize* (`b824ce1`)
- Fix using secrets for MODRINTH_ID in workflows again - *by Axionize* (`0095f8a`)
- Buildscript patches - *by Axionize* (`d15a2dd`)
- Even more robust sanitization - *by Axionize* (`0fd2a96`)
- Add reset-item-usage-on-item-use - *by ManInMyVan* (`aa4c6e0`)
### 🐛 Fixes
- Fix NPE - *by ManInMyVan* (`9a22a28`)
- Fix #2181 - *by ManInMyVan* (`d59a9fa`)
- Fix build - *by ManInMyVan* (`b8e70b8`)
- Fix soft collisions for vehicles - *by cyramek* (`fec8806`)
- Fix elytra inputs - *by cyramek* (`c4a18a5`)
- Fix #2190 - *by ManInMyVan* (`bb7ba08`)
- Fix more SprintE falses - *by ManInMyVan* (`d835314`)
- Fix various vehicle issues [1.21.2] (#2185)
* fix happyghast step, collisions with fluids
warn about viabackwards compatibility
* fix 1.21.2+ riding without control
* use known input sneaking status if server support that
* fix fluid current pushing logic for happyghasts
* actually fix fluid pushing for happyghast
* fix vehicle input calculations for <=1.21.1 servers
* fix elytra inputs
* Revert 'fix elytra inputs'
* use pre-via listeners for sneaking
* remove warnings for sneaking issues on newer server versions
* fix float/double error causing 1e-8 imprecision when jumping on a horse
* workaround false positives when jumping on a horse
* add camel entity type
* only do this for 1.21.2+ client on 1.21.2+ servers
* build with new Grim PacketEvents fork snapshot with support for pre-via injection on Fabric - *by Cyramek* (`978364a`)
- Fix ExploitB false on pre 1.16 clients - *by ManInMyVan* (`2518ced`)
- Fix ExploitC on 1.9-1.12 servers - *by ManInMyVan* (`18f0a2a`)
- Fix vehicle relative teleport/vehicle 1.12.2+ teleport system (#2200)
* fix vehicle relative teleport/vehicle 1.12.2+ teleport system
* only mark teleports for re-encoding if we’re actually rewriting them - *by Cyramek* (`4156768`)
- Fix HappyGhast false positives when holding space
fix: https://github.com/GrimAnticheat/Grim/issues/2203 - *by cyramek* (`c66de10`)
- Https://github.com/GrimAnticheat/Grim/issues/2209 - *by cyramek* (`c37a79b`)
- Fix #2211 - *by ManInMyVan* (`9ab2f2e`)
- Fix NPE in BlockPlaceCheck#getCombinedBox (#2215) - *by Ayou* (`e2cf0fa`)
- Fix getting block jump factor in older versions - *by cyramek* (`b88dfa7`)
- Fix exception - *by ManInMyVan* (`3de670e`)
- Fix #2221 - *by ManInMyVan* (`fe1c6bf`)
- Fix PacketOrderO falses in vehicles - *by ManInMyVan* (`4287f62`)
- Fix ChatA/ChatB falses from 31107ec4b - *by ManInMyVan* (`38ccc55`)
- Shitmath look vector - *by ManInMyVan* (`0340e07`)
- Use stuckSpeedMultiplier instead of 0.99, 0.98, 0.99 - *by ManInMyVan* (`6320fa6`)
- Fix CrashH false - *by AoElite* (`8f1e993`)
- Fix deprecated method call ItemStack.getEnchantmentLevel(EnchantmentType, ClientVersion) - *by ManInMyVan* (`345502b`)
- Fix RunningMode field modifiers - *by ManInMyVan* (`9ea389b`)
- Fixed some minor build warnings - *by AoElite* (`c90d7ab`)
- Fix workflow - *by AoElite* (`fefaa57`)
- Fix repo property including org - *by AoElite* (`40a4c08`)
- Fix leaf litter hitbox - *by ManInMyVan* (`c10e74c`)
- Fix segmented hitboxes - *by ManInMyVan* (`cc10288`)
### 🤖 Maintenance & CI
- Add cliff.toml file for defining git-cliff formatting of changelogs - *by Axionize* (`a239560`)
- Create GitHub Actions script for auto-building lite version and publishing to Modrinth w/changelog - *by Axionize* (`0374b8c`)
- Replace vars.MODRINTH_ID with secrets.MODRINTH_ID to match repository Actions' settings - *by Axionize* (`5183ad8`)
- Fix generating changelog content in GitHub Actions - *by Axionize* (`2bf1260`)
- Fix escaping characters in changelog generation - *by Axionize* (`ba305cf`)
- Fix supported versions for Bukkit in Modrinth upload and Fabric dependences - *by Axionize* (`b0906d9`)
Grim Anticheat (Fabric) 2.3.72
on Oct 3, 2025Grim Anticheat (Bukkit) 2.3.72
on Oct 3, 2025This release is headlined by support for Minecraft versions up to 1.21.8. It also includes a suite of new checks, numerous bug fixes, and significant internal improvements including the long-awaited platform independence refactor allowing us to now support Fabric and paving the way for future support of platforms like Sponge, Minestom, Velocity and more. Get it now on Modrinth: https://modrinth.com/plugin/grimac
Major Features & Additions
- Platform Independence: A monumental refactoring effort to decouple the anticheat from Bukkit-specific APIs. This lays the groundwork for future support of Sponge, Fabric, Neoforge, Velocity, and other platforms. A beta version for Fabric is included in this effort. (by @Axionize in #2024)
- New
PacketOrderChecks: Introduced a comprehensive suite ofPacketOrderchecks to detect various packet manipulation cheats and inconsistencies that were not previously covered. (by @ManInMyVan in #1678) - New
/grim historyCommand: Added a new command to view a player's historical alerts directly in-game, with support for different database backends. (by @Axionize in #2201)
Improvements & Optimizations
- Minecraft 1.21.5+ Support: Implemented support for Minecraft versions up to
1.21.8, including new movement simulation for "Happy Ghast" blocks and updated sneaking behavior. (by @Cyramek in #2079) - Performance:
- Optimized away redundant entity collision checks on Minecraft 1.8. (by @Pablete1234 in #2269)
- Improved performance of piston updates by processing them on the player's network thread.
- Reduced object creation and runnable tasks for world borders and player data handling.
- Configuration & Usability:
- Added a config option to disable the Forge client blacklist. (by @FellowNeighbour in #2131)
- Improved verbose output by consistently including the entity type in reach alerts.
- Added a Chinese translation and updated all other language files. (by @RegotlyLong in #2135)
- Internal Refactoring:
- Rewrote Geyser/Floodgate support to reduce reliance on reflection.
- Conducted significant code cleanup, refactoring, and modernization across the codebase.
Bug Fixes
- Vehicle Fixes:
- Resolved various vehicle-related issues on modern versions (1.21.2+), including soft collisions, fluid interactions, relative teleports, and FastBreak false positives while riding. (by @Cyramek in #2188, #2185, #2200, @EternalHuman in #2273)
- Movement & Collision Fixes:
- Fixed a false setback in cobwebs with 0.03 velocity. (by @483378 in #2096)
- Fixed incorrect velocity calculation for tridents with Riptide. (by @Ayouuuu in #2262)
- Correctly implemented
hasSaddlelogic for entities. (by @Cyramek in #2179) - Fixed legacy world block lookup (
getBlockAt) on older Bukkit versions. (by @Cyramek in #2122)
- Packet & Check Fixes:
- Fixed multiple
NullPointerExceptionsinBadPacketsHduring respawn and in block placement checks. (by @Bram1903 in #2106, @Ayouuuu in #2215) - Fixed a
ClassCastExceptionwhen getting a player's keep-alive ping. (by @Souipi in #2143) - Hardcoded more 1.21.4+ hand-harvestable blocks to prevent FastBreak falses until an upstream fix is available. (by @codeHusky in #2213)
- Prevented a log spam error from ViaVersion placement rotation checks on unsupported server versions. (by @Krymonota in #2099)
- Fixed multiple
- Reverts:
- Reverted the "pre-via" packet handling changes to resolve various downstream issues and instability. (by @SamB440 in #2280)
Build & CI
- Upgraded the Shadow plugin to
9.0.0-rc2and updated various other dependencies like Adventure and Cloud. (by @Goooler in #2229) - Overhauled the GitHub Actions and Gradle build scripts for improved reliability, speed (parallel builds), and flexibility in publishing releases.
New Contributors
- @childunblocked made their first contribution in #2101
- @Krymonota made their first contribution in #2099
- @FellowNeighbour made their first contribution in #2131
- @Souipi made their first contribution in #2143
- @codeHusky made their first contribution in #2213
- @Goooler made their first contribution in #2229
- @EternalHuman made their first contribution in #2273
- @Pablete1234 made their first contribution in #2269
Full Changelog: https://github.com/GrimAnticheat/Grim/compare/v2.3.71...v2.3.72
Grim Anticheat (Fabric) 2.3.72-d15a2dd
on Oct 3, 2025Grim Anticheat (Bukkit) 2.3.72-d15a2dd
on Oct 3, 2025Changes in this Build (since previous push)
Miscellaneous
- SprintE on 1.18.2+ - by ManInMyVan (
0f54849) - Why does this only not affect 1.21.4 - by ManInMyVan (
c30be94) - Minor cleanup - by ManInMyVan (
1bfef2e) - Normalize PredictionEngine class names - by ManInMyVan (
3c56235) - A bit more cleanup - by ManInMyVan (
d2913b3) - Merge pull request #2188 from Cyramek/fix-vehicle-soft-collisions
fix soft collisions for vehicles - by SamB440 (ddcc5a2)
- Add ItemTypes.TURTLE_HELMET - by Ayou (
d657aec) - Merge pull request #2193 from Ayouuuu/2.0
Add ItemTypes.TURTLE_HELMET - by ManInMyVan (af2a53a)
- Slightly change ignore-duplicate-packet-rotation logic - by ManInMyVan (
38a2ea4) - Move ExploitA & C to chat category - by ManInMyVan (
b563792) - Add KnownInput#moving - by ManInMyVan (
5fb8cd9) - PlayerData -> player - by ManInMyVan (
0844fc6) - Remove whitespace in EquipmentType - by ManInMyVan (
d1b0f4d) - Check for moving while chatting - by ManInMyVan (
135c90c) - Add Chat and Exploit to punishments - by ManInMyVan (
b4714b0) - Check if chat is hidden - by ManInMyVan (
4992cf6) - Descriptions for almost every place check - by ManInMyVan (
df31a39) - Validate anvil item name length - by ManInMyVan (
4b53457) - Payload system - by ManInMyVan (
1a6b6fc) - This took too long - by ManInMyVan (
8a2ca76) - Add missing return - by ManInMyVan (
ba18d4c) - BadPacketsJ should be stable - by ManInMyVan (
3b76ded) - ExploitC fail-fast page parsing - by ManInMyVan (
0ccd03a) - Finish ExploitC, replaces ExploitB - by ManInMyVan (
e16979b) - Add include-timestamp to discord.yml - by ManInMyVan (
7b82060) - Add /grim history (#2201)
- Add /grim history command to see historical alerts
-
Add basic runtime reloading support.
- Will only actually reload if current database is different/has different setting than the one requested in config.
-
Added [log] statements matching [alert] statements
-
Add more detailed error message if Grim history subsystem fails to load.
-
Refactor /grim history code; Fix autocomplete of online player names in /grim history
-
Fix error swapping checkName and verbose in SQLite implementation
-
Refactor /grim history to use more efficient long-term storage with compact UUIDs and string deduplication.
Grim old grim history data will not be migrated!
-
Replace %version% with grim version in /grim history entry output
-
Add support for %grim_version% %client_brand% %client_version% %server_version% substtuions in grim-history-entry - by Axionize (
3e9b53e)
- Make some checks run before via - by ManInMyVan (
2e9b086) - Bump Dependencies
gradlew-wrapper 8.13 -> 8.14.3
adventure 4.21.0 -> 4.23.0
adventure-platform-bukkit 4.3.4 -> 4.4.0
cloud-paper 2.0.0.-beta.10 -> 2.0.0.-beta.11
cloud-fabric 2.0.0.-beta.10 -> 2.0.0.-beta.11
packetevents 2.9.0-SNAPSHOT -> 2.9.2-SNAPSHOT
fabric-loader 0.16.10 -> 0.16.14
fabric-loom 1.10.5 -> 1.11.4
shadow 9.0.0-beta6 -> 9.0.0-rc1 - by Axionize (bbc1bee)
- Downgrade from shadow 9.0.0-rc1 to 9.0.0-beta8 to fix jar inflation bug with shading fastutil - by Axionize (
6e28434) - 1.21.8 Server Support - Bump PE - by Axionize (
4942401) - This should now be usable - by ManInMyVan (
6e58e8c) - No it shouldn't - by ManInMyVan (
8d3e77f) - There is no more via here - by ManInMyVan (
9da9c30) - SprintA verbose - by ManInMyVan (
ed727cc) - Packet cancelling in VehicleD - by ManInMyVan (
39b74b2) - Remove some empty lines - by ManInMyVan (
c7fbc4b) - Don't use ordinal for WindowClickType in CrashF - by ManInMyVan (
1b62b1d) - More pre-via
hopefully I didn't miss any getter changes - by ManInMyVan (d90de8f)
- Pre-via chat checks - by ManInMyVan (
51bbb31) - Small cleanup - by ManInMyVan (
2a7403b) - HOW DID I FORGET - by ManInMyVan (
ac2c9ea) - Temporary fix for BadPacketsE not working on vehicles - by Axionize (
2ad9818) - PacketOrderO - by ManInMyVan (
2e01399) - Pre-via block break checks - by ManInMyVan (
408c7d5) - BadPacketsO optimizations - by ManInMyVan (
354216f) - And it was not a teleport - by ManInMyVan (
85acf78) - These don't need to implement anything - by ManInMyVan (
02426ad) - Small stuff - by ManInMyVan (
1f052f6) - More small changes - by ManInMyVan (
95b080a) - More cleanup - by ManInMyVan (
d8b719d) - Add option to disable cancelling pong packets - by SamB440 (
933f6c7) - Hardcode more 1.21.4+ hand harvestables (#2213)
- Hardcode more 1.21.4+ Hand Harvestables
Fixes issue #2117 temporarily until PacketEvents resolves their api shortcoming (https://github.com/retrooper/packetevents/issues/1217)
-
Adjust variable name
-
Cleanup spacing in BlockBreakSpeed util
Co-authored-by: ManInMyVan 113963219+ManInMyVan@users.noreply.github.com
Co-authored-by: ManInMyVan 113963219+ManInMyVan@users.noreply.github.com - by Loki (533ae70)
- Temp revert pre-via - by ManInMyVan (
77c165c) - Revert "temp revert pre-via"
This reverts commit 77c165cfa83e35ef94c6049446a6eab847d4a080. - by ManInMyVan (2528ff5)
- Bump PacketEvents - by Axionize (
29e0c6e) - Add mavenCentral() to repositsories to download me.lucko:fabric-permissions-api:0.1-SNAPSHOT for Fabric 1.16.1 - by Axionize (
ba4bbef) - Shadow 9.0.0-rc2 (#2229)
OLD: grimac-bukkit-2.3.72-shadow-9-ba4bbef66-before.jar
NEW: grimac-bukkit-2.3.72-shadow-9-a14b4044a-after.jar
JAR │ old │ new │ diff
───────┼──────────┼──────────┼──────
class │ 20.9 MiB │ 20.9 MiB │ 0 B
other │ 1.5 MiB │ 1.5 MiB │ 0 B
───────┼──────────┼──────────┼──────
total │ 22.4 MiB │ 22.4 MiB │ 0 B
CLASSES │ old │ new │ diff
─────────┼───────┼───────┼───────────
classes │ 4603 │ 4603 │ 0 (+0 -0)
methods │ 53656 │ 53656 │ 0 (+0 -0)
fields │ 22173 │ 22173 │ 0 (+0 -0)
=================
==== JAR ====
=================
size │ diff │ path
──────┼──────┼─────────────────────────────────────────────────────────────────
0 B │ 0 B │ + META-INF/versions/9/ac/grim/grimac/shaded/snakeyaml/internal/
0 B │ 0 B │ + META-INF/versions/9/ac/grim/grimac/shaded/snakeyaml/
│ 0 B │ - META-INF/versions/9/org/yaml/snakeyaml/internal/
0 B │ 0 B │ + META-INF/versions/9/ac/grim/grimac/shaded/
│ 0 B │ - META-INF/versions/9/org/yaml/snakeyaml/
0 B │ 0 B │ + META-INF/versions/9/ac/grim/grimac/
│ 0 B │ - META-INF/versions/9/org/yaml/
0 B │ 0 B │ + META-INF/versions/9/ac/grim/
│ 0 B │ - META-INF/versions/9/org/
0 B │ 0 B │ + META-INF/versions/9/ac/
0 B │ 0 B │ + META-INF/services/
──────┼──────┼─────────────────────────────────────────────────────────────────
0 B │ 0 B │ (total)
``` - *by Zongle Wang* (`5a4471c`)
- Fix very rare Reach false for versions < 1.20.2 and > 1.21.4 involving rot only packets. See https://bugs.mojang.com/browse/MC/issues/MC-255263 - *by Axionize* (`3875a6b`)
- Amend previous Reach false fix to only apply in versions > 1.14.4 - *by Axionize* (`527c87e`)
- Fix FastBreak falses with 1.20.5+ custom tool rules. - *by Axionize* (`4b514e7`)
- Make ChatC and ChatB postViaChecks as temporary workaround to PE parsing limitations. - *by Axionize* (`31107ec`)
- [ci skip] Bump run-paper version - *by SamB440* (`cec0738`)
- Zero point zero three - *by SamB440* (`25b0582`)
- Disallow step after setback - *by SamB440* (`1136936`)
- [ci skip] Add client version to bypass issue template - *by SamB440* (`61f7ad8`)
- Refactor GrimDump: extract basic info generation to reusable getBasicInfo method - *by AoElite* (`a695dac`)
- Allow all functional urls to be changeable, move all grim system property usage to a dedicated class - *by AoElite* (`a9a2034`)
- Recode grim version command to use new api - *by AoElite* (`cd8d78d`)
- Add getVehicle() and getVehicleType() in GrimPlayer - *by ManInMyVan* (`647b13c`)
- Check if a player is in a boat when sending STEER_BOAT (Add VehicleE) - *by ManInMyVan* (`b5c14f4`)
- Validate STEER_BOAT values (Add VehicleF) - *by ManInMyVan* (`2e625e2`)
- Remove Check.isFlying - *by ManInMyVan* (`be120f0`)
- Make Check.isTransaction static - *by ManInMyVan* (`0a4a6cd`)
- Split isJumping and lastJumping into separate declarations - *by ManInMyVan* (`6787d1b`)
- Simplify FloodgateUtil - *by ManInMyVan* (`d2df1b7`)
- Use Math.PI in VanillaMath instead of the literal - *by ManInMyVan* (`7376468`)
- Don't use deprecated method ItemStack.getEnchantmentLevel(EnchantmentType, ClientVersion) in TridentItem - *by ManInMyVan* (`e433652`)
- Remove unused method BlockFaceHelper.offset - *by ManInMyVan* (`796a573`)
- Mark many utility classes as UtilityClass - *by ManInMyVan* (`380e3d9`)
- Don't use deprecated method ItemStack.getEnchantmentLevel(EnchantmentType, ClientVersion) in Riptide - *by ManInMyVan* (`376e7a9`)
- Rewrite GeyserUtil to not use reflection
except once - *by ManInMyVan* (`1ba072f`)
- Merge FloodgateUtil & GeyserUtil - *by ManInMyVan* (`a3108c7`)
- Remove Killaura from punishments.yml + add Interact in japanese punishments.yml - *by ManInMyVan* (`6ce610e`)
- Fix typo in help: section of en messages.yml causing error message on /grim help. Also make /grim help handle null lines - *by Axionize* (`94813c0`)
- Remove unused import in BlockFaceHelper - *by ManInMyVan* (`8cb4189`)
- Allow line break in pages - *by ManInMyVan* (`5761896`)
- Cleaner stuckSpeedMultiplier constants - *by ManInMyVan* (`03e1514`)
- Roll up shitmath bruteforce in PredictionEngineElytra - *by ManInMyVan* (`a953f50`)
- Add force-slow-movement and force-stuck-speed (intended for anarchy servers) - *by ManInMyVan* (`0dec743`)
- Update README.md and CONTRIBUTING.md - *by AoElite* (`c0b96ea`)
- Limit 1.21.5+ sprint attribute desync to minecarts - *by cyramek* (`fd59498`)
- More readable PredictionEngineElytra.applyInputsToVelocityPossibilities - *by ManInMyVan* (`28d8320`)
- Allow platform to be configured via system argument - *by AoElite* (`b997b6b`)
- Make PacketPlayerDigging pre-via: fix #2250
also move it before PreViaCheckManagerListener - *by ManInMyVan* (`97c1bdd`)
- Remove unused imports in ChatA/B - *by ManInMyVan* (`1c46546`)
- Add support for SET_PLAYER_INVENTORY packet - *by SamB440* (`17a8d3b`)
- Add some utilities - *by AoElite* (`090d1a8`)
- Reduce the number of tasks for updating permissions - *by AoElite* (`4702add`)
- Add GrimList command for debugging exemptions - *by AoElite* (`dbac8bc`)
- Don't allow sending OFF_HAND in USE_ITEM to bypass noslow - *by ManInMyVan* (`ff9af98`)
- Get item in PacketPlayerDigging.handleUseItem instead of it being passed - *by ManInMyVan* (`a7f8c77`)
- Use getItemInHand in PacketPlayerDigging - *by ManInMyVan* (`d71239b`)
- Only set NoSlow.didSlotChangeLastTick if the slot actually changed - *by ManInMyVan* (`aab6908`)
- PacketStateData.eatingHand -> itemInUseHand - *by ManInMyVan* (`b37393c`)
- Make PacketStateData.isSlowedByUsingItem() based on slowedByUsingItemSlot
the slowedByUsingItem is redundant - *by ManInMyVan* (`cecf5fb`)
- Reduce runnables with world borders - *by ManInMyVan* (`21ef46a`)
- Cache default input value; reduce memory usage for pre-1.21.2 players - *by ManInMyVan* (`eddb14b`)
- Normalize trighandler param names - *by ManInMyVan* (`b44dd89`)
- Mark GrimMath methods as pure - *by ManInMyVan* (`566dc9b`)
- Make Ray fields final - *by ManInMyVan* (`f87a077`)
- Don't use deprecated method ItemStack.getEnchantmentLevel(EnchantmentType, ClientVersion) - *by ManInMyVan* (`d2a8dce`)
- Replace ChannelHelper.runInEventLoop with GrimPlayer#runSafely - *by ManInMyVan* (`3f17557`)
- Move ComprensatedInventory instance to GrimPlayer - *by ManInMyVan* (`ea5ed06`)
- Simplify ViaVersionUtil - *by ManInMyVan* (`42d247b`)
- Clean up EntityPredicates - *by ManInMyVan* (`e26cf0f`)
- Make MainSupportingBlockData a record - *by ManInMyVan* (`64ebdf2`)
- Use GrimMath.radians in JumpPower - *by ManInMyVan* (`2b03755`)
- Make Dripstone.update(...) void - *by ManInMyVan* (`9f4c321`)
- Remove GrimPlayer#isEyeInFluid(FluidTag) - *by ManInMyVan* (`4e1320f`)
- Deobf FluidFallingAdjustedMovement.getFluidFallingAdjustedMovement(...) - *by ManInMyVan* (`dc03060`)
- Protected -> private in final class - *by ManInMyVan* (`0bf3a21`)
- Remove GrimPlayer#getInventory() - *by ManInMyVan* (`bd4cd31`)
- Fix riptide velocity (#2262) - *by Ayou* (`0586ea5`)
- Read event after getting player - *by ManInMyVan* (`a8693c3`)
- Read event after getting player - *by ManInMyVan* (`070116b`)
- Remove unused imports - *by ManInMyVan* (`f739b1e`)
- Only do NoSlow checks if trident is not enchanted with Riptide
This is not vanilla, but this is what the legacy handler does. To implement this properly, we would need to track biomes AND skylight, which is very memory-expensive.
fix: https://github.com/GrimAnticheat/Grim/issues/2259 - *by cyramek* (`b7c5837`)
- Fix FastBreak falses white riding entity (#2273) - *by EternalHuman* (`57a9f8f`)
- Ensure fabric uses our packetevents fork - *by AoElite* (`846e9ad`)
- Update packetevents - *by AoElite* (`a02f49e`)
- Update workflow - *by AoElite* (`db92c65`)
- Remove workflow paths - *by AoElite* (`becbba3`)
- Tweak workflow - *by AoElite* (`e368bc8`)
- Remove secret requirement - *by AoElite* (`184050b`)
- Add back workflow paths - *by AoElite* (`c2a07bd`)
- Revert pre via (#2280)
* revert pre-via part 1
* don't register checks multiple times
* revert pre-via part 1
* don't register checks multiple times
* fix merge conflicts
---------
Co-authored-by: cyramek <xcyramek@gmail.com> - *by SamB440* (`cb13221`)
- Optimize away entity collision check in 1.8 (#2269) - *by Pablo Herrera* (`fe7a263`)
- Add repo.grim.ac for 1.16.1 so fabric-permissions-api will be downloaded - *by Axionize* (`293f6ea`)
- Disable CodeQL workflow schedule - *by AoElite* (`b70abbe`)
- Enable parallel building - *by AoElite* (`9b2b080`)
- Update gradle publishing actions, remove action dependency requirement, disabled building and publishing of lite - *by AoElite* (`2403bc5`)
- Update the checkout action to v5 in CodeQL workflow - *by AoElite* (`a0bd388`)
- Bump lombok plugin to 9.0.0 - *by AoElite* (`9618912`)
- Use different approach in Gradle version extraction in the publishing workflow - *by AoElite* (`2a5979c`)
- Simplify version extraction - *by AoElite* (`088621f`)
- Add a build properties file to include more details about the build - *by AoElite* (`c428bf6`)
- Use GitHub's default branch instead of assuming 2.0 - *by AoElite* (`18d1602`)
- Remove unused `mainBranch` property from BuildConfig - *by AoElite* (`f54ceb6`)
- Exclude pull requests - *by AoElite* (`01ff3ec`)
- Add build properties to dump - *by AoElite* (`8d25519`)
- Correct formatting for conditional checks in gradle-publish workflow - *by AoElite* (`1f16d7b`)
- Update readme - *by AoElite* (`4be2549`)
- Specify java version fpr codeql - *by AoElite* (`fb926ab`)
- Modify grim startup update check failure message - *by Axionize* (`3ac26d0`)
- Update new release/alpha build workflow - *by Axionize* (`cbc2f51`)
- Run workflow on .github/workflows/** update - *by Axionize* (`8f78556`)
- Update buildscript to be more flexible; add support for gradle build scans - *by Axionize* (`2df4c23`)
- Bugfix - *by Axionize* (`dda1332`)
- Build script fix - *by Axionize* (`a74e10e`)
- Remove -q from printVersion so when --scan is applied logs print out - *by Axionize* (`2f8a473`)
- Print out build scan url not found when --scan enabled and url not found - *by Axionize* (`b72485d`)
- Fix escpaing some stings in preparing final changelog - *by Axionize* (`a26951c`)
- Use secrets for MODRINTH_ID - *by Axionize* (`50f3d84`)
- Fix using secrets for MODRINTH_ID in workflows - *by Axionize* (`b824ce1`)
- Fix using secrets for MODRINTH_ID in workflows again - *by Axionize* (`0095f8a`)
- Buildscript patches - *by Axionize* (`d15a2dd`)
### 🐛 Fixes
- Fix #2180 - *by ManInMyVan* (`1ab7f9f`)
- Fix NPE - *by ManInMyVan* (`9a22a28`)
- Fix #2181 - *by ManInMyVan* (`d59a9fa`)
- Fix build - *by ManInMyVan* (`b8e70b8`)
- Fix soft collisions for vehicles - *by cyramek* (`fec8806`)
- Fix elytra inputs - *by cyramek* (`c4a18a5`)
- Fix #2190 - *by ManInMyVan* (`bb7ba08`)
- Fix more SprintE falses - *by ManInMyVan* (`d835314`)
- Fix various vehicle issues [1.21.2] (#2185)
* fix happyghast step, collisions with fluids
warn about viabackwards compatibility
* fix 1.21.2+ riding without control
* use known input sneaking status if server support that
* fix fluid current pushing logic for happyghasts
* actually fix fluid pushing for happyghast
* fix vehicle input calculations for <=1.21.1 servers
* fix elytra inputs
* Revert 'fix elytra inputs'
* use pre-via listeners for sneaking
* remove warnings for sneaking issues on newer server versions
* fix float/double error causing 1e-8 imprecision when jumping on a horse
* workaround false positives when jumping on a horse
* add camel entity type
* only do this for 1.21.2+ client on 1.21.2+ servers
* build with new Grim PacketEvents fork snapshot with support for pre-via injection on Fabric - *by Cyramek* (`978364a`)
- Fix ExploitB false on pre 1.16 clients - *by ManInMyVan* (`2518ced`)
- Fix ExploitC on 1.9-1.12 servers - *by ManInMyVan* (`18f0a2a`)
- Fix vehicle relative teleport/vehicle 1.12.2+ teleport system (#2200)
* fix vehicle relative teleport/vehicle 1.12.2+ teleport system
* only mark teleports for re-encoding if we’re actually rewriting them - *by Cyramek* (`4156768`)
- Fix HappyGhast false positives when holding space
fix: https://github.com/GrimAnticheat/Grim/issues/2203 - *by cyramek* (`c66de10`)
- Https://github.com/GrimAnticheat/Grim/issues/2209 - *by cyramek* (`c37a79b`)
- Fix #2211 - *by ManInMyVan* (`9ab2f2e`)
- Fix NPE in BlockPlaceCheck#getCombinedBox (#2215) - *by Ayou* (`e2cf0fa`)
- Fix getting block jump factor in older versions - *by cyramek* (`b88dfa7`)
- Fix exception - *by ManInMyVan* (`3de670e`)
- Fix #2221 - *by ManInMyVan* (`fe1c6bf`)
- Fix PacketOrderO falses in vehicles - *by ManInMyVan* (`4287f62`)
- Fix ChatA/ChatB falses from 31107ec4b - *by ManInMyVan* (`38ccc55`)
- Shitmath look vector - *by ManInMyVan* (`0340e07`)
- Use stuckSpeedMultiplier instead of 0.99, 0.98, 0.99 - *by ManInMyVan* (`6320fa6`)
- Fix CrashH false - *by AoElite* (`8f1e993`)
- Fix deprecated method call ItemStack.getEnchantmentLevel(EnchantmentType, ClientVersion) - *by ManInMyVan* (`345502b`)
- Fix RunningMode field modifiers - *by ManInMyVan* (`9ea389b`)
- Fixed some minor build warnings - *by AoElite* (`c90d7ab`)
- Fix workflow - *by AoElite* (`fefaa57`)
- Fix repo property including org - *by AoElite* (`40a4c08`)
- Fix leaf litter hitbox - *by ManInMyVan* (`c10e74c`)
- Fix segmented hitboxes - *by ManInMyVan* (`cc10288`)
### 🤖 Maintenance & CI
- Add cliff.toml file for defining git-cliff formatting of changelogs - *by Axionize* (`a239560`)
- Create GitHub Actions script for auto-building lite version and publishing to Modrinth w/changelog - *by Axionize* (`0374b8c`)
- Replace vars.MODRINTH_ID with secrets.MODRINTH_ID to match repository Actions' settings - *by Axionize* (`5183ad8`)
- Fix generating changelog content in GitHub Actions - *by Axionize* (`2bf1260`)
- Fix escaping characters in changelog generation - *by Axionize* (`ba305cf`)
- Fix supported versions for Bukkit in Modrinth upload and Fabric dependences - *by Axionize* (`b0906d9`)
Grim Anticheat (Fabric) 2.3.72-3ac26d0
on Oct 1, 2025Grim Anticheat (Bukkit) 2.3.72-3ac26d0
on Oct 1, 2025Changes in this Build (since previous push)
Miscellaneous
- Modify grim startup update check failure message - by Axionize (
3ac26d0)
Grim Anticheat (Fabric) 2.3.72-cc10288
on Sep 30, 2025Grim Anticheat (Bukkit) 2.3.72-cc10288
on Sep 30, 2025Changes in this Build (since previous push)
🐛 Fixes
- Fix segmented hitboxes - by ManInMyVan (
cc10288)


