Compatibility
Minecraft: Java Edition
Platforms
Supported environments
Creators
Details
Changelog
Changes in this Build (since previous push)
Miscellaneous
- 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`)
- Bump version - *by ManInMyVan* (`8884b0a`)
- Fix BLOCK_INTERACTION_RANGE creative mode on < 1.20.5 - *by SamB440* (`642e580`)
### 🐛 Fixes
- 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`)


