Fully async, multithreaded, predictive, open source, 3.01 reach, 1.005 timer, 0.01% speed, 99.99% antikb, "bypassable" 1.8-1.21 anticheat
GrimAC is an free open source Minecraft anticheat designed to support the latest versions of Minecraft. It currently supports minecraft versions 1.8-1.21. Geyser players are fully exempt.
This project is considered feature-complete for the 2.0 (open-source) branch. If you would like a bug fix or enhancement and cannot sponsor the work, pull requests are welcome. A premium version is planned, which will offer additional subscription-based paid checks, such as heuristics.
Grim's API allows you to integrate Grim into your own plugins.
- API repository: GrimAPI
- Wiki info: Wiki
git clone https://github.com/GrimAnticheat/Grim.gitcd Grim./gradlew buildWhat makes Grim stand out against other anticheats?
Unknown
Unknown
Terms for using, modifying and redistributing this product.
23.07.2026 · Modrinth
85dd3d9)Screenshots and images from the original Modrinth page.
The project author has not added a gallery on Modrinth.
Published versions and original Modrinth files.
23.07.2026 · 1 217 downloads
85dd3d9)23.07.2026 · 143 downloads
85dd3d9)22.07.2026 · 102 downloads
9c45c65)22.07.2026 · 12 downloads
9c45c65)22.07.2026 · 1 downloads
6ba39ef)22.07.2026 · 2 downloads
6ba39ef)21.07.2026 · 1 904 downloads
936179e)21.07.2026 · 228 downloads
936179e)19.07.2026 · 2 536 downloads
2fe3b3e)19.07.2026 · 288 downloads
2fe3b3e)19.07.2026 · 1 358 downloads
40684fb)19.07.2026 · 188 downloads
40684fb)18.07.2026 · 1 216 downloads
6c699c2)18.07.2026 · 120 downloads
6c699c2)18.07.2026 · 15 downloads
Found by custom Java linter static analysis.
2963fca)18.07.2026 · 7 downloads
Found by custom Java linter static analysis.
2963fca)15.07.2026 · 3 320 downloads
1e5bbc3)15.07.2026 · 395 downloads
1e5bbc3)15.07.2026 · 31 downloads
03a128d)15.07.2026 · 23 downloads
03a128d)14.07.2026 · 2 730 downloads
63a684d)14.07.2026 · 231 downloads
63a684d)14.07.2026 · 12 downloads
63a684d)14.07.2026 · 9 downloads
63a684d)14.07.2026 · 12 downloads
63a684d)14.07.2026 · 8 downloads
63a684d)14.07.2026 · 35 downloads
3b54c21)14.07.2026 · 16 downloads
3b54c21)14.07.2026 · 11 downloads
ed648d2)14.07.2026 · 8 downloads
ed648d2)09.07.2026 · 7 343 downloads
41b8b61)09.07.2026 · 617 downloads
41b8b61)04.07.2026 · 6 830 downloads
7807650)04.07.2026 · 629 downloads
7807650)01.07.2026 · 4 220 downloads
882015a)01.07.2026 · 366 downloads
882015a)30.06.2026 · 488 downloads
e454008)30.06.2026 · 68 downloads
e454008)30.06.2026 · 31 downloads
fixes issues with stuck speed across all versions, most notably on 1.18.2+ and 1.21.10+
also fixes issue with depth strider on vehicles - by Cyramek (28179c2)
30.06.2026 · 14 downloads
fixes issues with stuck speed across all versions, most notably on 1.18.2+ and 1.21.10+
also fixes issue with depth strider on vehicles - by Cyramek (28179c2)
28.06.2026 · 3 558 downloads
fix: https://github.com/GrimAnticheat/Grim/issues/2762 - by cyramek (54a29a2)
28.06.2026 · 284 downloads
fix: https://github.com/GrimAnticheat/Grim/issues/2762 - by cyramek (54a29a2)
27.06.2026 · 1 647 downloads
79d54e3)Backport storage ownership leases - by Axionize (573a1d2)
27.06.2026 · 157 downloads
79d54e3)Backport storage ownership leases - by Axionize (573a1d2)
27.06.2026 · 637 downloads
f65930b)27.06.2026 · 56 downloads
f65930b)26.06.2026 · 940 downloads
784c46d)26.06.2026 · 113 downloads
784c46d)26.06.2026 · 355 downloads
732b9e0)25.06.2026 · 613 downloads
1d52bda)c96667c)ae11730)735550d)this class needs to be registry'fied if they gonna change boundingboxes in every version - by cyramek (4bce83e)
- Minor fixes - by cyramek (1250a40)
- Merge 26.2 support - by Axionize WS2 (d9bade6)
- Merge 26.2 support and update PacketEvents - by Axionize WS2 (52f8721)
- Use published PacketEvents snapshot - by Axionize WS2 (c40dfad)
- Skip Fabric publish when artifact is absent - by Axionize WS2 (12449c4)
eba3cb8)this was the cause why slime collisions were off by E-8
this can also be the cause of many false positives that are seemingly random - by cyramek (d2727a4)
- Fix formatting issues - by cyramek (02654ce)
24.06.2026 · 1 893 downloads
0aa2e2b)24.06.2026 · 280 downloads
0aa2e2b)21.06.2026 · 3 487 downloads
Fix fastbreak using outdated onGround status (#2657)
make sure that we're using latest onGround in FastBreak
things pointed out in a review - by Cyramek (ba1a930)
21.06.2026 · 339 downloads
Fix fastbreak using outdated onGround status (#2657)
make sure that we're using latest onGround in FastBreak
things pointed out in a review - by Cyramek (ba1a930)
20.06.2026 · 3 037 downloads
e37b7e3)20.06.2026 · 331 downloads
e37b7e3)14.06.2026 · 8 111 downloads
67aa3a9)14.06.2026 · 1 020 downloads
67aa3a9)14.06.2026 · 89 downloads
e80e3c4)b03f110)edb6c04)227cf23)f3af8e2)19d74d5)c4b295f)14.06.2026 · 42 downloads
e80e3c4)b03f110)edb6c04)227cf23)f3af8e2)19d74d5)c4b295f)14.06.2026 · 155 downloads
1f1b03c)14.06.2026 · 30 downloads
1f1b03c)11.06.2026 · 3 096 downloads
E-8 -> E-15 - by cyramek (c83870b)
11.06.2026 · 398 downloads
E-8 -> E-15 - by cyramek (c83870b)
10.06.2026 · 2 361 downloads
Wire the public verbose registry/manifest foundation and add a binary flag path that writes ViolationEvent.verboseData. Convert BadPacketsR because its verbose payload is three simple numeric fields: elapsed player-clock ms, last transaction delta ms, and position packet count. - by Axionize WS2 (e19cb38)
- Fix verbose binary metadata nits - by Axionize WS2 (417a212)
- Convert flight checks to binary verbose - by Axionize WS2 (deed028)
- Make verboseVersion unsigned on consumer side - by Axionize WS2 (e684ec7)
- Convert reach verbose to binary f32
Store Simulation offset as f32 without flagId. Store Reach min distance through the binary verbose path while preserving the existing alert text; Hitboxes remains on text verbose for now. - by Axionize WS2 (f63a216)
- Update binary verbose precision and formatters
Use f64 for Reach and Simulation numeric payloads, add Reach entity type IDs encoded for the player's client version, and register old-string custom formatters for Reach, Simulation, and GroundSpoof.
BadPacketsR had no pre-conversion verbose string in the converted check, so it remains on the generic name=value reader. - by Axionize WS2 (01d19bd)
- Convert badpackets verbose to binary
Converted: BadPacketsA, BadPacketsD, BadPacketsE, BadPacketsF, BadPacketsG, BadPacketsH, BadPacketsL, BadPacketsO, BadPacketsP, BadPacketsQ, BadPacketsT, BadPacketsU, BadPacketsV, BadPacketsY.
Already binary, moved into package registration: BadPacketsR.
Skipped empty/no verbose: BadPacketsB, BadPacketsC, BadPacketsI, BadPacketsJ, BadPacketsK, BadPacketsM, BadPacketsN, BadPacketsS, BadPacketsW, BadPacketsX, BadPacketsZ.
badpackets2: package absent in this checkout.
Verification: ./gradlew :Grim-public:common:compileJava :Grim-public:bukkit:compileJava --console=plain - by Axionize WS2 (e422749)
- Convert breaking and crash verbose to binary
Converted breaking: AirLiquidBreak, FarBreak, FastBreak, InvalidBreak, MultiBreak, PositionBreakA, PositionBreakB, RotationBreak, WrongBreak.
Skipped breaking: NoSwingBreak (no/empty verbose).
Converted crash: CrashC, CrashD, CrashE, CrashF, CrashH, CrashI.
Skipped crash: CrashA, CrashB, CrashG (no/empty verbose). - by Axionize WS2 (751011f)
- Preserve exact flag/alert/setback semantics for binary verbose checks - by Axionize WS2 (7ba8470)
- Convert wave B verbose checks to binary
Converted:\n- scaffolding: DuplicateRotPlace, FabricatedPlace, InvalidPlaceB, MultiPlace, RotationPlace\n- multiactions: MultiActionsC, MultiActionsD, MultiActionsF, MultiActionsG\n- chat: ChatB, ChatC\n- combat: MultiInteractA, MultiInteractB\n\nSkipped:\n- scaffolding: AirLiquidPlace, FarPlace, InvalidPlaceA, PositionPlace (empty verbose)\n- multiactions: MultiActionsA, MultiActionsB, MultiActionsE (empty verbose)\n- chat: ChatA, ChatD (empty or blank verbose)\n- combat: Hitboxes, SelfInteract (empty verbose), Reach (already converted/registered) - by Axionize WS2 (01ef829)
- Convert wave C verbose to binary
Converted:
- vehicle: VehicleA, VehicleD, VehicleE, VehicleF
- velocity: KnockbackHandler/AntiKB, ExplosionHandler/AntiExplosion
- timer: NegativeTimer, TickTimer
- exploit: ExploitA, ExploitB
- sprint: SprintA
- misc: Post
- elytra: ElytraB
Skipped unchanged:
- vehicle: VehicleB, VehicleC
- velocity: VectorPrecisionConverter
- timer: Timer, TimerLimit, VehicleTimer
- sprint: SprintB, SprintC, SprintD, SprintE, SprintF, SprintG
- misc: ClientBrand, GhostBlockMitigation, TransactionOrder
- elytra: ElytraA, ElytraC, ElytraD, ElytraE, ElytraF, ElytraG, ElytraH, ElytraI - by Axionize WS2 (5f4b923)
- Convert missed verbose packages to binary
Converted: baritone/Baritone; packetorder/PacketOrderB, PacketOrderC, PacketOrderD, PacketOrderE, PacketOrderF, PacketOrderG, PacketOrderI, PacketOrderK, PacketOrderL, PacketOrderO, PacketOrderP.
Skipped: packetorder/PacketOrderA, PacketOrderH, PacketOrderJ, PacketOrderM, PacketOrderN, and PacketOrderProcessor because they only use empty/no verbose.
Build: ./gradlew :Grim-public:common:compileJava :Grim-public:bukkit:compileJava -PmavenLocalOverride=true --console=plain - by Axionize WS2 (e7f2ed2)
- Render binary verbose lazily on alerts - by Axionize WS2 (05c6eda)
- Use compact verbose encodings for object values - by Axionize (2a5685a)
- Restore BadPacketsR verbose formatter parity - by Axionize WS2 (5eb67c3)
- Merge verbose binary consumer - by Axionize WS2 (182c82e)
10.06.2026 · 302 downloads
Wire the public verbose registry/manifest foundation and add a binary flag path that writes ViolationEvent.verboseData. Convert BadPacketsR because its verbose payload is three simple numeric fields: elapsed player-clock ms, last transaction delta ms, and position packet count. - by Axionize WS2 (e19cb38)
- Fix verbose binary metadata nits - by Axionize WS2 (417a212)
- Convert flight checks to binary verbose - by Axionize WS2 (deed028)
- Make verboseVersion unsigned on consumer side - by Axionize WS2 (e684ec7)
- Convert reach verbose to binary f32
Store Simulation offset as f32 without flagId. Store Reach min distance through the binary verbose path while preserving the existing alert text; Hitboxes remains on text verbose for now. - by Axionize WS2 (f63a216)
- Update binary verbose precision and formatters
Use f64 for Reach and Simulation numeric payloads, add Reach entity type IDs encoded for the player's client version, and register old-string custom formatters for Reach, Simulation, and GroundSpoof.
BadPacketsR had no pre-conversion verbose string in the converted check, so it remains on the generic name=value reader. - by Axionize WS2 (01d19bd)
- Convert badpackets verbose to binary
Converted: BadPacketsA, BadPacketsD, BadPacketsE, BadPacketsF, BadPacketsG, BadPacketsH, BadPacketsL, BadPacketsO, BadPacketsP, BadPacketsQ, BadPacketsT, BadPacketsU, BadPacketsV, BadPacketsY.
Already binary, moved into package registration: BadPacketsR.
Skipped empty/no verbose: BadPacketsB, BadPacketsC, BadPacketsI, BadPacketsJ, BadPacketsK, BadPacketsM, BadPacketsN, BadPacketsS, BadPacketsW, BadPacketsX, BadPacketsZ.
badpackets2: package absent in this checkout.
Verification: ./gradlew :Grim-public:common:compileJava :Grim-public:bukkit:compileJava --console=plain - by Axionize WS2 (e422749)
- Convert breaking and crash verbose to binary
Converted breaking: AirLiquidBreak, FarBreak, FastBreak, InvalidBreak, MultiBreak, PositionBreakA, PositionBreakB, RotationBreak, WrongBreak.
Skipped breaking: NoSwingBreak (no/empty verbose).
Converted crash: CrashC, CrashD, CrashE, CrashF, CrashH, CrashI.
Skipped crash: CrashA, CrashB, CrashG (no/empty verbose). - by Axionize WS2 (751011f)
- Preserve exact flag/alert/setback semantics for binary verbose checks - by Axionize WS2 (7ba8470)
- Convert wave B verbose checks to binary
Converted:\n- scaffolding: DuplicateRotPlace, FabricatedPlace, InvalidPlaceB, MultiPlace, RotationPlace\n- multiactions: MultiActionsC, MultiActionsD, MultiActionsF, MultiActionsG\n- chat: ChatB, ChatC\n- combat: MultiInteractA, MultiInteractB\n\nSkipped:\n- scaffolding: AirLiquidPlace, FarPlace, InvalidPlaceA, PositionPlace (empty verbose)\n- multiactions: MultiActionsA, MultiActionsB, MultiActionsE (empty verbose)\n- chat: ChatA, ChatD (empty or blank verbose)\n- combat: Hitboxes, SelfInteract (empty verbose), Reach (already converted/registered) - by Axionize WS2 (01ef829)
- Convert wave C verbose to binary
Converted:
- vehicle: VehicleA, VehicleD, VehicleE, VehicleF
- velocity: KnockbackHandler/AntiKB, ExplosionHandler/AntiExplosion
- timer: NegativeTimer, TickTimer
- exploit: ExploitA, ExploitB
- sprint: SprintA
- misc: Post
- elytra: ElytraB
Skipped unchanged:
- vehicle: VehicleB, VehicleC
- velocity: VectorPrecisionConverter
- timer: Timer, TimerLimit, VehicleTimer
- sprint: SprintB, SprintC, SprintD, SprintE, SprintF, SprintG
- misc: ClientBrand, GhostBlockMitigation, TransactionOrder
- elytra: ElytraA, ElytraC, ElytraD, ElytraE, ElytraF, ElytraG, ElytraH, ElytraI - by Axionize WS2 (5f4b923)
- Convert missed verbose packages to binary
Converted: baritone/Baritone; packetorder/PacketOrderB, PacketOrderC, PacketOrderD, PacketOrderE, PacketOrderF, PacketOrderG, PacketOrderI, PacketOrderK, PacketOrderL, PacketOrderO, PacketOrderP.
Skipped: packetorder/PacketOrderA, PacketOrderH, PacketOrderJ, PacketOrderM, PacketOrderN, and PacketOrderProcessor because they only use empty/no verbose.
Build: ./gradlew :Grim-public:common:compileJava :Grim-public:bukkit:compileJava -PmavenLocalOverride=true --console=plain - by Axionize WS2 (e7f2ed2)
- Render binary verbose lazily on alerts - by Axionize WS2 (05c6eda)
- Use compact verbose encodings for object values - by Axionize (2a5685a)
- Restore BadPacketsR verbose formatter parity - by Axionize WS2 (5eb67c3)
- Merge verbose binary consumer - by Axionize WS2 (182c82e)
09.06.2026 · 263 downloads
e7fedff)09.06.2026 · 128 downloads
e7fedff)09.06.2026 · 239 downloads
idk how to reproduce it because it shouldn't happen, but I guess transaction splits between entity equipment updates happen - by cyramek (4f747c3)
09.06.2026 · 41 downloads
idk how to reproduce it because it shouldn't happen, but I guess transaction splits between entity equipment updates happen - by cyramek (4f747c3)
09.06.2026 · 518 downloads
19dde8b)09.06.2026 · 68 downloads
19dde8b)09.06.2026 · 12 downloads
19dde8b)09.06.2026 · 64 downloads
6b28271)09.06.2026 · 17 downloads
6b28271)09.06.2026 · 51 downloads
3404e9b)09.06.2026 · 15 downloads
3404e9b)07.06.2026 · 1 406 downloads
Replaces the leftover "Prison" placeholder used for the /grim history
header and database config with a neutral "ChangeMe" default that
prompts operators to set their own server name. - by Axionize (41b0fff)
07.06.2026 · 253 downloads
Replaces the leftover "Prison" placeholder used for the /grim history
header and database config with a neutral "ChangeMe" default that
prompts operators to set their own server name. - by Axionize (41b0fff)
07.06.2026 · 71 downloads
we're E-15 on average across all supported versions - by Cyramek (86785db)
07.06.2026 · 16 downloads
we're E-15 on average across all supported versions - by Cyramek (86785db)
06.06.2026 · 1 997 downloads
5f19722)06.06.2026 · 186 downloads
5f19722)06.06.2026 · 73 downloads
2ea1d99)06.06.2026 · 17 downloads
2ea1d99)06.06.2026 · 101 downloads
Compensate attack range swaps for movement (#7)
Compensate attack range swaps for movement
Restrict attack range movement compensation to swaps
Keep attack range item values as floats
Fix attack_range swap reach compensation
Add Reach verbose for attack range movement - by Axionize (f61d522)
06.06.2026 · 26 downloads
Compensate attack range swaps for movement (#7)
Compensate attack range swaps for movement
Restrict attack range movement compensation to swaps
Keep attack range item values as floats
Fix attack_range swap reach compensation
Add Reach verbose for attack range movement - by Axionize (f61d522)
05.06.2026 · 932 downloads
b2b2503)05.06.2026 · 96 downloads
b2b2503)05.06.2026 · 628 downloads
4de186b)05.06.2026 · 71 downloads
4de186b)05.06.2026 · 460 downloads
b3a7496)05.06.2026 · 78 downloads
b3a7496)04.06.2026 · 749 downloads
ac892c5)04.06.2026 · 102 downloads
ac892c5)03.06.2026 · 1 600 downloads
5e60273)03.06.2026 · 204 downloads
5e60273)02.06.2026 · 982 downloads
dde41ad)02.06.2026 · 136 downloads
dde41ad)02.06.2026 · 55 downloads
4642c3d)02.06.2026 · 26 downloads
4642c3d)01.06.2026 · 1 493 downloads
9888990)01.06.2026 · 450 downloads
9888990)31.05.2026 · 809 downloads
This reverts commit 6ce529c83de82eee53425a5b081c03115c181e04. - by ManInMyVan (48b778e)
31.05.2026 · 104 downloads
This reverts commit 6ce529c83de82eee53425a5b081c03115c181e04. - by ManInMyVan (48b778e)
30.05.2026 · 1 240 downloads
6ff7f44)30.05.2026 · 209 downloads
6ff7f44)30.05.2026 · 88 downloads
cd61780)6ce529c)d2e47fd)30.05.2026 · 24 downloads
cd61780)6ce529c)d2e47fd)29.05.2026 · 1 131 downloads
17b86aa)490a02b)406d6e7)29.05.2026 · 179 downloads
17b86aa)490a02b)406d6e7)29.05.2026 · 265 downloads
e62d451)29.05.2026 · 54 downloads
e62d451)29.05.2026 · 757 downloads
b62722b)36931a8)29.05.2026 · 156 downloads
b62722b)36931a8)29.05.2026 · 60 downloads
d34f5c1)29.05.2026 · 22 downloads
d34f5c1)28.05.2026 · 146 downloads
10cc198)28.05.2026 · 26 downloads
10cc198)28.05.2026 · 23 downloads
4a632c1)28.05.2026 · 22 downloads
4a632c1)28.05.2026 · 329 downloads
gravity is calculated based on deltaMovement, not actualMovement
fix: https://github.com/GrimAnticheat/Grim/issues/2687 - by cyramek (7e1607d)
28.05.2026 · 38 downloads
gravity is calculated based on deltaMovement, not actualMovement
fix: https://github.com/GrimAnticheat/Grim/issues/2687 - by cyramek (7e1607d)
28.05.2026 · 434 downloads
0b7001b)28.05.2026 · 86 downloads
0b7001b)27.05.2026 · 1 472 downloads
fix: https://github.com/GrimAnticheat/Grim/issues/2685 - by cyramek (ec08cbe)
27.05.2026 · 185 downloads
fix: https://github.com/GrimAnticheat/Grim/issues/2685 - by cyramek (ec08cbe)
26.05.2026 · 569 downloads
8c95b21)26.05.2026 · 73 downloads
8c95b21)26.05.2026 · 538 downloads
21f1534)26.05.2026 · 78 downloads
21f1534)24.05.2026 · 1 429 downloads
edc3987)24.05.2026 · 180 downloads
edc3987)24.05.2026 · 42 downloads
bebccfa)24.05.2026 · 20 downloads
bebccfa)24.05.2026 · 110 downloads
199b673)24.05.2026 · 36 downloads
199b673)24.05.2026 · 806 downloads
Reduce memory allocation and exclude annotation processors (#2669)
ComplexCollisionBox#downCast: Reduce alloc
ReachInterpolationData#getPossibleLocationCombined: Reduce alloc
SimpleCollisionBox: Only alloc boxes when needed
SimpleCollisionBox#betweenCornersInDirection: Skip Vector3d alloc
Materials: Use IdentityHashMap backed Sets to reduce alloc (StateType#hashCode)
build.gradle.kts: Exclude annotation processor service from shadowJar
Update common/src/main/java/ac/grim/grimac/utils/collisions/datatypes/ComplexCollisionBox.java
Co-authored-by: ManInMyVan 113963219+ManInMyVan@users.noreply.github.com
Co-authored-by: Dieu info@l4b.org
Co-authored-by: Techirion 126729304+Techirion@users.noreply.github.com
Co-authored-by: ManInMyVan 113963219+ManInMyVan@users.noreply.github.com - by NO-UUID (6152908)
24.05.2026 · 109 downloads
Reduce memory allocation and exclude annotation processors (#2669)
ComplexCollisionBox#downCast: Reduce alloc
ReachInterpolationData#getPossibleLocationCombined: Reduce alloc
SimpleCollisionBox: Only alloc boxes when needed
SimpleCollisionBox#betweenCornersInDirection: Skip Vector3d alloc
Materials: Use IdentityHashMap backed Sets to reduce alloc (StateType#hashCode)
build.gradle.kts: Exclude annotation processor service from shadowJar
Update common/src/main/java/ac/grim/grimac/utils/collisions/datatypes/ComplexCollisionBox.java
Co-authored-by: ManInMyVan 113963219+ManInMyVan@users.noreply.github.com
Co-authored-by: Dieu info@l4b.org
Co-authored-by: Techirion 126729304+Techirion@users.noreply.github.com
Co-authored-by: ManInMyVan 113963219+ManInMyVan@users.noreply.github.com - by NO-UUID (6152908)
24.05.2026 · 225 downloads
935668a)ce89791)24.05.2026 · 37 downloads
935668a)ce89791)24.05.2026 · 30 downloads
5869433)24.05.2026 · 17 downloads
5869433)24.05.2026 · 54 downloads
d939109)24.05.2026 · 23 downloads
d939109)23.05.2026 · 51 downloads
also reduce object allocations - by ManInMyVan (8083f42)
23.05.2026 · 15 downloads
also reduce object allocations - by ManInMyVan (8083f42)
23.05.2026 · 23 downloads
client-brand.ignored-clients in config - by ManInMyVan (60d3ecf)fd9e91d)d501dfe)43db51d)23.05.2026 · 10 downloads
client-brand.ignored-clients in config - by ManInMyVan (60d3ecf)fd9e91d)d501dfe)43db51d)23.05.2026 · 833 downloads
6252fe6)23.05.2026 · 125 downloads
6252fe6)22.05.2026 · 432 downloads
635708a)22.05.2026 · 125 downloads
635708a)22.05.2026 · 36 downloads
635708a)22.05.2026 · 874 downloads
9b1aa1a)22.05.2026 · 113 downloads
9b1aa1a)22.05.2026 · 367 downloads
34c41db)22.05.2026 · 53 downloads
34c41db)20.05.2026 · 1 039 downloads
fdd734a)20.05.2026 · 115 downloads
fdd734a)18.05.2026 · 2 791 downloads
2af658c)18.05.2026 · 360 downloads
2af658c)18.05.2026 · 45 downloads
fdaf096)18.05.2026 · 27 downloads
fdaf096)16.05.2026 · 1 259 downloads
we're in E-15 now on average - by Cyramek (f3ed3b2)
16.05.2026 · 152 downloads
we're in E-15 now on average - by Cyramek (f3ed3b2)
15.05.2026 · 1 364 downloads
e32d091)15.05.2026 · 239 downloads
e32d091)15.05.2026 · 52 downloads
ff214a4)15.05.2026 · 22 downloads
ff214a4)15.05.2026 · 731 downloads
70223cd)15.05.2026 · 124 downloads
70223cd)15.05.2026 · 55 downloads
29316a7)15.05.2026 · 32 downloads
29316a7)15.05.2026 · 75 downloads
c156c00)15.05.2026 · 158 downloads
c156c00)14.05.2026 · 242 downloads
25d10f4)14.05.2026 · 47 downloads
25d10f4)14.05.2026 · 130 downloads
20d68c1)14.05.2026 · 26 downloads
20d68c1)14.05.2026 · 53 downloads
fb4ad7a)14.05.2026 · 22 downloads
fb4ad7a)14.05.2026 · 496 downloads
36675eb)14.05.2026 · 80 downloads
36675eb)14.05.2026 · 38 downloads
5fa803e)14.05.2026 · 20 downloads
5fa803e)13.05.2026 · 1 035 downloads
7a7e07f)13.05.2026 · 175 downloads
7a7e07f)12.05.2026 · 204 downloads
62b2268)12.05.2026 · 50 downloads
62b2268)12.05.2026 · 305 downloads
Fix entity boundingbox replication regression (#2642)
fix entity boundingbox replication regression
check if tick end event exists - by Cyramek (8a3767b)
12.05.2026 · 50 downloads
Fix entity boundingbox replication regression (#2642)
fix entity boundingbox replication regression
check if tick end event exists - by Cyramek (8a3767b)
12.05.2026 · 26 downloads
Apply block effects for swim-hop vector (#2648)
apply block effects for swim-hop vector
adjust swim hop constants - by Cyramek (73c60d0)
12.05.2026 · 14 downloads
Apply block effects for swim-hop vector (#2648)
apply block effects for swim-hop vector
adjust swim hop constants - by Cyramek (73c60d0)
12.05.2026 · 114 downloads
02f1dc3)12.05.2026 · 27 downloads
02f1dc3)12.05.2026 · 265 downloads
cdd490b)12.05.2026 · 53 downloads
cdd490b)11.05.2026 · 1 087 downloads
3cd17cc)11.05.2026 · 163 downloads
3cd17cc)10.05.2026 · 1 174 downloads
65d1050)c549b19)6953235)10.05.2026 · 172 downloads
65d1050)c549b19)6953235)10.05.2026 · 127 downloads
717829a)10.05.2026 · 32 downloads
717829a)08.05.2026 · 1 295 downloads
7ccff01)08.05.2026 · 214 downloads
7ccff01)08.05.2026 · 650 downloads
addabec)99e309f)08.05.2026 · 100 downloads
addabec)99e309f)06.05.2026 · 1 512 downloads
new trig lookup table just dropped - by Cyramek (494e9c5)
06.05.2026 · 213 downloads
new trig lookup table just dropped - by Cyramek (494e9c5)
05.05.2026 · 1 155 downloads
ce86075)05.05.2026 · 165 downloads
ce86075)04.05.2026 · 1 105 downloads
7d823f5)04.05.2026 · 162 downloads
7d823f5)04.05.2026 · 81 downloads
Fix 1.9 client noslow on 1.8 servers (#2607)
fix 1.9 client noslow on 1.8 servers
fix metadata ids - by ManInMyVan (5c6de64)
04.05.2026 · 37 downloads
Fix 1.9 client noslow on 1.8 servers (#2607)
fix 1.9 client noslow on 1.8 servers
fix metadata ids - by ManInMyVan (5c6de64)
04.05.2026 · 20 downloads
215a1e6)04.05.2026 · 15 downloads
215a1e6)04.05.2026 · 67 downloads
5a40a06)04.05.2026 · 24 downloads
5a40a06)03.05.2026 · 361 downloads
d591f10)2c60aae)21f0c3d)17d4d2f)3e5afef)fc899a3)83a6d98)5254190)145f71c)4c866d0)f81e183)3d95fea)03.05.2026 · 69 downloads
d591f10)2c60aae)21f0c3d)17d4d2f)3e5afef)fc899a3)83a6d98)5254190)145f71c)4c866d0)f81e183)3d95fea)30.04.2026 · 3 012 downloads
e9c918d)fd9e0f8)30.04.2026 · 458 downloads
e9c918d)fd9e0f8)30.04.2026 · 143 downloads
2508a34)30.04.2026 · 55 downloads
2508a34)30.04.2026 · 46 downloads
This reverts commit 3021287391de4aee964abe5bcf6c452f72f68a7b. - by AoElite (73f63c1)
30.04.2026 · 26 downloads
This reverts commit 3021287391de4aee964abe5bcf6c452f72f68a7b. - by AoElite (73f63c1)
30.04.2026 · 225 downloads
3021287)30.04.2026 · 39 downloads
3021287)29.04.2026 · 638 downloads
75cc402)29.04.2026 · 112 downloads
75cc402)29.04.2026 · 196 downloads
c88b494)29.04.2026 · 53 downloads
c88b494)28.04.2026 · 67 downloads
84bd90d)28.04.2026 · 26 downloads
84bd90d)28.04.2026 · 443 downloads
c233a60)28.04.2026 · 78 downloads
c233a60)28.04.2026 · 293 downloads
fbabbf2)8861589)28.04.2026 · 74 downloads
fbabbf2)8861589)28.04.2026 · 41 downloads
053b090)28.04.2026 · 14 downloads
053b090)27.04.2026 · 73 downloads
578c784)27.04.2026 · 34 downloads
578c784)27.04.2026 · 305 downloads
tested with 1.8.9, 1.20.4 and ViaVersion on 1.20.4 Server and 1.8.9 Client
related issue: https://github.com/GrimAnticheat/Grim/issues/2148 - by InetAddress (5c46b0a)
27.04.2026 · 55 downloads
tested with 1.8.9, 1.20.4 and ViaVersion on 1.20.4 Server and 1.8.9 Client
related issue: https://github.com/GrimAnticheat/Grim/issues/2148 - by InetAddress (5c46b0a)
26.04.2026 · 475 downloads
fixes #2552 - by Axionize WS1 (257bffe)
26.04.2026 · 69 downloads
fixes #2552 - by Axionize WS1 (257bffe)
26.04.2026 · 15 downloads
Fixes issues on 1.8.9 / Older versions thinking that daylight detectors connect to fences / iron bars
Related: https://github.com/GrimAnticheat/Grim/issues/1856 - by KotlinList (d81d03f)
26.04.2026 · 19 downloads
Fixes issues on 1.8.9 / Older versions thinking that daylight detectors connect to fences / iron bars
Related: https://github.com/GrimAnticheat/Grim/issues/1856 - by KotlinList (d81d03f)
25.04.2026 · 9 downloads
66b3334)25.04.2026 · 13 downloads
66b3334)24.04.2026 · 1 172 downloads
7499d10)24.04.2026 · 218 downloads
7499d10)23.04.2026 · 291 downloads
794e120)23.04.2026 · 57 downloads
794e120)23.04.2026 · 12 downloads
3664f4d)23.04.2026 · 15 downloads
3664f4d)22.04.2026 · 854 downloads
6c3ccb4)22.04.2026 · 167 downloads
6c3ccb4)18.04.2026 · 2 738 downloads
Fix some falses regarding camel sprinting (#2462)
Fix camel sprinting falses
Forgot about camel husks
Obey code style
Fix respawns
Obey code style (for real this time)
Fix SprintG false with camels
Move camel sprinting state to VehicleData - by LaserSlime (d55f1b7)
18.04.2026 · 379 downloads
Fix some falses regarding camel sprinting (#2462)
Fix camel sprinting falses
Forgot about camel husks
Obey code style
Fix respawns
Obey code style (for real this time)
Fix SprintG false with camels
Move camel sprinting state to VehicleData - by LaserSlime (d55f1b7)
17.04.2026 · 1 007 downloads
broken after recent packetevents update that overriden #set method in Chunk_v1_18 - by cyramek (8dc657a)
17.04.2026 · 193 downloads
broken after recent packetevents update that overriden #set method in Chunk_v1_18 - by cyramek (8dc657a)
17.04.2026 · 150 downloads
61e9e69)17.04.2026 · 48 downloads
61e9e69)17.04.2026 · 159 downloads
f9fdfa7)17.04.2026 · 38 downloads
f9fdfa7)15.04.2026 · 1 273 downloads
19c12b7)15.04.2026 · 191 downloads
19c12b7)15.04.2026 · 34 downloads
only bukkit platform for now - by Cyramek (a9b91e7)
15.04.2026 · 17 downloads
only bukkit platform for now - by Cyramek (a9b91e7)
15.04.2026 · 206 downloads
7885555)15.04.2026 · 56 downloads
7885555)15.04.2026 · 51 downloads
bf10e23)f0e15b0)f380fcd)9b06c86)isPacketInventoryActive was false before allowing revert - by SamB440 (6a46c35)11d572f)7d9dc86)89eedbe)77c48f4)10cb176)d1b2135)7fd7bc1)Fix PostgreSQL UUID retrieval in history command (#2575)
Fix PostgreSQL UUID retrieval in history command
Improve error handling for UUID retrieval in DatabaseUtils
Use if-else if in DatabaseUtils.getUuid - by Fussel (efd796c)
ece9f3c)b55a12c)e8dc9ae)3e07a0e)890799d)Fix MYSQL 8 support (#2534)
Fix MYSQL 8 support
Prevent double index error from sending everytime. - by Milan Ensink (35fe1f0)
1b60cb8)99dce8c)c169d9c)65815fc)cd3576b)b9da63c)13ad8bd)fc75e51)14.04.2026 · 161 downloads
c169d9c)14.04.2026 · 176 downloads
99dce8c)14.04.2026 · 38 downloads
99dce8c)13.04.2026 · 94 downloads
1b60cb8)13.04.2026 · 26 downloads
1b60cb8)13.04.2026 · 406 downloads
Fix MYSQL 8 support (#2534)
Fix MYSQL 8 support
Prevent double index error from sending everytime. - by Milan Ensink (35fe1f0)
13.04.2026 · 102 downloads
Fix MYSQL 8 support (#2534)
Fix MYSQL 8 support
Prevent double index error from sending everytime. - by Milan Ensink (35fe1f0)
13.04.2026 · 197 downloads
fc75e51)13.04.2026 · 48 downloads
fc75e51)13.04.2026 · 11 downloads
13ad8bd)13.04.2026 · 19 downloads
13ad8bd)12.04.2026 · 400 downloads
3e07a0e)12.04.2026 · 91 downloads
3e07a0e)10.04.2026 · 1 363 downloads
e8dc9ae)10.04.2026 · 279 downloads
e8dc9ae)10.04.2026 · 85 downloads
b55a12c)10.04.2026 · 36 downloads
b55a12c)09.04.2026 · 1 018 downloads
ece9f3c)09.04.2026 · 222 downloads
ece9f3c)09.04.2026 · 473 downloads
Fix PostgreSQL UUID retrieval in history command (#2575)
Fix PostgreSQL UUID retrieval in history command
Improve error handling for UUID retrieval in DatabaseUtils
Use if-else if in DatabaseUtils.getUuid - by Fussel (efd796c)
09.04.2026 · 121 downloads
Fix PostgreSQL UUID retrieval in history command (#2575)
Fix PostgreSQL UUID retrieval in history command
Improve error handling for UUID retrieval in DatabaseUtils
Use if-else if in DatabaseUtils.getUuid - by Fussel (efd796c)
06.04.2026 · 1 366 downloads
b9da63c)06.04.2026 · 276 downloads
b9da63c)06.04.2026 · 226 downloads
7fd7bc1)06.04.2026 · 66 downloads
7fd7bc1)05.04.2026 · 1 311 downloads
d1b2135)05.04.2026 · 272 downloads
d1b2135)04.04.2026 · 295 downloads
10cb176)04.04.2026 · 95 downloads
10cb176)03.04.2026 · 773 downloads
77c48f4)03.04.2026 · 176 downloads
77c48f4)03.04.2026 · 714 downloads
cd3576b)03.04.2026 · 148 downloads
cd3576b)03.04.2026 · 27 downloads
89eedbe)03.04.2026 · 21 downloads
89eedbe)03.04.2026 · 17 downloads
7d9dc86)03.04.2026 · 27 downloads
7d9dc86)02.04.2026 · 2 151 downloads
11d572f)02.04.2026 · 193 downloads
11d572f)31.03.2026 · 1 069 downloads
isPacketInventoryActive was false before allowing revert - by SamB440 (6a46c35)31.03.2026 · 219 downloads
isPacketInventoryActive was false before allowing revert - by SamB440 (6a46c35)29.03.2026 · 1 390 downloads
9b06c86)29.03.2026 · 300 downloads
9b06c86)29.03.2026 · 86 downloads
f380fcd)29.03.2026 · 29 downloads
f380fcd)27.03.2026 · 2 032 downloads
bf10e23)27.03.2026 · 411 downloads
bf10e23)25.03.2026 · 1 389 downloads
5f9b9dd)740f7f4)25.03.2026 · 324 downloads
5f9b9dd)740f7f4)21.03.2026 · 2 372 downloads
e40ec01)21.03.2026 · 347 downloads
e40ec01)21.03.2026 · 30 downloads
Check for keepsprint on 1.9 servers (#2070)
check for keepsprint on 1.9 servers
update held item in AttackCooldownHandler every time the slot is changed
fix #2389
change AttackCooldownHandler package - by ManInMyVan (e954124)
21.03.2026 · 22 downloads
Check for keepsprint on 1.9 servers (#2070)
check for keepsprint on 1.9 servers
update held item in AttackCooldownHandler every time the slot is changed
fix #2389
change AttackCooldownHandler package - by ManInMyVan (e954124)
20.03.2026 · 788 downloads
598aae0)20.03.2026 · 127 downloads
598aae0)20.03.2026 · 761 downloads
48115eb)20.03.2026 · 126 downloads
48115eb)16.03.2026 · 2 868 downloads
539e822)16.03.2026 · 453 downloads
539e822)16.03.2026 · 46 downloads
29c0757)16.03.2026 · 22 downloads
29c0757)13.03.2026 · 2 374 downloads
13fb273)13.03.2026 · 319 downloads
13fb273)11.03.2026 · 1 354 downloads
0a1ce1d)11.03.2026 · 246 downloads
0a1ce1d)09.03.2026 · 818 downloads
add support for https://github.com/ViaVersion/ViaVersion/pull/4733 - by Cyramek (7e8b6b6)
09.03.2026 · 166 downloads
add support for https://github.com/ViaVersion/ViaVersion/pull/4733 - by Cyramek (7e8b6b6)
09.03.2026 · 71 downloads
546abf0)09.03.2026 · 35 downloads
546abf0)09.03.2026 · 87 downloads
thanks LaserSlime and Axionize for help! - by Cyramek (302bed1)
09.03.2026 · 16 downloads
fix: https://github.com/GrimAnticheat/Grim/issues/2463 - by Cyramek (8a0d1e2)
09.03.2026 · 28 downloads
thanks LaserSlime and Axionize for help! - by Cyramek (302bed1)
09.03.2026 · 23 downloads
fix: https://github.com/GrimAnticheat/Grim/issues/2463 - by Cyramek (8a0d1e2)
09.03.2026 · 82 394 downloads
This update brings official support for Minecraft 1.21.10 & 1.21.11, a massive overhaul to the Grim API for developers, robust new features like PostgreSQL and Discord Forum integration, and dozens of critical false-positive fixes and performance optimizations.
You can download the latest release on Modrinth: https://modrinth.com/plugin/grimac
/grim testwebhook command to easily verify your configuration. (by @ManInMyVan)This update contains numerous developer experience improvements and bug fixes for the Grim API.
* Simplified EventBus Registration: Developers no longer need to manually construct a GrimPlugin instance to use the EventBus. Platform-specific resolvers automatically determine the context (e.g., passing this from a Bukkit Plugin class or Fabric Mod Initializer).
* Fixed Reflected Listeners: Fixed a critical bug causing ClassCastException for listeners registered via registerAnnotatedListeners.
* New Methods: Added a method exposing the int block type from CompensatedWorld. (by @Cubicake in #2464)
* Note: Legacy API support has been temporarily added back to prevent breakage while developers migrate to the new standard.
Vector3dm multiplier improvements), and implemented FastUtil map micro-optimizations to reduce garbage collection overhead.Reach causing it to not flag certain clients from 1.15-1.20.1 and 1.21.5-1.21.8. (by @Axionize)Reach false positive involving Happy Ghasts on clients older than 1.21.6. (by @GreenedDev in #2352)FastBreak false positive that occurred when switching tools via a Shulker Box. (by @Ayouuuu in #2454)/grim spectate on a player in another dimension would incorrectly reset the spectator's gamemode to Survival. (by @GroupXyz2 in #2365)NullPointerException that occurred on Spigot servers using the late-bind option on versions older than 1.14.4. (by @uRyanxD in #2388)getTPS() metric (temporary patch). (by @Axionize)Elytra (A, B, C, F), PositionBreakB, and MultiActions (C, D) have been marked as stable.ro.yml): Added by @ItzBloxxy in #2285pl.yml): Added by @dxw1d in #2501zh.yml): Huge translation improvements and comment updates by @tjshtqwq and @MatrixU5er.A massive thank you to everyone who contributed to this release!
* @Szypkoo made their first contribution in #2329
* @ItzBloxxy made their first contribution in #2285
* @Weigurde made their first contribution in #2350
* @tenki-cloud[bot] made their first contribution in #2362
* @GroupXyz2 made their first contribution in #2365
* @GreenedDev made their first contribution in #2352
* @NgLoader made their first contribution in #2372
* @iLemon made their first contribution in #2397
* @uRyanxD made their first contribution in #2388
* @runningbird2 made their first contribution in #2477
* @Cubicake made their first contribution in #2464
* @tjshtqwq made their first contribution in #2267
* @dxw1d made their first contribution in #2501
Full Changelog: https://github.com/GrimAnticheat/Grim/compare/v2.3.72...v2.3.73
09.03.2026 · 7 810 downloads
This update brings official support for Minecraft 1.21.10 & 1.21.11, a massive overhaul to the Grim API for developers, robust new features like PostgreSQL and Discord Forum integration, and dozens of critical false-positive fixes and performance optimizations.
You can download the latest release on Modrinth: https://modrinth.com/plugin/grimac
/grim testwebhook command to easily verify your configuration. (by @ManInMyVan)This update contains numerous developer experience improvements and bug fixes for the Grim API.
* Simplified EventBus Registration: Developers no longer need to manually construct a GrimPlugin instance to use the EventBus. Platform-specific resolvers automatically determine the context (e.g., passing this from a Bukkit Plugin class or Fabric Mod Initializer).
* Fixed Reflected Listeners: Fixed a critical bug causing ClassCastException for listeners registered via registerAnnotatedListeners.
* New Methods: Added a method exposing the int block type from CompensatedWorld. (by @Cubicake in #2464)
* Note: Legacy API support has been temporarily added back to prevent breakage while developers migrate to the new standard.
Vector3dm multiplier improvements), and implemented FastUtil map micro-optimizations to reduce garbage collection overhead.Reach causing it to not flag certain clients from 1.15-1.20.1 and 1.21.5-1.21.8. (by @Axionize)Reach false positive involving Happy Ghasts on clients older than 1.21.6. (by @GreenedDev in #2352)FastBreak false positive that occurred when switching tools via a Shulker Box. (by @Ayouuuu in #2454)/grim spectate on a player in another dimension would incorrectly reset the spectator's gamemode to Survival. (by @GroupXyz2 in #2365)NullPointerException that occurred on Spigot servers using the late-bind option on versions older than 1.14.4. (by @uRyanxD in #2388)getTPS() metric (temporary patch). (by @Axionize)Elytra (A, B, C, F), PositionBreakB, and MultiActions (C, D) have been marked as stable.ro.yml): Added by @ItzBloxxy in #2285pl.yml): Added by @dxw1d in #2501zh.yml): Huge translation improvements and comment updates by @tjshtqwq and @MatrixU5er.A massive thank you to everyone who contributed to this release!
* @Szypkoo made their first contribution in #2329
* @ItzBloxxy made their first contribution in #2285
* @Weigurde made their first contribution in #2350
* @tenki-cloud[bot] made their first contribution in #2362
* @GroupXyz2 made their first contribution in #2365
* @GreenedDev made their first contribution in #2352
* @NgLoader made their first contribution in #2372
* @iLemon made their first contribution in #2397
* @uRyanxD made their first contribution in #2388
* @runningbird2 made their first contribution in #2477
* @Cubicake made their first contribution in #2464
* @tjshtqwq made their first contribution in #2267
* @dxw1d made their first contribution in #2501
Full Changelog: https://github.com/GrimAnticheat/Grim/compare/v2.3.72...v2.3.73
09.03.2026 · 46 downloads
Closes https://github.com/GrimAnticheat/Grim/issues/2520 - by Axionize (879d566)
09.03.2026 · 34 downloads
Closes https://github.com/GrimAnticheat/Grim/issues/2520 - by Axionize (879d566)
09.03.2026 · 28 downloads
53cf3e8)d4611f1)09.03.2026 · 26 downloads
53cf3e8)d4611f1)08.03.2026 · 393 downloads
This reverts commit 1d0cbb7078205b0b265a8ae6047bd304811ed130. - by ManInMyVan (c7983b7)
- Remove unused imports in Reach.java - by ManInMyVan (d273229)
08.03.2026 · 62 downloads
This reverts commit 1d0cbb7078205b0b265a8ae6047bd304811ed130. - by ManInMyVan (c7983b7)
- Remove unused imports in Reach.java - by ManInMyVan (d273229)
04.03.2026 · 4 630 downloads
Co-authored-by: DawixTV 92529087+DawixTV@users.noreply.github.com - by dxw1d (272a889)
04.03.2026 · 677 downloads
Co-authored-by: DawixTV 92529087+DawixTV@users.noreply.github.com - by dxw1d (272a889)
04.03.2026 · 55 downloads
438b0a5)This reverts commit 4798903fb1ea8adf744bc6001016690c5625b171. - by Axionize (0c52c20)
- Update MultiActionsC/D description - by ManInMyVan (76a262d)
- Check sneaking in MultiActionsC/D - by ManInMyVan (ee2e198)
- Make MultiActionsB a BlockBreakCheck - by ManInMyVan (5308c35)
- Probably fix #2134 - by ManInMyVan (e6a7518)
- Remove unused import - by ManInMyVan (3d68d26)
- Exempt ElytraC for 1 tick on respawn - by ManInMyVan (b8600bc)
- Wtf mojang - by ManInMyVan (485f267)
- Remove unused import - by ManInMyVan (32d778d)
- Minor refactor - by ManInMyVan (0d6d4da)
- Improve piston performance - by AoElite (6ad8050)
- Add CONTRIBUTING.md and improve the README.md - by AoElite (ee2ccc5)
- Merge pull request #2143 from Souipi/fix/ka-ping-method-cce
Fix GrimPlayer#getKeepAlivePing() method throwing a CCE. - by AoElite (63f2c05)
- Patch #2140 - by ManInMyVan (983872a)
- Support plugins updating ATTACK_DAMAGE (fixes #2159) - by SamB440 (5e5fbe6)
- Iron trapdoors can only be opened in 1.7 - by ManInMyVan (e81716a)
- Fire can't be placed in liquids - by ManInMyVan (9484870)
- Support reobf folia jars - by ManInMyVan (5de34f5)
- Check if entityId is an active firework before adding to removal set - by SamB440 (b6e481d)
- Slight optimization - by ManInMyVan (bc258de)
- Cleanup - by ManInMyVan (d3e3b58)
- A bit more cleanup - by ManInMyVan (6c79baf)
- Reduce object creation on fabric servers - by ManInMyVan (0ac0a78)
- 1.21.6 MVP
Changes from https://github.com/GrimAnticheat/Grim/pull/2079 remain unmerged. New movement, entity, and attribute fixes have not been accounted for. This merely allows Grim to boot on 1.21.6/1.21.7-rc2 servers and 1.21.6/1.21.7-rc2 players to join. - by Axionize (4ade97a)
- Include fabric-permissions-api:0.4.0 for Fabric 1.21.6 - by Axionize (fcc7851)
- 1.21.5/.6/.7 (#2079)
1.21.5 partial changes
leftover
cleanup
check if player is in vehicle
1;1 input transformation
forgot to push that
notes
i hate mutability
not the case
this is the right way
note
java style
initial block collisions support
incorrect fix for powder snow issues (1.21.4)
support 1.18.2+ horizontal collision detection
support elytra changes
point three
readability
missed that
fix merge conflicts
support minecraft:blocks_attacks
minecraft:blocks_attacks can override minecraft:food
remove debug
rewrite data consumable components support
simplify consumable component handling
as always, I forgot to remove this
note things todo
one more thing
POC item behaviour
workaround https://github.com/retrooper/packetevents/pull/1255
1.21.6 initial support
fix .5/.6 riding issues
create happy ghast entity
todo list
remove workarounds
properly fix riding issues
only use item behaviour system on reliable data component server
replace happy ghast checks
fix jumping on honey blocks, implement dried ghast block
partially implement dried ghast ViaVersion replacement
update sneaking behavior for newer client versions
things pointed out in review
reduce movement buffer size
rename that field
little refactor
don't duplicate code
leave it as what it was
rename SERVER_USE_INPUT_FOR_SNEAKING to SERVER_USES_INPUT_FOR_SNEAKING
grim's packetevents fork is here!
simplify isHappyGhast type check - by Cyramek (aaeded1)
06dc5a5)0fb2e00)8c64b48)56130ed)b8013d6)710d614)Implement HappyGhast movement simulation (#2182)
implement happyghast movement simulation
use grim movement input calculations for happy ghast
remove unused jump possibilities method from HappyGhastPredictionEngine - by Cyramek (c8df737)
0f54849)c30be94)1bfef2e)3c56235)d2913b3)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)
2e9b086)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)
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)
- Update translation - by tjshtqwq (c2acfae)
- Remove unused imports - by ManInMyVan (f739b1e)
- Merge branch '2.0' into patch-1 - by tjshtqwq (75b5405)
- Update zh.yml - by tjshtqwq (f54ca0e)
- Clean up typos and translator notes - by Axionize (1f55742)
- Merge PR #2267 - Improved Chinese Translations - by Axionize (439477e)
ef195ea)9786f0d)d22f8d8)b821f12)984cfee)ea848fa)d190e42)dea9659)1ab7f9f)9a22a28)d59a9fa)b8e70b8)fec8806)c4a18a5)bb7ba08)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)
2518ced)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: 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)
a239560)0374b8c)5183ad8)2bf1260)ba305cf)b0906d9)04.03.2026 · 35 downloads
438b0a5)This reverts commit 4798903fb1ea8adf744bc6001016690c5625b171. - by Axionize (0c52c20)
- Update MultiActionsC/D description - by ManInMyVan (76a262d)
- Check sneaking in MultiActionsC/D - by ManInMyVan (ee2e198)
- Make MultiActionsB a BlockBreakCheck - by ManInMyVan (5308c35)
- Probably fix #2134 - by ManInMyVan (e6a7518)
- Remove unused import - by ManInMyVan (3d68d26)
- Exempt ElytraC for 1 tick on respawn - by ManInMyVan (b8600bc)
- Wtf mojang - by ManInMyVan (485f267)
- Remove unused import - by ManInMyVan (32d778d)
- Minor refactor - by ManInMyVan (0d6d4da)
- Improve piston performance - by AoElite (6ad8050)
- Add CONTRIBUTING.md and improve the README.md - by AoElite (ee2ccc5)
- Merge pull request #2143 from Souipi/fix/ka-ping-method-cce
Fix GrimPlayer#getKeepAlivePing() method throwing a CCE. - by AoElite (63f2c05)
- Patch #2140 - by ManInMyVan (983872a)
- Support plugins updating ATTACK_DAMAGE (fixes #2159) - by SamB440 (5e5fbe6)
- Iron trapdoors can only be opened in 1.7 - by ManInMyVan (e81716a)
- Fire can't be placed in liquids - by ManInMyVan (9484870)
- Support reobf folia jars - by ManInMyVan (5de34f5)
- Check if entityId is an active firework before adding to removal set - by SamB440 (b6e481d)
- Slight optimization - by ManInMyVan (bc258de)
- Cleanup - by ManInMyVan (d3e3b58)
- A bit more cleanup - by ManInMyVan (6c79baf)
- Reduce object creation on fabric servers - by ManInMyVan (0ac0a78)
- 1.21.6 MVP
Changes from https://github.com/GrimAnticheat/Grim/pull/2079 remain unmerged. New movement, entity, and attribute fixes have not been accounted for. This merely allows Grim to boot on 1.21.6/1.21.7-rc2 servers and 1.21.6/1.21.7-rc2 players to join. - by Axionize (4ade97a)
- Include fabric-permissions-api:0.4.0 for Fabric 1.21.6 - by Axionize (fcc7851)
- 1.21.5/.6/.7 (#2079)
1.21.5 partial changes
leftover
cleanup
check if player is in vehicle
1;1 input transformation
forgot to push that
notes
i hate mutability
not the case
this is the right way
note
java style
initial block collisions support
incorrect fix for powder snow issues (1.21.4)
support 1.18.2+ horizontal collision detection
support elytra changes
point three
readability
missed that
fix merge conflicts
support minecraft:blocks_attacks
minecraft:blocks_attacks can override minecraft:food
remove debug
rewrite data consumable components support
simplify consumable component handling
as always, I forgot to remove this
note things todo
one more thing
POC item behaviour
workaround https://github.com/retrooper/packetevents/pull/1255
1.21.6 initial support
fix .5/.6 riding issues
create happy ghast entity
todo list
remove workarounds
properly fix riding issues
only use item behaviour system on reliable data component server
replace happy ghast checks
fix jumping on honey blocks, implement dried ghast block
partially implement dried ghast ViaVersion replacement
update sneaking behavior for newer client versions
things pointed out in review
reduce movement buffer size
rename that field
little refactor
don't duplicate code
leave it as what it was
rename SERVER_USE_INPUT_FOR_SNEAKING to SERVER_USES_INPUT_FOR_SNEAKING
grim's packetevents fork is here!
simplify isHappyGhast type check - by Cyramek (aaeded1)
06dc5a5)0fb2e00)8c64b48)56130ed)b8013d6)710d614)Implement HappyGhast movement simulation (#2182)
implement happyghast movement simulation
use grim movement input calculations for happy ghast
remove unused jump possibilities method from HappyGhastPredictionEngine - by Cyramek (c8df737)
0f54849)c30be94)1bfef2e)3c56235)d2913b3)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)
2e9b086)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)
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)
- Update translation - by tjshtqwq (c2acfae)
- Remove unused imports - by ManInMyVan (f739b1e)
- Merge branch '2.0' into patch-1 - by tjshtqwq (75b5405)
- Update zh.yml - by tjshtqwq (f54ca0e)
- Clean up typos and translator notes - by Axionize (1f55742)
- Merge PR #2267 - Improved Chinese Translations - by Axionize (439477e)
ef195ea)9786f0d)d22f8d8)b821f12)984cfee)ea848fa)d190e42)dea9659)1ab7f9f)9a22a28)d59a9fa)b8e70b8)fec8806)c4a18a5)bb7ba08)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)
2518ced)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: 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)
a239560)0374b8c)5183ad8)2bf1260)ba305cf)b0906d9)03.03.2026 · 893 downloads
f0fbc9d)7d487a4)e8a9855)03.03.2026 · 217 downloads
f0fbc9d)7d487a4)e8a9855)23.02.2026 · 8 489 downloads
4ca65b1)23.02.2026 · 1 136 downloads
4ca65b1)22.02.2026 · 310 downloads
7be8f51)22.02.2026 · 132 downloads
7be8f51)30.01.2026 · 20 215 downloads
f118b5c)30.01.2026 · 2 610 downloads
f118b5c)28.01.2026 · 2 345 downloads
f95d877)28.01.2026 · 372 downloads
f95d877)24.01.2026 · 3 871 downloads
6c49a01)24.01.2026 · 478 downloads
6c49a01)20.01.2026 · 2 868 downloads
80afaae)20.01.2026 · 374 downloads
80afaae)18.01.2026 · 1 787 downloads
88cfffc)35174fd)18.01.2026 · 272 downloads
88cfffc)35174fd)17.01.2026 · 1 719 downloads
cd86c14)17.01.2026 · 271 downloads
cd86c14)15.01.2026 · 1 861 downloads
b7a719d)15.01.2026 · 279 downloads
b7a719d)14.01.2026 · 923 downloads
c043357)14.01.2026 · 176 downloads
c043357)14.01.2026 · 325 downloads
9d1682d)14.01.2026 · 55 downloads
9d1682d)13.01.2026 · 217 downloads
fefe0d1)13.01.2026 · 79 downloads
fefe0d1)13.01.2026 · 130 downloads
08770f0)b9fa89c)075cec8)3659060)a54329a)13.01.2026 · 59 downloads
08770f0)b9fa89c)075cec8)3659060)a54329a)13.01.2026 · 719 downloads
50a25d9)13.01.2026 · 110 downloads
50a25d9)10.01.2026 · 2 062 downloads
21f6988)10.01.2026 · 239 downloads
21f6988)08.01.2026 · 2 794 downloads
8001f6c)08.01.2026 · 259 downloads
8001f6c)08.01.2026 · 55 downloads
c5855fd)08.01.2026 · 60 downloads
c5855fd)07.01.2026 · 365 downloads
1.21.11 support (#2420)
fix horse modern/legacy jumping mechanics, camel dash cooldown tracking (#2199)
implement UseEffects component
fixes: https://github.com/GrimAnticheat/Grim/issues/2396
initial support for hitbox margin
compensableDashableEntities -> dashableEntities
implement floating in water
implement nautilus movement
todo: fix dashing, fix step
this code was dropped in:
https://github.com/GrimAnticheat/Grim/commit/1a6a8c57583ef12556241383829eb5f7dcc3595f
fix nautilus dashing
improve precision while dashing
actually fix dashing
I'm really dumb ngl, vanilla packet sequence:
1. rot packet with PLAYER look angle
2. vehicle move packet with ENTITY look angle
vehicle move packet overrides player's yaw and pitch from first rot packet
I will refactor this later
support new gliding behavior
refactor nautilus prediction engines
implement parched boundingbox
add support for fast lava gameplay attribute in fluid pushing
camels have variants now
WIP tick-based world borders
fix off ground camel dashing
thanks thisisatest8406
add onGround tracking for entities
revert tracking entity onGround
I decided that I don't care enough, camels are bugged as hell, everything desync
remove unneeded diff
fix pending jumps and camel off-ground dashing
remove outdated comment regarding nautilus jumping logic
Add support for max_reach AttackRange component
Co-authored-by: Axionize 154778082+Axionize@users.noreply.github.com - by Cyramek (bf85863)
07.01.2026 · 77 downloads
1.21.11 support (#2420)
fix horse modern/legacy jumping mechanics, camel dash cooldown tracking (#2199)
implement UseEffects component
fixes: https://github.com/GrimAnticheat/Grim/issues/2396
initial support for hitbox margin
compensableDashableEntities -> dashableEntities
implement floating in water
implement nautilus movement
todo: fix dashing, fix step
this code was dropped in:
https://github.com/GrimAnticheat/Grim/commit/1a6a8c57583ef12556241383829eb5f7dcc3595f
fix nautilus dashing
improve precision while dashing
actually fix dashing
I'm really dumb ngl, vanilla packet sequence:
1. rot packet with PLAYER look angle
2. vehicle move packet with ENTITY look angle
vehicle move packet overrides player's yaw and pitch from first rot packet
I will refactor this later
support new gliding behavior
refactor nautilus prediction engines
implement parched boundingbox
add support for fast lava gameplay attribute in fluid pushing
camels have variants now
WIP tick-based world borders
fix off ground camel dashing
thanks thisisatest8406
add onGround tracking for entities
revert tracking entity onGround
I decided that I don't care enough, camels are bugged as hell, everything desync
remove unneeded diff
fix pending jumps and camel off-ground dashing
remove outdated comment regarding nautilus jumping logic
Add support for max_reach AttackRange component
Co-authored-by: Axionize 154778082+Axionize@users.noreply.github.com - by Cyramek (bf85863)
06.01.2026 · 687 downloads
Add Back Support for Legacy API (#2409)
Add back support for the legacy API temporarily
Bump API to release version - by Axionize (95e2774)
06.01.2026 · 85 downloads
Add Back Support for Legacy API (#2409)
Add back support for the legacy API temporarily
Bump API to release version - by Axionize (95e2774)
06.01.2026 · 162 downloads
02f6a3b)06.01.2026 · 49 downloads
02f6a3b)06.01.2026 · 37 downloads
dbd7510)06.01.2026 · 26 downloads
dbd7510)06.01.2026 · 60 downloads
ca64aab)be35b9b)9cb4547)06.01.2026 · 28 downloads
ca64aab)be35b9b)9cb4547)05.01.2026 · 1 556 downloads
14573da)05.01.2026 · 139 downloads
14573da)04.01.2026 · 235 downloads
07d2010)639490a)04.01.2026 · 49 downloads
07d2010)639490a)04.01.2026 · 800 downloads
6186abc)04.01.2026 · 82 downloads
6186abc)03.01.2026 · 221 downloads
29d28c6)03.01.2026 · 32 downloads
29d28c6)01.01.2026 · 2 164 downloads
98fd065)01.01.2026 · 152 downloads
98fd065)01.01.2026 · 149 downloads
d0b30de)01.01.2026 · 34 downloads
d0b30de)01.01.2026 · 252 downloads
80f90e6)7c68947)Fix Sculk Vein replacement Phase/Simulation falses & Optimize canBeReplaced logic
Added replacement logic for SCULK_VEIN (mirrors GLOW_LICHEN).
b79d5fd)01.01.2026 · 43 downloads
80f90e6)7c68947)Fix Sculk Vein replacement Phase/Simulation falses & Optimize canBeReplaced logic
Added replacement logic for SCULK_VEIN (mirrors GLOW_LICHEN).
b79d5fd)31.12.2025 · 487 downloads
101473b)31.12.2025 · 64 downloads
101473b)31.12.2025 · 35 downloads
42b6630)31.12.2025 · 27 downloads
42b6630)31.12.2025 · 118 downloads
90193b4)60b70d1)4292e93)31.12.2025 · 48 downloads
90193b4)60b70d1)4292e93)30.12.2025 · 1 074 downloads
ce0dad5)30.12.2025 · 95 downloads
ce0dad5)29.12.2025 · 669 downloads
9e745fd)29.12.2025 · 102 downloads
9e745fd)29.12.2025 · 72 downloads
d374c2b)29.12.2025 · 29 downloads
d374c2b)28.12.2025 · 1 723 downloads
2d8def6)28.12.2025 · 128 downloads
2d8def6)21.12.2025 · 5 631 downloads
b6f9f86)21.12.2025 · 688 downloads
b6f9f86)17.12.2025 · 3 301 downloads
965008f)12f6af3)4a104e2)c019566)17.12.2025 · 946 downloads
965008f)12f6af3)4a104e2)c019566)14.12.2025 · 2 052 downloads
This reverts commit d96d683b14150d6e0f486a63cf1a74c417c6a84b. - by AoElite (0153ce3)
14.12.2025 · 169 downloads
This reverts commit d96d683b14150d6e0f486a63cf1a74c417c6a84b. - by AoElite (0153ce3)
14.12.2025 · 48 downloads
d96d683)14.12.2025 · 22 downloads
d96d683)14.12.2025 · 32 downloads
acf273f)14.12.2025 · 26 downloads
acf273f)14.12.2025 · 30 downloads
679e869)14.12.2025 · 25 downloads
679e869)08.12.2025 · 4 056 downloads
a1b4893)08.12.2025 · 485 downloads
a1b4893)06.12.2025 · 1 202 downloads
4d28f85)06.12.2025 · 160 downloads
4d28f85)29.11.2025 · 4 302 downloads
3bf3226)29.11.2025 · 380 downloads
3bf3226)29.11.2025 · 242 downloads
bf637f5)29.11.2025 · 49 downloads
bf637f5)25.11.2025 · 2 235 downloads
c2c044f)25.11.2025 · 272 downloads
c2c044f)24.11.2025 · 1 039 downloads
2d785fd)24.11.2025 · 179 downloads
2d785fd)23.11.2025 · 61 downloads
403fd36)23.11.2025 · 35 downloads
403fd36)22.11.2025 · 1 167 downloads
e386b93)22.11.2025 · 157 downloads
e386b93)22.11.2025 · 43 downloads
Fix spectate command resetting gamemode when spectating someone in another dimension (#2365)
Fix gamemode change on dimension change
This issue happened when using the spectate command on a player in another dimension. the spectator was set to survival mode.
When spectating a player in another dimension, you would previously get set to survival mode, this is now fixed. - by GroupXyz (3fc985c)
22.11.2025 · 38 downloads
Fix spectate command resetting gamemode when spectating someone in another dimension (#2365)
Fix gamemode change on dimension change
This issue happened when using the spectate command on a player in another dimension. the spectator was set to survival mode.
When spectating a player in another dimension, you would previously get set to survival mode, this is now fixed. - by GroupXyz (3fc985c)
19.11.2025 · 1 826 downloads
8ddd7f1)19.11.2025 · 235 downloads
8ddd7f1)18.11.2025 · 349 downloads
3f67272)18.11.2025 · 69 downloads
3f67272)18.11.2025 · 224 downloads
e1bd2ed)18.11.2025 · 55 downloads
e1bd2ed)13.11.2025 · 3 018 downloads
9b500a2)13.11.2025 · 346 downloads
9b500a2)12.11.2025 · 678 downloads
6df484b)12.11.2025 · 89 downloads
6df484b)09.11.2025 · 1 210 downloads
a46d296)09.11.2025 · 149 downloads
a46d296)09.11.2025 · 433 downloads
ba1d1db)5c71531)09.11.2025 · 76 downloads
ba1d1db)5c71531)04.11.2025 · 2 944 downloads
def2163)04.11.2025 · 397 downloads
def2163)03.11.2025 · 286 downloads
Config Romanian translation for grim ac. - by ItzBloxxy (918e657)
03.11.2025 · 50 downloads
Config Romanian translation for grim ac. - by ItzBloxxy (918e657)
03.11.2025 · 43 downloads
ea1f161)03.11.2025 · 38 downloads
ea1f161)03.11.2025 · 74 downloads
c323cf0)03.11.2025 · 28 downloads
c323cf0)03.11.2025 · 32 downloads
Who knows what other problems this could cause... - by SamB440 (0ba3317)
03.11.2025 · 33 downloads
Who knows what other problems this could cause... - by SamB440 (0ba3317)
01.11.2025 · 1 067 downloads
fc47c5b)01.11.2025 · 124 downloads
fc47c5b)01.11.2025 · 84 downloads
6280b28)17cf067)01.11.2025 · 35 downloads
6280b28)17cf067)01.11.2025 · 628 downloads
bfd2bd0)01.11.2025 · 93 downloads
bfd2bd0)31.10.2025 · 1 257 downloads
see https://fabricmc.net/2025/10/31/obfuscation.html - by ManInMyVan (b373e5f)
- Slight cleanup of fabric code - by ManInMyVan (0df77dd)
31.10.2025 · 85 downloads
see https://fabricmc.net/2025/10/31/obfuscation.html - by ManInMyVan (b373e5f)
- Slight cleanup of fabric code - by ManInMyVan (0df77dd)
31.10.2025 · 216 downloads
115c329)31.10.2025 · 205 downloads
115c329)30.10.2025 · 93 downloads
5f8692d)30.10.2025 · 156 downloads
5f8692d)28.10.2025 · 410 downloads
f8a5315)28.10.2025 · 789 downloads
f8a5315)27.10.2025 · 155 downloads
Add copper golem statue, shelf collision boxes and other missing 1.21.10 stuff (#2315)
add copper golem statue
Include ViaVersion substitution
add shelves
also add copper armor
add mannequin box sizes
Add copper golem size - by AnnotationVisitor (102b584)
27.10.2025 · 278 downloads
Add copper golem statue, shelf collision boxes and other missing 1.21.10 stuff (#2315)
add copper golem statue
Include ViaVersion substitution
add shelves
also add copper armor
add mannequin box sizes
Add copper golem size - by AnnotationVisitor (102b584)
27.10.2025 · 167 downloads
a76bf9c)27.10.2025 · 220 downloads
a76bf9c)27.10.2025 · 37 downloads
4f3e715)27.10.2025 · 39 downloads
4f3e715)26.10.2025 · 78 downloads
1b47e31)26.10.2025 · 108 downloads
1b47e31)24.10.2025 · 504 downloads
Clear active item before updating inventory on legacy (#2317)
Apply spotless
Clear active item before updating inventory on legacy - by BT (calcastor/mame) (b69906f)
24.10.2025 · 843 downloads
Clear active item before updating inventory on legacy (#2317)
Apply spotless
Clear active item before updating inventory on legacy - by BT (calcastor/mame) (b69906f)
23.10.2025 · 183 downloads
9ba4052)23.10.2025 · 303 downloads
9ba4052)21.10.2025 · 391 downloads
Optimize Messages (#2309)
Optimize MessageUtil.replacePlaceHolders()
Send user messages at packet level bypassing backend server for performance
Stash temporary changes
Make Grim send fast chat messages bypasses platform by default - by Axionize (90036e2)
21.10.2025 · 646 downloads
Optimize Messages (#2309)
Optimize MessageUtil.replacePlaceHolders()
Send user messages at packet level bypassing backend server for performance
Stash temporary changes
Make Grim send fast chat messages bypasses platform by default - by Axionize (90036e2)
21.10.2025 · 34 downloads
faf2fb3)21.10.2025 · 40 downloads
faf2fb3)20.10.2025 · 85 downloads
we're now in 1e-15 average - by cyramek (7461aca)
20.10.2025 · 99 downloads
we're now in 1e-15 average - by cyramek (7461aca)
20.10.2025 · 35 downloads
sender-not-found message - by AoElite (f381805)2fa022e)20.10.2025 · 47 downloads
sender-not-found message - by AoElite (f381805)2fa022e)20.10.2025 · 110 downloads
44900e5)20.10.2025 · 172 downloads
44900e5)19.10.2025 · 214 downloads
a2f4dc1)19.10.2025 · 329 downloads
a2f4dc1)18.10.2025 · 240 downloads
0237f95)18.10.2025 · 332 downloads
0237f95)15.10.2025 · 453 downloads
e222df8)15.10.2025 · 666 downloads
e222df8)15.10.2025 · 37 downloads
bbab7e2)15.10.2025 · 45 downloads
bbab7e2)15.10.2025 · 63 downloads
41c7e41)15.10.2025 · 99 downloads
41c7e41)14.10.2025 · 145 downloads
5551ef6)14.10.2025 · 258 downloads
5551ef6)14.10.2025 · 24 downloads
ca6e83d)14.10.2025 · 34 downloads
ca6e83d)14.10.2025 · 35 downloads
4d6ac75)14.10.2025 · 42 downloads
4d6ac75)12.10.2025 · 310 downloads
d538c59)12.10.2025 · 579 downloads
d538c59)12.10.2025 · 50 downloads
6a223a3)12.10.2025 · 62 downloads
6a223a3)12.10.2025 · 31 downloads
2e1c79b)12.10.2025 · 42 downloads
2e1c79b)12.10.2025 · 45 downloads
bb143d7)12.10.2025 · 62 downloads
bb143d7)12.10.2025 · 125 downloads
8d7a4cc)12.10.2025 · 231 downloads
8d7a4cc)12.10.2025 · 53 downloads
832194a)12.10.2025 · 89 downloads
832194a)11.10.2025 · 56 downloads
0321e0b)11.10.2025 · 95 downloads
0321e0b)11.10.2025 · 25 downloads
6385460)11.10.2025 · 23 downloads
6385460)11.10.2025 · 102 downloads
ce6e1d3)163e120)5c46021)11.10.2025 · 132 downloads
ce6e1d3)163e120)5c46021)10.10.2025 · 118 downloads
b85c65d)d7cb4aa)b4d031c)f6024a4)10.10.2025 · 225 downloads
b85c65d)d7cb4aa)b4d031c)f6024a4)10.10.2025 · 56 downloads
6e58e8c)8d3e77f)9da9c30)ed727cc)39b74b2)c7fbc4b)1b62b1d)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)
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)
- Slight cleanup (mostly weakening package-private) - by ManInMyVan (1bb95e7)
- Less messy build script - by ManInMyVan (d24726c)
- Use jetbrains nullability annotations - by ManInMyVan (7b243d3)
- Use lombok in some places - by ManInMyVan (3cf06bf)
- Remove unused class TaskWrapperHandle - by ManInMyVan (e36e619)
- Don't use Preconditions for null-checking - by ManInMyVan (ef0ea35)
- Undeprecate BukkitConversionUtils#fromBukkitFace(BlockFace) - by ManInMyVan (b102afb)
- Make VehiclePositionUpdate a record - by ManInMyVan (f9fff4e)
- Make BlockPlaceSnapshot a record - by ManInMyVan (cec4a85)
- Move bstats plugin id to a constants class - by ManInMyVan (6d3aa47)
- Deobf some methods in PredictionEngineBoat - by ManInMyVan (0c86d01)
- Use GrimMath.radians instead of manual conversion - by ManInMyVan (6a02c93)
- Make LastInstance#lastInstance private - by ManInMyVan (258d94b)
- Make FabricPermissionRegistrationManager#fabricSenderFactory private - by ManInMyVan (c0bd2dd)
- Clean up some comments and spacing - by ManInMyVan (8f437d6)
- Make MovementTickerLivingVehicle#movementInput protected - by ManInMyVan (2c0b4a2)
- Remove unnecessary parenthesis on folia scheduler tasks - by ManInMyVan (7137b36)
- Allow multiple instances of TridentItem - by ManInMyVan (c3eb0e4)
- Bump dependencies - by Axionize (513633c)
- Improve performance and cleaniness of downloading dependencies - by Axionize (a7bdc86)
- Optimize Bukkit dependency fetching - by Axionize (cccc5fd)
- Undisable fabric by accident and minor cleanup - by Axionize (d9e279a)
- Split version compute and build steps - by SamB440 (0bbf472)
- Fix silent failing on build - by SamB440 (42c6d08)
- Now fix geyser dependency - by SamB440 (9e7dabe)
- Support latest spigot in BukkitItemResetHandler - by ManInMyVan (a56e99e)
- Forgot 1.21.9/10 - by ManInMyVan (7f6b7d0)
- Rewrite BukkitItemResetHandler & add isUsingItem() & docs - by ManInMyVan (c208824)
e2cf0fa)b88dfa7)3de670e)fe1c6bf)4287f62)38ccc55)0340e07)6320fa6)8f1e993)345502b)9ea389b)c90d7ab)fefaa57)40a4c08)c10e74c)cc10288)c422173)7c5aae9)438e1ac)a239560)0374b8c)5183ad8)2bf1260)ba305cf)b0906d9)10.10.2025 · 57 downloads
6e58e8c)8d3e77f)9da9c30)ed727cc)39b74b2)c7fbc4b)1b62b1d)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)
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)
- Slight cleanup (mostly weakening package-private) - by ManInMyVan (1bb95e7)
- Less messy build script - by ManInMyVan (d24726c)
- Use jetbrains nullability annotations - by ManInMyVan (7b243d3)
- Use lombok in some places - by ManInMyVan (3cf06bf)
- Remove unused class TaskWrapperHandle - by ManInMyVan (e36e619)
- Don't use Preconditions for null-checking - by ManInMyVan (ef0ea35)
- Undeprecate BukkitConversionUtils#fromBukkitFace(BlockFace) - by ManInMyVan (b102afb)
- Make VehiclePositionUpdate a record - by ManInMyVan (f9fff4e)
- Make BlockPlaceSnapshot a record - by ManInMyVan (cec4a85)
- Move bstats plugin id to a constants class - by ManInMyVan (6d3aa47)
- Deobf some methods in PredictionEngineBoat - by ManInMyVan (0c86d01)
- Use GrimMath.radians instead of manual conversion - by ManInMyVan (6a02c93)
- Make LastInstance#lastInstance private - by ManInMyVan (258d94b)
- Make FabricPermissionRegistrationManager#fabricSenderFactory private - by ManInMyVan (c0bd2dd)
- Clean up some comments and spacing - by ManInMyVan (8f437d6)
- Make MovementTickerLivingVehicle#movementInput protected - by ManInMyVan (2c0b4a2)
- Remove unnecessary parenthesis on folia scheduler tasks - by ManInMyVan (7137b36)
- Allow multiple instances of TridentItem - by ManInMyVan (c3eb0e4)
- Bump dependencies - by Axionize (513633c)
- Improve performance and cleaniness of downloading dependencies - by Axionize (a7bdc86)
- Optimize Bukkit dependency fetching - by Axionize (cccc5fd)
- Undisable fabric by accident and minor cleanup - by Axionize (d9e279a)
- Split version compute and build steps - by SamB440 (0bbf472)
- Fix silent failing on build - by SamB440 (42c6d08)
- Now fix geyser dependency - by SamB440 (9e7dabe)
- Support latest spigot in BukkitItemResetHandler - by ManInMyVan (a56e99e)
- Forgot 1.21.9/10 - by ManInMyVan (7f6b7d0)
- Rewrite BukkitItemResetHandler & add isUsingItem() & docs - by ManInMyVan (c208824)
e2cf0fa)b88dfa7)3de670e)fe1c6bf)4287f62)38ccc55)0340e07)6320fa6)8f1e993)345502b)9ea389b)c90d7ab)fefaa57)40a4c08)c10e74c)cc10288)c422173)7c5aae9)438e1ac)a239560)0374b8c)5183ad8)2bf1260)ba305cf)b0906d9)10.10.2025 · 62 downloads
6e58e8c)8d3e77f)9da9c30)ed727cc)39b74b2)c7fbc4b)1b62b1d)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)
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)
- Slight cleanup (mostly weakening package-private) - by ManInMyVan (1bb95e7)
- Less messy build script - by ManInMyVan (d24726c)
- Use jetbrains nullability annotations - by ManInMyVan (7b243d3)
- Use lombok in some places - by ManInMyVan (3cf06bf)
- Remove unused class TaskWrapperHandle - by ManInMyVan (e36e619)
- Don't use Preconditions for null-checking - by ManInMyVan (ef0ea35)
- Undeprecate BukkitConversionUtils#fromBukkitFace(BlockFace) - by ManInMyVan (b102afb)
- Make VehiclePositionUpdate a record - by ManInMyVan (f9fff4e)
- Make BlockPlaceSnapshot a record - by ManInMyVan (cec4a85)
- Move bstats plugin id to a constants class - by ManInMyVan (6d3aa47)
- Deobf some methods in PredictionEngineBoat - by ManInMyVan (0c86d01)
- Use GrimMath.radians instead of manual conversion - by ManInMyVan (6a02c93)
- Make LastInstance#lastInstance private - by ManInMyVan (258d94b)
- Make FabricPermissionRegistrationManager#fabricSenderFactory private - by ManInMyVan (c0bd2dd)
- Clean up some comments and spacing - by ManInMyVan (8f437d6)
- Make MovementTickerLivingVehicle#movementInput protected - by ManInMyVan (2c0b4a2)
- Remove unnecessary parenthesis on folia scheduler tasks - by ManInMyVan (7137b36)
- Allow multiple instances of TridentItem - by ManInMyVan (c3eb0e4)
- Bump dependencies - by Axionize (513633c)
- Improve performance and cleaniness of downloading dependencies - by Axionize (a7bdc86)
- Optimize Bukkit dependency fetching - by Axionize (cccc5fd)
- Undisable fabric by accident and minor cleanup - by Axionize (d9e279a)
- Split version compute and build steps - by SamB440 (0bbf472)
- Fix silent failing on build - by SamB440 (42c6d08)
- Now fix geyser dependency - by SamB440 (9e7dabe)
- Support latest spigot in BukkitItemResetHandler - by ManInMyVan (a56e99e)
- Forgot 1.21.9/10 - by ManInMyVan (7f6b7d0)
9ab2f2e)e2cf0fa)b88dfa7)3de670e)fe1c6bf)4287f62)38ccc55)0340e07)6320fa6)8f1e993)345502b)9ea389b)c90d7ab)fefaa57)40a4c08)c10e74c)cc10288)c422173)7c5aae9)438e1ac)a239560)0374b8c)5183ad8)2bf1260)ba305cf)b0906d9)10.10.2025 · 100 downloads
6e58e8c)8d3e77f)9da9c30)ed727cc)39b74b2)c7fbc4b)1b62b1d)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)
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)
- Slight cleanup (mostly weakening package-private) - by ManInMyVan (1bb95e7)
- Less messy build script - by ManInMyVan (d24726c)
- Use jetbrains nullability annotations - by ManInMyVan (7b243d3)
- Use lombok in some places - by ManInMyVan (3cf06bf)
- Remove unused class TaskWrapperHandle - by ManInMyVan (e36e619)
- Don't use Preconditions for null-checking - by ManInMyVan (ef0ea35)
- Undeprecate BukkitConversionUtils#fromBukkitFace(BlockFace) - by ManInMyVan (b102afb)
- Make VehiclePositionUpdate a record - by ManInMyVan (f9fff4e)
- Make BlockPlaceSnapshot a record - by ManInMyVan (cec4a85)
- Move bstats plugin id to a constants class - by ManInMyVan (6d3aa47)
- Deobf some methods in PredictionEngineBoat - by ManInMyVan (0c86d01)
- Use GrimMath.radians instead of manual conversion - by ManInMyVan (6a02c93)
- Make LastInstance#lastInstance private - by ManInMyVan (258d94b)
- Make FabricPermissionRegistrationManager#fabricSenderFactory private - by ManInMyVan (c0bd2dd)
- Clean up some comments and spacing - by ManInMyVan (8f437d6)
- Make MovementTickerLivingVehicle#movementInput protected - by ManInMyVan (2c0b4a2)
- Remove unnecessary parenthesis on folia scheduler tasks - by ManInMyVan (7137b36)
- Allow multiple instances of TridentItem - by ManInMyVan (c3eb0e4)
- Bump dependencies - by Axionize (513633c)
- Improve performance and cleaniness of downloading dependencies - by Axionize (a7bdc86)
- Optimize Bukkit dependency fetching - by Axionize (cccc5fd)
- Undisable fabric by accident and minor cleanup - by Axionize (d9e279a)
- Split version compute and build steps - by SamB440 (0bbf472)
- Fix silent failing on build - by SamB440 (42c6d08)
- Now fix geyser dependency - by SamB440 (9e7dabe)
- Support latest spigot in BukkitItemResetHandler - by ManInMyVan (a56e99e)
- Forgot 1.21.9/10 - by ManInMyVan (7f6b7d0)
9ab2f2e)e2cf0fa)b88dfa7)3de670e)fe1c6bf)4287f62)38ccc55)0340e07)6320fa6)8f1e993)345502b)9ea389b)c90d7ab)fefaa57)40a4c08)c10e74c)cc10288)c422173)7c5aae9)438e1ac)a239560)0374b8c)5183ad8)2bf1260)ba305cf)b0906d9)10.10.2025 · 29 downloads
4942401)6e58e8c)8d3e77f)9da9c30)ed727cc)39b74b2)c7fbc4b)1b62b1d)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)
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)
- Slight cleanup (mostly weakening package-private) - by ManInMyVan (1bb95e7)
- Less messy build script - by ManInMyVan (d24726c)
- Use jetbrains nullability annotations - by ManInMyVan (7b243d3)
- Use lombok in some places - by ManInMyVan (3cf06bf)
- Remove unused class TaskWrapperHandle - by ManInMyVan (e36e619)
- Don't use Preconditions for null-checking - by ManInMyVan (ef0ea35)
- Undeprecate BukkitConversionUtils#fromBukkitFace(BlockFace) - by ManInMyVan (b102afb)
- Make VehiclePositionUpdate a record - by ManInMyVan (f9fff4e)
- Make BlockPlaceSnapshot a record - by ManInMyVan (cec4a85)
- Move bstats plugin id to a constants class - by ManInMyVan (6d3aa47)
- Deobf some methods in PredictionEngineBoat - by ManInMyVan (0c86d01)
- Use GrimMath.radians instead of manual conversion - by ManInMyVan (6a02c93)
- Make LastInstance#lastInstance private - by ManInMyVan (258d94b)
- Make FabricPermissionRegistrationManager#fabricSenderFactory private - by ManInMyVan (c0bd2dd)
- Clean up some comments and spacing - by ManInMyVan (8f437d6)
- Make MovementTickerLivingVehicle#movementInput protected - by ManInMyVan (2c0b4a2)
- Remove unnecessary parenthesis on folia scheduler tasks - by ManInMyVan (7137b36)
- Allow multiple instances of TridentItem - by ManInMyVan (c3eb0e4)
- Bump dependencies - by Axionize (513633c)
- Improve performance and cleaniness of downloading dependencies - by Axionize (a7bdc86)
- Optimize Bukkit dependency fetching - by Axionize (cccc5fd)
- Undisable fabric by accident and minor cleanup - by Axionize (d9e279a)
- Split version compute and build steps - by SamB440 (0bbf472)
- Fix silent failing on build - by SamB440 (42c6d08)
- Now fix geyser dependency - by SamB440 (9e7dabe)
- Support latest spigot in BukkitItemResetHandler - by ManInMyVan (a56e99e)
9ab2f2e)e2cf0fa)b88dfa7)3de670e)fe1c6bf)4287f62)38ccc55)0340e07)6320fa6)8f1e993)345502b)9ea389b)c90d7ab)fefaa57)40a4c08)c10e74c)cc10288)c422173)7c5aae9)438e1ac)a239560)0374b8c)5183ad8)2bf1260)ba305cf)b0906d9)10.10.2025 · 33 downloads
4942401)6e58e8c)8d3e77f)9da9c30)ed727cc)39b74b2)c7fbc4b)1b62b1d)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)
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)
- Slight cleanup (mostly weakening package-private) - by ManInMyVan (1bb95e7)
- Less messy build script - by ManInMyVan (d24726c)
- Use jetbrains nullability annotations - by ManInMyVan (7b243d3)
- Use lombok in some places - by ManInMyVan (3cf06bf)
- Remove unused class TaskWrapperHandle - by ManInMyVan (e36e619)
- Don't use Preconditions for null-checking - by ManInMyVan (ef0ea35)
- Undeprecate BukkitConversionUtils#fromBukkitFace(BlockFace) - by ManInMyVan (b102afb)
- Make VehiclePositionUpdate a record - by ManInMyVan (f9fff4e)
- Make BlockPlaceSnapshot a record - by ManInMyVan (cec4a85)
- Move bstats plugin id to a constants class - by ManInMyVan (6d3aa47)
- Deobf some methods in PredictionEngineBoat - by ManInMyVan (0c86d01)
- Use GrimMath.radians instead of manual conversion - by ManInMyVan (6a02c93)
- Make LastInstance#lastInstance private - by ManInMyVan (258d94b)
- Make FabricPermissionRegistrationManager#fabricSenderFactory private - by ManInMyVan (c0bd2dd)
- Clean up some comments and spacing - by ManInMyVan (8f437d6)
- Make MovementTickerLivingVehicle#movementInput protected - by ManInMyVan (2c0b4a2)
- Remove unnecessary parenthesis on folia scheduler tasks - by ManInMyVan (7137b36)
- Allow multiple instances of TridentItem - by ManInMyVan (c3eb0e4)
- Bump dependencies - by Axionize (513633c)
- Improve performance and cleaniness of downloading dependencies - by Axionize (a7bdc86)
- Optimize Bukkit dependency fetching - by Axionize (cccc5fd)
- Undisable fabric by accident and minor cleanup - by Axionize (d9e279a)
- Split version compute and build steps - by SamB440 (0bbf472)
- Fix silent failing on build - by SamB440 (42c6d08)
- Now fix geyser dependency - by SamB440 (9e7dabe)
- Support latest spigot in BukkitItemResetHandler - by ManInMyVan (a56e99e)
9ab2f2e)e2cf0fa)b88dfa7)3de670e)fe1c6bf)4287f62)38ccc55)0340e07)6320fa6)8f1e993)345502b)9ea389b)c90d7ab)fefaa57)40a4c08)c10e74c)cc10288)c422173)7c5aae9)438e1ac)a239560)0374b8c)5183ad8)2bf1260)ba305cf)b0906d9)10.10.2025 · 30 downloads
6e28434)4942401)6e58e8c)8d3e77f)9da9c30)ed727cc)39b74b2)c7fbc4b)1b62b1d)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)
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)
- Slight cleanup (mostly weakening package-private) - by ManInMyVan (1bb95e7)
- Less messy build script - by ManInMyVan (d24726c)
- Use jetbrains nullability annotations - by ManInMyVan (7b243d3)
- Use lombok in some places - by ManInMyVan (3cf06bf)
- Remove unused class TaskWrapperHandle - by ManInMyVan (e36e619)
- Don't use Preconditions for null-checking - by ManInMyVan (ef0ea35)
- Undeprecate BukkitConversionUtils#fromBukkitFace(BlockFace) - by ManInMyVan (b102afb)
- Make VehiclePositionUpdate a record - by ManInMyVan (f9fff4e)
- Make BlockPlaceSnapshot a record - by ManInMyVan (cec4a85)
- Move bstats plugin id to a constants class - by ManInMyVan (6d3aa47)
- Deobf some methods in PredictionEngineBoat - by ManInMyVan (0c86d01)
- Use GrimMath.radians instead of manual conversion - by ManInMyVan (6a02c93)
- Make LastInstance#lastInstance private - by ManInMyVan (258d94b)
- Make FabricPermissionRegistrationManager#fabricSenderFactory private - by ManInMyVan (c0bd2dd)
- Clean up some comments and spacing - by ManInMyVan (8f437d6)
- Make MovementTickerLivingVehicle#movementInput protected - by ManInMyVan (2c0b4a2)
- Remove unnecessary parenthesis on folia scheduler tasks - by ManInMyVan (7137b36)
- Allow multiple instances of TridentItem - by ManInMyVan (c3eb0e4)
- Bump dependencies - by Axionize (513633c)
- Improve performance and cleaniness of downloading dependencies - by Axionize (a7bdc86)
- Optimize Bukkit dependency fetching - by Axionize (cccc5fd)
- Undisable fabric by accident and minor cleanup - by Axionize (d9e279a)
- Split version compute and build steps - by SamB440 (0bbf472)
- Fix silent failing on build - by SamB440 (42c6d08)
- Now fix geyser dependency - by SamB440 (9e7dabe)
9ab2f2e)e2cf0fa)b88dfa7)3de670e)fe1c6bf)4287f62)38ccc55)0340e07)6320fa6)8f1e993)345502b)9ea389b)c90d7ab)fefaa57)40a4c08)c10e74c)cc10288)c422173)7c5aae9)438e1ac)a239560)0374b8c)5183ad8)2bf1260)ba305cf)b0906d9)10.10.2025 · 49 downloads
6e28434)4942401)6e58e8c)8d3e77f)9da9c30)ed727cc)39b74b2)c7fbc4b)1b62b1d)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)
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)
- Slight cleanup (mostly weakening package-private) - by ManInMyVan (1bb95e7)
- Less messy build script - by ManInMyVan (d24726c)
- Use jetbrains nullability annotations - by ManInMyVan (7b243d3)
- Use lombok in some places - by ManInMyVan (3cf06bf)
- Remove unused class TaskWrapperHandle - by ManInMyVan (e36e619)
- Don't use Preconditions for null-checking - by ManInMyVan (ef0ea35)
- Undeprecate BukkitConversionUtils#fromBukkitFace(BlockFace) - by ManInMyVan (b102afb)
- Make VehiclePositionUpdate a record - by ManInMyVan (f9fff4e)
- Make BlockPlaceSnapshot a record - by ManInMyVan (cec4a85)
- Move bstats plugin id to a constants class - by ManInMyVan (6d3aa47)
- Deobf some methods in PredictionEngineBoat - by ManInMyVan (0c86d01)
- Use GrimMath.radians instead of manual conversion - by ManInMyVan (6a02c93)
- Make LastInstance#lastInstance private - by ManInMyVan (258d94b)
- Make FabricPermissionRegistrationManager#fabricSenderFactory private - by ManInMyVan (c0bd2dd)
- Clean up some comments and spacing - by ManInMyVan (8f437d6)
- Make MovementTickerLivingVehicle#movementInput protected - by ManInMyVan (2c0b4a2)
- Remove unnecessary parenthesis on folia scheduler tasks - by ManInMyVan (7137b36)
- Allow multiple instances of TridentItem - by ManInMyVan (c3eb0e4)
- Bump dependencies - by Axionize (513633c)
- Improve performance and cleaniness of downloading dependencies - by Axionize (a7bdc86)
- Optimize Bukkit dependency fetching - by Axionize (cccc5fd)
- Undisable fabric by accident and minor cleanup - by Axionize (d9e279a)
- Split version compute and build steps - by SamB440 (0bbf472)
- Fix silent failing on build - by SamB440 (42c6d08)
- Now fix geyser dependency - by SamB440 (9e7dabe)
9ab2f2e)e2cf0fa)b88dfa7)3de670e)fe1c6bf)4287f62)38ccc55)0340e07)6320fa6)8f1e993)345502b)9ea389b)c90d7ab)fefaa57)40a4c08)c10e74c)cc10288)c422173)7c5aae9)438e1ac)a239560)0374b8c)5183ad8)2bf1260)ba305cf)b0906d9)09.10.2025 · 140 downloads
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)
2e9b086)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)
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)
- Slight cleanup (mostly weakening package-private) - by ManInMyVan (1bb95e7)
- Less messy build script - by ManInMyVan (d24726c)
- Use jetbrains nullability annotations - by ManInMyVan (7b243d3)
- Use lombok in some places - by ManInMyVan (3cf06bf)
- Remove unused class TaskWrapperHandle - by ManInMyVan (e36e619)
- Don't use Preconditions for null-checking - by ManInMyVan (ef0ea35)
- Undeprecate BukkitConversionUtils#fromBukkitFace(BlockFace) - by ManInMyVan (b102afb)
- Make VehiclePositionUpdate a record - by ManInMyVan (f9fff4e)
- Make BlockPlaceSnapshot a record - by ManInMyVan (cec4a85)
- Move bstats plugin id to a constants class - by ManInMyVan (6d3aa47)
- Deobf some methods in PredictionEngineBoat - by ManInMyVan (0c86d01)
- Use GrimMath.radians instead of manual conversion - by ManInMyVan (6a02c93)
- Make LastInstance#lastInstance private - by ManInMyVan (258d94b)
- Make FabricPermissionRegistrationManager#fabricSenderFactory private - by ManInMyVan (c0bd2dd)
- Clean up some comments and spacing - by ManInMyVan (8f437d6)
- Make MovementTickerLivingVehicle#movementInput protected - by ManInMyVan (2c0b4a2)
- Remove unnecessary parenthesis on folia scheduler tasks - by ManInMyVan (7137b36)
- Allow multiple instances of TridentItem - by ManInMyVan (c3eb0e4)
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: 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)
- Fix build - by ManInMyVan (438e1ac)
a239560)0374b8c)5183ad8)2bf1260)ba305cf)b0906d9)09.10.2025 · 780 downloads
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)
2e9b086)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)
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)
- Slight cleanup (mostly weakening package-private) - by ManInMyVan (1bb95e7)
- Less messy build script - by ManInMyVan (d24726c)
- Use jetbrains nullability annotations - by ManInMyVan (7b243d3)
- Use lombok in some places - by ManInMyVan (3cf06bf)
- Remove unused class TaskWrapperHandle - by ManInMyVan (e36e619)
- Don't use Preconditions for null-checking - by ManInMyVan (ef0ea35)
- Undeprecate BukkitConversionUtils#fromBukkitFace(BlockFace) - by ManInMyVan (b102afb)
- Make VehiclePositionUpdate a record - by ManInMyVan (f9fff4e)
- Make BlockPlaceSnapshot a record - by ManInMyVan (cec4a85)
- Move bstats plugin id to a constants class - by ManInMyVan (6d3aa47)
- Deobf some methods in PredictionEngineBoat - by ManInMyVan (0c86d01)
- Use GrimMath.radians instead of manual conversion - by ManInMyVan (6a02c93)
- Make LastInstance#lastInstance private - by ManInMyVan (258d94b)
- Make FabricPermissionRegistrationManager#fabricSenderFactory private - by ManInMyVan (c0bd2dd)
- Clean up some comments and spacing - by ManInMyVan (8f437d6)
- Make MovementTickerLivingVehicle#movementInput protected - by ManInMyVan (2c0b4a2)
- Remove unnecessary parenthesis on folia scheduler tasks - by ManInMyVan (7137b36)
- Allow multiple instances of TridentItem - by ManInMyVan (c3eb0e4)
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: 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)
- Fix build - by ManInMyVan (438e1ac)
a239560)0374b8c)5183ad8)2bf1260)ba305cf)b0906d9)09.10.2025 · 57 downloads
38a2ea4)b563792)5fb8cd9)0844fc6)d1b0f4d)135c90c)b4714b0)4992cf6)df31a39)4b53457)1a6b6fc)8a2ca76)ba18d4c)3b76ded)0ccd03a)e16979b)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)
2e9b086)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)
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)
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)
2518ced)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: 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)
a239560)0374b8c)5183ad8)2bf1260)ba305cf)b0906d9)09.10.2025 · 69 downloads
38a2ea4)b563792)5fb8cd9)0844fc6)d1b0f4d)135c90c)b4714b0)4992cf6)df31a39)4b53457)1a6b6fc)8a2ca76)ba18d4c)3b76ded)0ccd03a)e16979b)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)
2e9b086)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)
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)
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)
2518ced)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: 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)
a239560)0374b8c)5183ad8)2bf1260)ba305cf)b0906d9)09.10.2025 · 64 downloads
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)
2e9b086)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)
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 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)
2518ced)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: 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)
a239560)0374b8c)5183ad8)2bf1260)ba305cf)b0906d9)09.10.2025 · 110 downloads
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)
2e9b086)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)
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 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)
2518ced)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: 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)
a239560)0374b8c)5183ad8)2bf1260)ba305cf)b0906d9)08.10.2025 · 265 downloads
d657aec)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)
2e9b086)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)
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)
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)
2518ced)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: 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)
a239560)0374b8c)5183ad8)2bf1260)ba305cf)b0906d9)08.10.2025 · 519 downloads
d657aec)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)
2e9b086)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)
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)
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)
2518ced)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: 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)
a239560)0374b8c)5183ad8)2bf1260)ba305cf)b0906d9)07.10.2025 · 69 downloads
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)
2e9b086)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)
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)
bb7ba08)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)
2518ced)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: 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)
a239560)0374b8c)5183ad8)2bf1260)ba305cf)b0906d9)07.10.2025 · 119 downloads
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)
2e9b086)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)
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)
bb7ba08)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)
2518ced)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: 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)
a239560)0374b8c)5183ad8)2bf1260)ba305cf)b0906d9)07.10.2025 · 37 downloads
d657aec)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)
2e9b086)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)
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)
bb7ba08)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)
2518ced)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: 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)
a239560)0374b8c)5183ad8)2bf1260)ba305cf)b0906d9)07.10.2025 · 25 downloads
d657aec)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)
2e9b086)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)
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)
bb7ba08)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)
2518ced)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: 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)
a239560)0374b8c)5183ad8)2bf1260)ba305cf)b0906d9)06.10.2025 · 298 downloads
3c56235)d2913b3)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)
2e9b086)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)
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)
d59a9fa)b8e70b8)fec8806)c4a18a5)bb7ba08)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)
2518ced)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: 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)
a239560)0374b8c)5183ad8)2bf1260)ba305cf)b0906d9)06.10.2025 · 496 downloads
3c56235)d2913b3)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)
2e9b086)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)
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)
d59a9fa)b8e70b8)fec8806)c4a18a5)bb7ba08)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)
2518ced)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: 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)
a239560)0374b8c)5183ad8)2bf1260)ba305cf)b0906d9)05.10.2025 · 123 downloads
1bfef2e)3c56235)d2913b3)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)
2e9b086)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)
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)
9a22a28)d59a9fa)b8e70b8)fec8806)c4a18a5)bb7ba08)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)
2518ced)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: 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)
a239560)0374b8c)5183ad8)2bf1260)ba305cf)b0906d9)05.10.2025 · 165 downloads
1bfef2e)3c56235)d2913b3)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)
2e9b086)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)
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)
9a22a28)d59a9fa)b8e70b8)fec8806)c4a18a5)bb7ba08)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)
2518ced)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: 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)
a239560)0374b8c)5183ad8)2bf1260)ba305cf)b0906d9)04.10.2025 · 262 downloads
c30be94)1bfef2e)3c56235)d2913b3)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)
2e9b086)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)
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)
9a22a28)d59a9fa)b8e70b8)fec8806)c4a18a5)bb7ba08)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)
2518ced)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: 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)
a239560)0374b8c)5183ad8)2bf1260)ba305cf)b0906d9)04.10.2025 · 300 downloads
c30be94)1bfef2e)3c56235)d2913b3)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)
2e9b086)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)
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)
9a22a28)d59a9fa)b8e70b8)fec8806)c4a18a5)bb7ba08)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)
2518ced)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: 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)
a239560)0374b8c)5183ad8)2bf1260)ba305cf)b0906d9)03.10.2025 · 3 625 downloads
This 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
PacketOrder Checks: Introduced a comprehensive suite of PacketOrder checks to detect various packet manipulation cheats and inconsistencies that were not previously covered. (by @ManInMyVan in #1678)/grim history Command: Added a new command to view a player's historical alerts directly in-game, with support for different database backends. (by @Axionize in #2201)1.21.8, including new movement simulation for "Happy Ghast" blocks and updated sneaking behavior. (by @Cyramek in #2079)hasSaddle logic for entities. (by @Cyramek in #2179)getBlockAt) on older Bukkit versions. (by @Cyramek in #2122)NullPointerExceptions in BadPacketsH during respawn and in block placement checks. (by @Bram1903 in #2106, @Ayouuuu in #2215)ClassCastException when getting a player's keep-alive ping. (by @Souipi in #2143)9.0.0-rc2 and updated various other dependencies like Adventure and Cloud. (by @Goooler in #2229)Full Changelog: https://github.com/GrimAnticheat/Grim/compare/v2.3.71...v2.3.72
03.10.2025 · 37 033 downloads
This 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
PacketOrder Checks: Introduced a comprehensive suite of PacketOrder checks to detect various packet manipulation cheats and inconsistencies that were not previously covered. (by @ManInMyVan in #1678)/grim history Command: Added a new command to view a player's historical alerts directly in-game, with support for different database backends. (by @Axionize in #2201)1.21.8, including new movement simulation for "Happy Ghast" blocks and updated sneaking behavior. (by @Cyramek in #2079)hasSaddle logic for entities. (by @Cyramek in #2179)getBlockAt) on older Bukkit versions. (by @Cyramek in #2122)NullPointerExceptions in BadPacketsH during respawn and in block placement checks. (by @Bram1903 in #2106, @Ayouuuu in #2215)ClassCastException when getting a player's keep-alive ping. (by @Souipi in #2143)9.0.0-rc2 and updated various other dependencies like Adventure and Cloud. (by @Goooler in #2229)Full Changelog: https://github.com/GrimAnticheat/Grim/compare/v2.3.71...v2.3.72
03.10.2025 · 40 downloads
0f54849)c30be94)1bfef2e)3c56235)d2913b3)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)
2e9b086)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)
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)
1ab7f9f)9a22a28)d59a9fa)b8e70b8)fec8806)c4a18a5)bb7ba08)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)
2518ced)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: 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)
a239560)0374b8c)5183ad8)2bf1260)ba305cf)b0906d9)03.10.2025 · 57 downloads
0f54849)c30be94)1bfef2e)3c56235)d2913b3)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)
2e9b086)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)
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)
1ab7f9f)9a22a28)d59a9fa)b8e70b8)fec8806)c4a18a5)bb7ba08)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)
2518ced)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: 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)
a239560)0374b8c)5183ad8)2bf1260)ba305cf)b0906d9)01.10.2025 · 350 downloads
3ac26d0)01.10.2025 · 847 downloads
3ac26d0)30.09.2025 · 86 downloads
cc10288)30.09.2025 · 170 downloads
cc10288)30.09.2025 · 192 downloads
c10e74c)30.09.2025 · 402 downloads
c10e74c)28.09.2025 · 293 downloads
28.09.2025 · 518 downloads
18.09.2025 · 1 655 downloads
293f6ea)18.09.2025 · 4 327 downloads
293f6ea)16.09.2025 · 383 downloads
184050b)16.09.2025 · 741 downloads
184050b)09.09.2025 · 1 187 downloads
57a9f8f)09.09.2025 · 2 198 downloads
57a9f8f)07.09.2025 · 209 downloads
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)
07.09.2025 · 411 downloads
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)
05.09.2025 · 500 downloads
f739b1e)05.09.2025 · 869 downloads
f739b1e)05.09.2025 · 166 downloads
a8693c3)070116b)05.09.2025 · 276 downloads
a8693c3)070116b)04.09.2025 · 111 downloads
0586ea5)04.09.2025 · 195 downloads
0586ea5)04.09.2025 · 94 downloads
bd4cd31)04.09.2025 · 194 downloads
bd4cd31)03.09.2025 · 62 downloads
3f17557)ea5ed06)42d247b)e26cf0f)64ebdf2)2b03755)9f4c321)4e1320f)dc03060)0bf3a21)03.09.2025 · 96 downloads
3f17557)ea5ed06)42d247b)e26cf0f)64ebdf2)2b03755)9f4c321)4e1320f)dc03060)0bf3a21)02.09.2025 · 236 downloads
a7f8c77)d71239b)aab6908)b37393c)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)
345502b)9ea389b)02.09.2025 · 388 downloads
a7f8c77)d71239b)aab6908)b37393c)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)
345502b)9ea389b)02.09.2025 · 35 downloads
ff9af98)02.09.2025 · 76 downloads
ff9af98)31.08.2025 · 465 downloads
090d1a8)4702add)dbac8bc)31.08.2025 · 824 downloads
090d1a8)4702add)dbac8bc)31.08.2025 · 116 downloads
8f1e993)31.08.2025 · 238 downloads
8f1e993)28.08.2025 · 542 downloads
17a8d3b)28.08.2025 · 909 downloads
17a8d3b)28.08.2025 · 188 downloads
also move it before PreViaCheckManagerListener - by ManInMyVan (97c1bdd)
- Remove unused imports in ChatA/B - by ManInMyVan (1c46546)
28.08.2025 · 382 downloads
also move it before PreViaCheckManagerListener - by ManInMyVan (97c1bdd)
- Remove unused imports in ChatA/B - by ManInMyVan (1c46546)
23.08.2025 · 993 downloads
b997b6b)23.08.2025 · 1 689 downloads
b997b6b)16.08.2025 · 1 218 downloads
28d8320)16.08.2025 · 2 159 downloads
28d8320)16.08.2025 · 60 downloads
6320fa6)16.08.2025 · 102 downloads
6320fa6)16.08.2025 · 44 downloads
0340e07)16.08.2025 · 67 downloads
0340e07)16.08.2025 · 78 downloads
fd59498)16.08.2025 · 140 downloads
fd59498)16.08.2025 · 151 downloads
c0b96ea)16.08.2025 · 251 downloads
c0b96ea)14.08.2025 · 301 downloads
03e1514)a953f50)0dec743)38ccc55)14.08.2025 · 485 downloads
03e1514)a953f50)0dec743)38ccc55)14.08.2025 · 69 downloads
8cb4189)5761896)14.08.2025 · 175 downloads
8cb4189)5761896)13.08.2025 · 413 downloads
94813c0)13.08.2025 · 718 downloads
94813c0)11.08.2025 · 302 downloads
b0906d9)11.08.2025 · 553 downloads
b0906d9)11.08.2025 · 56 downloads
6ce610e)11.08.2025 · 74 downloads
6ce610e)11.08.2025 · 38 downloads
be120f0)0a4a6cd)6787d1b)d2df1b7)7376468)e433652)796a573)380e3d9)376e7a9)1ba072f)a3108c7)'ba305cf)11.08.2025 · 59 downloads
be120f0)0a4a6cd)6787d1b)d2df1b7)7376468)e433652)796a573)380e3d9)376e7a9)1ba072f)a3108c7)'ba305cf)11.08.2025 · 45 downloads
2bf1260)11.08.2025 · 66 downloads
2bf1260)11.08.2025 · 198 downloads
2e625e2)11.08.2025 · 314 downloads
2e625e2)11.08.2025 · 75 downloads
647b13c)b5c14f4)4287f62)11.08.2025 · 150 downloads
647b13c)b5c14f4)4287f62)11.08.2025 · 49 downloads
a695dac)a9a2034)cd8d78d)11.08.2025 · 80 downloads
a695dac)a9a2034)cd8d78d)09.08.2025 · 462 downloads
09.08.2025 · 696 downloads
17.04.2025 · 47 941 downloads
This update does NOT add support for 1.21.5. The changes in 1.21.5 are complex and we do not recommend allowing 1.21.5 players on your server at this time.
Grim is going multi-platform! The platform-independence branch will soon be merged, adding support for Fabric.
check-for-updates (SamB440)01.02.2025 · 11 262 downloads
Want to help out? Maybe one of these issues will interest you!
- https://github.com/GrimAnticheat/Grim/issues/1885
- https://github.com/GrimAnticheat/Grim/issues/1962
30.01.2025 · 1 008 downloads
See commits since version bump for changelog: https://github.com/GrimAnticheat/Grim/commits/2.0/
Want to help out? Maybe one of these issues will interest you!
- https://github.com/GrimAnticheat/Grim/issues/1885
- https://github.com/GrimAnticheat/Grim/issues/1962
17.12.2024 · 2 962 downloads
Warning! Grim NOW REQUIRES Java 17+. See https://github.com/GrimAnticheat/Grim/wiki/Updating-to-Java-17 for more information.
Notably with this update comes with support for 1.21.2+ clients, where Mojang has thankfully added a new END_TICK packet. This means Grim can now be as accurate with 1.21.2+ clients as it is with 1.8 clients, particularly for reach checks. Mojang also added a PLAYER_INPUT packet, which tells us the inputs of the player. This will allow a significant performance boost.
Known issues:
- If you are using an older server version then we currently cannot listen to these to these new packets from 1.21.2+ clients due to ViaVersion blocking them.
- If you use ViaBackwards on a 1.21.2+ server, this will cause issues for older clients in vehicles. A fix for both of these issues, by bypassing ViaVersion with a PacketEvents fork, is being worked on.
Changes:
- Added support for camel simulation (SamB440)
- Added MiniMessage and PlaceHolderAPI Support (ManInMyVan)
- Use an identity hash set for synced tags (SamB440)
- Improved punishment manager performance (AoElite)
- Don't let setbacks bypass stuck speed (SamB440)
- Fixed timer ping-abuse-limit-threshold, patching some timer balance abuse hacks (SamB440)
- Readded and fixed BadPacketsG (SamB440)
- Fixed riptide falses when colliding with teamed entities (Axionize)
- Fixed offground precision loss to make us consistent 1E-15 offset (SamB440)
- Added support for 1.21.3+ clients and servers (SamB440)
- Patched a Paper dupe for outdated servers (ManInMyVan)
- Fixed wrongly ported Reach changes (Cyramek)
- Use movementThreshold() instead of 0.03 where appropiate (Axionize)
- Warn servers that want extra reach accuracy that they need to add -Dpaper.explicit-flush=true (Axionize)
- Fixed reading world asynchronously on Folia (Rothes)
- Optimised MenuType#getMenuType (MachineBreaker)
- Use FastUtil collections where possible (MachineBreaker)
- Updated to Java 17 (SamB440)
- Fixed shields breaking causing NoSlow falses (ManInMyVan)
- Limited when 1.9+ players can increase attack slow (SamB440)
- Lava and water are now filtered out of FINISHED_DIGGING (SamB440)
- Color codes are now stripped from client brand (jonesdevelopment)
- Allowed exempting elytras in a hidden config option (ManInMyVan)
- Packets are no longer re-encoded by default (AoElite)
- Reduced Optional allocations with attribute methods (SamB440)
- Readded and fixed AimModulo360 (SamB440)
- Having fix-1_21-placement-rotation enabled in the ViaVersion will now print an error on startup due to incompatibility (Cyramek)
- Fix incorrect casting to float before clamping attribute values (Axionize)
- max-transaction-time option is now clamped between 1 and 180 to prevent issues (SamB440)
- Optimised getPossibleEyeHeights (Axionize)
- Added MultiInteract checks (ManInMyVan)
- NegativeTimer can now be configured to setback (ManInMyVan)
- Added MultiPlace check (ManInMyVan)
- Reworked all collision boxes and hitboxes to improve performance and fix falses (Axionize)
- Added Japanese translation (K-Lqrs)
- Fixed a FastBreak false when mining vines with a sword (ManInMyVan)
- Fixed some falses with BadPacketsX & Z (ManInMyVan)
12.09.2024 · 2 758 downloads
Warning: Grim will soon require Java 17+. See https://github.com/GrimAnticheat/Grim/wiki/Updating-to-Java-17 for more information.
20.08.2024 · 1 153 downloads
Warning: Grim will soon require Java 17+. See https://github.com/GrimAnticheat/Grim/wiki/Updating-to-Java-17 for more information.
max-ping-firework-boost can now be disabled with -1