Compatibility
Minecraft: Java Edition
1.21.x
1.20.x
1.19.x
1.18.x
1.17.x
1.16.x
1.15.x
1.14.x
1.13.x
1.12.x
1.11.x
1.10.x
1.9.x
1.8.x
1.7.x
Platforms
Creators
Details
Changelog
First Modrinth Dev Build (Changelog is auto generated from all changes since 2.3.71)
- Future dev build changelogs will only contains changes since last dev build
- Future release changelogs will be handwritten, reviewed, and be cumulative of all changes since last release
🚀 New Features & Checks
- feat: Add /grim history (#2201)
- feat: add include-timestamp to discord.yml
- feat: finish ExploitC, replaces ExploitB
- feat: BadPacketsJ should be stable
- feat: payload system
- feat: descriptions for almost every place check
- feat: check if chat is hidden
- feat: add Chat and Exploit to punishments
- feat: check for moving while chatting
- feat: implement HappyGhast movement simulation (#2182)
- feat: add CONTRIBUTING.md and improve the README.md
- feat: Add config option to disable/enable the recently added Forge blacklist (#2131)
- feat: add BadPacketsJ
- feat: add MultiActionsG
- feat: Add PacketOrderM, N, O, P, K, L, J, I, H, G, F, E [SUMMARIZE - This is a huge new check category. Summarize it as one major feature.]
- feat(engine): Add option to disable cancelling pong packets
- feat(platform): Platform Independence (future Sponge, Fabric, Neoforge, Velocity, etc... support) (#2024) [HIGHLIGHT - This is a massive feature]
- feat(config): Create config.yml [NEEDS CONTEXT - What was the impact?]
- feat(verbose): include more information in verbose
- feat(verbose): include verbose in Simulation flags
- feat(build): BuildConfig updates to make mavenLocalUse a flag
- feat(api): Update API
- feat(commands): Allow /grim brands, verbose, alerts to be executed by console, cleanup code for sending and processing brands, verbose, alerts
🐛 Bug Fixes
-
- fix(engine): Disallow step after setback
-
- fix(engine): Zero point zero three
- fix(checks): Make ChatC and ChatB postViaChecks as temporary workaround to PE parsing limitations.
- fix(checks): Fix FastBreak falses with 1.20.5+ custom tool rules.
- fix(checks): Amend previous Reach false fix to only apply in versions > 1.14.4
- fix(checks): Fix very rare Reach false for versions < 1.20.2 and > 1.21.4 involving rot only packets.
- fix(checks): Hardcode more 1.21.4+ hand harvestables (#2213)
- fix(checks): fix getting block jump factor in older versions
- fix(checks): fix NPE in BlockPlaceCheck#getCombinedBox (#2215)
- fix(checks): Temporary fix for BadPacketsE not working on vehicles
- fix(checks): SprintA verbose
- fix(checks): fix #2211 - [NEEDS CONTEXT]
- fix: https://github.com/GrimAnticheat/Grim/issues/2209 - [NEEDS CONTEXT]
- fix(checks): make some checks run before via
- fix(checks): fix HappyGhast false positives when holding space
- fix(vehicle): fix vehicle relative teleport/vehicle 1.12.2+ teleport system (#2200)
- fix(checks): add missing return
- fix(checks): fix ExploitC on 1.9-1.12 servers
- fix(checks): fix ExploitB false on pre 1.16 clients
- fix(checks): validate anvil item name length
- fix(vehicle): fix various vehicle issues [1.21.2] (#2185)
- fix(checks): slightly change ignore-duplicate-packet-rotation logic
- fix(checks): fix more SprintE falses
- fix(checks): fix #2190 - [NEEDS CONTEXT]
- fix(checks): fix elytra inputs
- fix(vehicle): fix soft collisions for vehicles
- fix(build): fix build [DELETE - Noise]
- fix(checks): fix #2181 - [NEEDS CONTEXT]
- fix(checks): fix NPE
- fix(checks): SprintE on 1.18.2+
- fix(checks): fix #2180 - [NEEDS CONTEXT]
- fix(checks): Check for any menu that isn't the player's
- fix(checks): fix vine hitbox on pre-1.13 clients
- fix(inventory): Fix issue with server sending player inventory slot updates whilst in an unsupported inventory
- fix(collision): Fix DRIED_GHAST CollisionBox for 1.7.10-1.21.5
- fix(checks): fire can't be placed in liquids
- fix(checks): iron trapdoors can only be opened in 1.7
- fix(checks): fix #2149 - [NEEDS CONTEXT]
- fix(compat): Support plugins updating ATTACK_DAMAGE (fixes #2159)
- fix(compat): fix skinsrestorer compat
- fix(compat): patch #2140 - [NEEDS CONTEXT]
- fix: Fix GrimPlayer#getKeepAlivePing() method throwing a CCE.
- fix(compat): fix swift sneak on pre-1.20.5 clients on 1.20.5+ servers
- fix(checks): fix false with ender dragon attack slowdown
- fix(checks): exempt ElytraC for 1 tick on respawn
- fix(checks): probably fix #2134 - [NEEDS CONTEXT]
- fix(checks): fix potential false in MultiActionsE
- fix(checks): make MultiActionsB a BlockBreakCheck
- fix(checks): check sneaking in MultiActionsC/D
- fix(checks): check knownInput in MultiActionsC/D
- fix(checks): make MultiActionsC/D slightly more strict
- fix(folia): maybe fix the folia BukkitItemResetHandler "issue"
- fix(compat): Temporary fix for 1.16.5 Dirt Path/Grass Path Simulation errors
- fix(compat): maybe fix the disconnect.timeout issue
- fix(checks): fix BadPacketsH false when changing worlds with same dimension
- fix(checks): fix #2132 - [NEEDS CONTEXT]
- fix(checks): fix going into end portals in the end falsing badpacketsm
- fix(generic): fix IndexOutOfBoundsException
- fix(folia): Fix CME with accessing blockDataToId on Folia
- fix(folia): Revert incorrect Folia patch for ClassNotFoundException
- fix(elytra): Fix being able to use an elytra when it is in broken state
- fix(legacy): fix legacy BukkitPlatformWorld#getBlockAt
- fix(checks): check for respawning while alive
- fix(threshold): Fix disabling threshold (it shouldn't have been working before either)
- fix(discord): handle discord formatting better
- fix(logging): handle error logging more appropriately
- fix(folia): fix item reset usage error with folia
- fix(folia): fixed folia not being detected
- fix(generic): remove exempt players from the alert manager on disconnect
- fix(commands): fix /gl
- fix(checks): bubble columns were added in 1.13
- fix(checks): fix #2116 - [NEEDS CONTEXT]
- fix(build): fix build [DELETE - Noise]
- fix(verbose): actually tie verbose state to alert state this time
- fix(verbose): don't send alerts twice with verbose and alerts enabled
- fix(verbose): tie verbose state to alert state with console alerts + abstraction
- fix(checks): fix MultiActionsD false
- fix(collision): Fix HitboxData for Leaf Litter <= 1.21.5.
- fix(collision): Fix Leaf Litter and Wild Flowers HitboxData for <=1.21.4
- fix(checks): only reset sequence id if world changed
- fix(checks): call onBlockPlace if the player is in a vehicle
- fix(checks): Fixed: NullPointerException being thrown in the BadPacketsH check upon the server sending a respawn packet
- fix(collision): Fix HitboxData for new 1.21.4 & 1.21.5 blocks
- fix(checks): don't let people create ghost blocks by intentionally flagging
- fix(checks): make BlockPlaceCheck implement BlockBreakCheck
- fix(checks): make BadPacketsH not handle action digging packets
- fix(checks): fix a SprintB false
- fix(checks): enforce sequence id order
- fix(exploit): patch bundle crash
- fix(placeholder): always parse grim placeholders if possible
- fix(verbose): tie verbose state to alert state
- fix(checks): Fix fastbreak false with Brewing Stands for clients >=1.21.4
- fix(logging): Fix NPE accessing player.getClienetVersion() after final field refactor
- fix(compat): fix possible npe in getViaTranslatedClientBlockID
- fix(punishment): Fix punishment manager removing violations too quickly
- fix(entity): Fix canHit() modeling with dead entities
- fix(fabric): Fix 1.21.5 Inventory creative check crash on Fabric
- fix(compat): Check server version before logging error regarding ViaVersion placement rotation
- fix(placeholder): don't allow placeholders in placeholders
- fix(inventory): Fix typo in BukkitPlatformInventory
- fix(compat): Support ViaVersion translated blocks in Fastbreak check
- fix(setback): Fix cobweb 0.03 false setback
- fix(placeholder): fix placeholderapi expansion tab complete
- fix(compat): Fix addNonEffectiveAI on 1.21.5 (#2090)
- fix(verbose): escape minimessage in verbose
- fix(verbose): don't parse placeholders in verbose
- fix(build): Fix build error with shadePE flag not working
- fix(vehicle): Fix rare issue with vehicles on Bukkit in SetbackUtil
- fix(fabric): Fix getting TPS on Fabric returning average tick time instead
- fix(fabric): Fix :fabric:mc1161 submodule not loading properly
- fix(fabric): Fix :fabric:mc1171 submodule not loading properly
- fix(fabric): Fix erorr with setting gamemode on 1.17-1.20.1
- fix(fabric): Fix setting gamemode on Fabric breaking in 1.17+
- fix(checks): fix BadPacketsE false
- fix(world): fix 1.18+ world reader
- fix(build): fix build [DELETE - Noise]
- fix(generic): Fix NullPointerException
- fix(vehicle): Fix vehicle desync when demounting too fast
- fix(chat): fix &0
- fix(brand): fix brand detection with legacy servers and modern clients
- fix(inventory): fix reset-item-usage-on-item-update breaking vanilla behavior
- fix(chat): fix legacy color codes not resetting formatting
- fix(vehicle): I hate vehicles [RE-WORD]
- fix(packetorder): fixes [DELETE - Noise]
- fix(packetorder): fix a noslow
- fix(packetorder): fix falses (multiple) [SUMMARIZE]
- fix: fix #2221 [NEEDS CONTEXT]
- fix: fix exception [NEEDS CONTEXT]
- fix: 1.21.8 Server Support - Bump PE
- fix(checks): make badpacketse stricter
- fix(checks): players don't tick in unloaded chunks
- fix(checks): this just stops pre from flagging on 1.9
♻️ Code Refactoring
- refactor: d8b719daf more cleanup [DELETE - Noise]
- refactor: 95b080ae6 more small changes [DELETE - Noise]
- refactor: 1f052f610 small stuff [DELETE - Noise]
- refactor: 02426ad59 these don't need to implement anything [DELETE - Noise]
- refactor: 2a7403be6 small cleanup [DELETE - Noise]
- refactor: remove some empty lines [DELETE - Noise]
- refactor: d2913b368 a bit more cleanup [DELETE - Noise]
- refactor: normalize PredictionEngine class names
- refactor: 1bfef2e58 minor cleanup [DELETE - Noise]
- refactor: minor refactor
- refactor: remove unused import (multiple) [DELETE - Noise]
- refactor: move exploit and non-movement crash checks to packetChecks
- refactor: move BadPacketsS handling to BadPacketsS class
- refactor: move BadPacketsO to be alphabetically
- refactor: make BadPacketsJ a PacketCheck
- refactor: move Post class to misc
- refactor: Timer - Vehicle -> VehicleTimer
- refactor: Split ping-abuse-limit-threshold into a separate check
- refactor: dump command changes: renamed the properties field to states...
- refactor: bff54163d slight cleanup [DELETE - Noise]
- refactor: delete unused ConversionUtil class
- refactor: make CollisionData implement CollisionFactory
- refactor: make HitboxData implement HitboxyFactory
- refactor: 8ab2e3b23 slight cleanup [DELETE - Noise]
- refactor: use an enum for alert type instead of a string
- refactor: 3b2c08add a bit more cleanup [DELETE - Noise]
- refactor: inline ver in getClientVersion()
- refactor: GrimPlayer: use final fields where possible
- refactor: lombok (multiple commits) [SUMMARIZE - e.g., "Adopted Lombok for cleaner code"]
- refactor: Refactor debugging to extract AbstractDebugHandler
- refactor: 50bf3c114 slight cleanup [DELETE - Noise]
- refactor: Refactor traverseBlocks and getNearestBlockHitResult into WorldRayTrace.java
- refactor: 68739cd78 Merge pull request #1678 from ManInMyVan/packetorder [DELETE - Merge commit]
- refactor: Refactor names of BadPacketsH & BadPacketsM -> PacketOrderB & PacketOrderC respectively
- refactor: 740b9fe35 Timer - Vehicle -> VehicleTimer [DUPLICATE] refactor(packets): BadPacketsO optimizations refactor(packets): PacketOrderO refactor(packets): make PacketOrderB stricter refactor(packets): rename PacketOrderO to PacketOrderD
⚡️ Performance Improvements
- perf: improve piston performance
- perf: Optimize ViaVersionUtil
- perf: reduce object creation on fabric servers
- perf: Minor Iteration optimizations
📖 Documentation
- docs: update MultiActionsC/D description
- docs: BadPacketsP description
- docs: Remove inaccurate comment
- docs(readme): update readme for platform independence changes
- docs(translations): Update zh.yml, tr.yml, ru.yml, etc... (multiple commits) [SUMMARIZE]
- docs(commands): Add alternate names to re-add support for old enviornment variable exmaples
- docs(issues): Update issue templates to reflect platform independence
- docs(grammar): Correct grammar
🤖 Maintenance & CI
- chore: Bump run-paper version
- chore: Shadow 9.0.0-rc2 (#2229)
- chore: Add mavenCentral() to repositsories
- chore: Bump PacketEvents
- chore: Downgrade from shadow 9.0.0-rc1 to 9.0.0-beta8
- chore: Bump Dependencies
- chore: Add run-paper so I can debug easily
- chore: 1.21.5/.6/.7 (#2079)
- chore: Include fabric-permissions-api:0.4.0 for Fabric 1.21.6
- chore: support reobf folia jars
- chore: Update PacketEvents version to new grim/2.0 branch state
- chore: Blacklist forge 1.18.2-1.19.3.
- chore: 2528ff525 Revert "temp revert pre-via" [DELETE - Revert]
- chore: 77c165cfa temp revert pre-via [DELETE - Revert]
- chore: 0c52c208c Revert "Remove Unused legacy calls..." [DELETE - Revert]
- chore: 4798903fb Remove Unused legacy calls... [DELETE - Revert]
- chore: cda248ac2 Revert "this got closed" [DELETE - Revert]
- chore: ab3390c81 this got closed [DELETE - Revert]
- chore: 7311e65cd merge fixes [DELETE - Noise]
- chore: Bump gradle wrapper; only configure compile optimizations for subprojects
- chore: Minor Build Optimizations
- chore: Ignore temporary buildSrc/.kotlin folder in .gitignore
- chore: Fabric package consistency fixes
- chore: use our own packetevents repo
- chore: d5fbbbffb Workflows are fun! [DELETE - Noise]
- chore: Bump setup-gradle to v4
- chore: Bump version
- chore: Update Gradle wrapper and add validation workflow step
- chore: bump packetevents
- chore: bump minimessage
- chore: 1.21.2
- Uncategorized / Needs Review
- 533ae70f0 Hardcode more 1.21.4+ hand harvestables (#2213) [Seems like a fix]
- 85acf78db and it was not a teleport [NEEDS CONTEXT]
- 354216f9b BadPacketsO optimizations [Is this perf or refactor?]
- 408c7d577 pre-via block break checks [NEEDS CONTEXT]
- 2e01399c1 PacketOrderO [NEEDS CONTEXT]
- ac2c9eafc HOW DID I FORGET [DELETE - Noise]
- 51bbb3162 pre-via chat checks [NEEDS CONTEXT]
- d90de8fcc more pre-via [DELETE - Noise]
- 1b62b1dfb don't use ordinal for WindowClickType in CrashF
- 39b74b29f packet cancelling in VehicleD
- 9da9c30d9 there is no more via here [DELETE - Noise]
- 8d3e77f49 no it shouldn't [DELETE - Noise]
- 6e58e8c9c this should now be usable [NEEDS CONTEXT]
- 8a2ca76e6 this took too long [DELETE - Noise]
- 1a6b6fc59 payload system
- df31a39e2 descriptions for almost every place check
- 135c90c25 check for moving while chatting
- d1b0f4ddf remove whitespace in EquipmentType [Refactor?]
- 0844fc646 playerData -> player [Refactor?]
- 5fb8cd92b add KnownInput#moving
- b563792fa move ExploitA & C to chat category [Refactor?]
- af2a53ac6 Merge pull request #2193 from Ayouuuu/2.0 [DELETE - Merge Commit]
- c30be9487 why does this only not affect 1.21.4 [NEEDS CONTEXT]
- 485f2672a wtf mojang [RE-WORD]
- 829084c56 bruh [DELETE - Noise]
- 7555e2422 this just stops pre from flagging on 1.9 [NEEDS CONTEXT]
- 82f8bbf89 check the hand the player is using the item in
- 077ad7690 We do need to throw for this to work [NEEDS CONTEXT]
- 96426b332 why [DELETE - Noise]
- bf6b141e3 bruh [DELETE - Noise]
- 02a47d1c3 oops [DELETE - Noise]
- 0a853cb1f forgot to check this [DELETE - Noise]
- e7dde99aa why was this like that? [DELETE - Noise]
- 5faba0209 why was it like this [DELETE - Noise]
- 719044498 I'm a genius [DELETE - Noise]
- c9dfb30ca how did I miss that [DELETE - Noise]
- 7618b1fb2 that's definitely wrong [DELETE - Noise]
- fb725dc4e handle PLAYER_ROTATION packets
- acfef61ea actually fix it this time [DELETE - Noise]
- b0df15cab fixes [DELETE - Noise]
- 8d7abe318 spectator mode is dumb [RE-WORD]
- cd243008c fix wrongly resolved merge conflict [DELETE - Noise]