
Lightning Grim Anticheat
Anticheat Perfected | 3.0005 reach | 99.999% antikb. Fork of GrimAC that's faster, with better reach checks, interact checks, and numerous bug fixes.
Обновлён 27 июня 2026 г. · опубликован 3 октября 2024 г.
Lightning Grim Anticheat
This project is a fork of GrimAC implementing substantial performance improvements and superiour reach, block placement, and interact checks. If you would like a bugfix or enhancement and cannot sponsor the work, pull requests are welcome.
GrimAC is an open source Minecraft anticheat designed for 1.21.5 and supports 1.8-1.21.5. It can run on 1.8-1.21.5 and fully supports players connecting through ViaVersion on 1.7-1.21.x no matter the native server version. Geyser players are fully exempt.
Current changes that upstream does not have (includes but is not limited to)
- WallHit - checks for hitting through walls
- EntityPierce - checks for hitting through other entities
- Bukkit Event Piston Optimizations
- Optimized Hitbox/Collision Boxes
- Optimized Reach calculations
- Checks for PacketOrder (patches lots of noslow, autoblocks, etc...)
- Checks for Inventory interactions (prevents using crafting slots as extra storage, moving while having inventory open, etc...)
LineOfSightPlace - checks if blocks placements/container interactions were within line of sight of player. Stops placing blocks and opening chests through walls or in directions players aren't looking at.
Compiling through terminal/command prompt
- git clone https://github.com/Axionize/LightningGrim (or click the green code button, download ZIP, then unzip it.)
- cd LightningGrim
- gradlew build
- The final jar is located in build/libs
API Information
Grim's API allows you to integrate Grim into your own plugins. For more information, check out the API's GitHub repository here.
Grim supremacy
Here are the main cores that make Grim stand out against other anticheats
Movement Simulation Engine
- We have a 1:1 replication of the player's possible movements
- This covers everything from basic walking, swimming, knockback, cobwebs, to bubble columns
- It even covers riding entities from boats to pigs to striders
- Built upon covering edge cases to confirm accuracy
- 1.13+ clients on 1.13+ servers, 1.12- clients on 1.13+ servers, 1.13+ clients on 1.12- servers, and 1.12- clients on 1.12- servers are all supported regardless of the large technical changes between these versions.
- The order of collisions depends on the client version and is correct
- Accounts for minor bounding box differences between versions, for example:
- Single glass panes will be a + shape for 1.7-1.8 players and * for 1.9+ players
- 1.13+ clients on 1.8 servers see the + glass pane hitbox due to ViaVersion
- Many other blocks have this extreme attention to detail.
- Waterlogged blocks do not exist for 1.12 or below players
- Blocks that do not exist in the client's version use ViaVersion's replacement block
- Block data that cannot be translated to previous versions is replaced correctly
- All vanilla collision boxes have been implemented
Fully asynchronous and multithreaded design
- All movement checks and the overwhelming majority of listeners run on the netty thread
- The anticheat can scale to many hundreds of players, if not more
- Thread safety is carefully thought out
- The next core allows for this design
Full world replication
- The anticheat keeps a replica of the world for each player
- The replica is created by listening to chunk data packets, block places, and block changes
- On all versions, chunks are compressed to 16-64 kb per chunk using palettes
- Using this cache, the anticheat can safely access the world state
- Per player, the cache allows for multithreaded design
- Sending players fake blocks with packets is safe and does not lead to falses
- The world is recreated for each player to allow lag compensation
- Client sided blocks cause no issues with packet based blocks. Block glitching does not false the anticheat.
Latency compensation
- World changes are queued until they reach the player
- This means breaking blocks under a player does not false the anticheat
- Everything from flying status to movement speed will be latency compensated
Inventory compensation
- The player's inventory is tracked to prevent ghost blocks at high latency, and other errors
Secure by design, not obscurity
- All systems are designed to be highly secure and mathematically impossible to bypass
- For example, the prediction engine knows all possible movements and cannot be bypassed
Версии
| Версия | Канал | Игра | Загрузчики | Дата | Скачать |
|---|---|---|---|---|---|
| 2.3.74-00dbb86-b99 | Альфа | 1.21.9, 1.21.10, 1.21.11, 26.1.2 | fabric | 27 июня 2026 г. | .jar (13.8 МБ) |
| 2.3.74-00dbb86-b99 | Альфа | 26.1, 26.1.1, 26.1.2, 26.2 | bukkit, folia, paper, purpur, spigot | 27 июня 2026 г. | .jar (11.9 МБ) |
| 2.3.74-2.0-0c38eaa | Альфа | 1.21.11, 26.1, 26.1.1, 26.1.2 | bukkit, folia, paper, purpur, spigot | 26 июня 2026 г. | .jar (11.6 МБ) |
| 2.3.74-2.0-0c38eaa | Альфа | 26.1, 26.1.1, 26.1.2, 26.2 | fabric | 26 июня 2026 г. | .jar (8.4 МБ) |
| 2.3.74-2.0-21f1534 | Альфа | 1.21.11, 26.1, 26.1.1, 26.1.2 | bukkit, folia, paper, purpur, spigot | 26 мая 2026 г. | .jar (10.8 МБ) |
| 2.3.74-2.0-21f1534 | Альфа | 1.21.11, 26.1, 26.1.1, 26.1.2 | fabric | 26 мая 2026 г. | .jar (7.9 МБ) |
| 2.3.74-65815fc-b98 | Альфа | 1.21.7, 1.21.8, 1.21.9, 1.21.10 | fabric | 15 апреля 2026 г. | .jar (7.2 МБ) |
| 2.3.74-65815fc-b98 | Альфа | 1.21.8, 1.21.9, 1.21.10, 1.21.11 | bukkit, folia, paper, purpur, spigot | 15 апреля 2026 г. | .jar (10.3 МБ) |
| 2.3.73-0a6ac7a-b97 | Альфа | 1.21.7, 1.21.8, 1.21.9, 1.21.10 | fabric | 26 февраля 2026 г. | .jar (7.0 МБ) |
| 2.3.73-0a6ac7a-b97 | Альфа | 1.21.8, 1.21.9, 1.21.10, 1.21.11 | bukkit, folia, paper, purpur, spigot | 26 февраля 2026 г. | .jar (10.1 МБ) |
| 2.3.73-daa3bfe-b96 | Альфа | 1.21.7, 1.21.8, 1.21.9, 1.21.10 | fabric | 31 декабря 2025 г. | .jar (7.0 МБ) |
| 2.3.73-daa3bfe-b96 | Альфа | 1.21.8, 1.21.9, 1.21.10, 1.21.11 | bukkit, folia, paper, purpur, spigot | 31 декабря 2025 г. | .jar (10.0 МБ) |
| 2.3.73-49742a9-b95 | Альфа | 1.21.7, 1.21.8, 1.21.9, 1.21.10 | fabric | 8 ноября 2025 г. | .jar (6.7 МБ) |
| 2.3.73-49742a9-b95 | Альфа | 1.21.7, 1.21.8, 1.21.9, 1.21.10 | bukkit, folia, paper, purpur, spigot | 8 ноября 2025 г. | .jar (9.6 МБ) |
| 2.3.72-0315338-b92 | Альфа | 1.21.5, 1.21.6, 1.21.7, 1.21.8 | fabric | 2 августа 2025 г. | .jar (6.4 МБ) |
Показаны последние 15 из 129 версий. Все версии — на Modrinth.
Ченджлог
2.3.74-00dbb86-b99Альфа1.21.10, 1.21.11, 26.1.2 · 27 июня 2026 г.
Changes in this Build (since previous push)
Miscellaneous
- Fix teleportAsync detection for old paper and MC versions where method did not exist - by Axionize (
7885555) - 26.1 support (#2553)
only bukkit platform for now - by Cyramek (a9b91e7)
- Bump PE for 26.1.2 support - by Axionize (
f36f870) - Implement fluid count tracker - by cyramek (
f9fdfa7) - Always use main hand for attack packets - by cyramek (
61e9e69) - Don't pass null clientVersion so chunk will use server version for mapping's lookup
broken after recent packetevents update that overriden #set method in Chunk_v1_18 - by cyramek (8dc657a)
- 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)
- Load optional workspace.gradle.kts if present - by Axionize WS1 (
6c3ccb4) - Migrate internal firings to GrimAPI 1.3 channel API (#2612) - by Axionize (
3664f4d) - FastBreak false positive on Vault block (#2610) - by Tyler (
794e120) - Fire GrimPlayerSetbackEvent alongside GrimTeleportEvent - by Axionize WS2 (
a86dedf) - Bump packetevents to 6953c38 (upstream 2.12.2 merge + obfuscation-safe nbt scan) - by Axionize WS1 (
7499d10) - Pass fluid count in our custom chunk reader - by cyramek (
66b3334) - Update DynamicConnecting.java (#2617)
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)
- Bump packetevents to 22c9961 (relocateHandlers respects compress/decompress)
fixes #2552 - by Axionize WS1 (257bffe)
- Fix issues with DynamicConnecting.java with client versions (#2618)
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)
- History rewrite: five backends, session-based, ring-buffer write path + universal config autoupdater (#2622) - by Axionize (
578c784) - Minor Post code cleanup - by ManInMyVan (
053b090) - Don't cancel CLOSE_WINDOW in PacketOrderK - by ManInMyVan (
fbabbf2) - Rename grim.legacy.* @CheckData stable_keys to descriptive names - by Axionize WS1 (
c233a60) - Escape backslashes when emitting double-quoted scalars (#2623) - by Axionize WS1 (
84bd90d) - Fix StackOverflow on isChunkLoaded by routing through ChunkSource (#2568) - by Axionize WS2 (
c88b494) - Kick anyone who sends vv:proxy_details - by ManInMyVan (
3021287) - Revert "kick anyone who sends vv:proxy_details"
This reverts commit 3021287391de4aee964abe5bcf6c452f72f68a7b. - by AoElite (73f63c1)
- Fixed Typo in shulker uncertainty logic (#2630) - by aquip (
2508a34) - Kick anyone who sends vv:proxy_details - by ManInMyVan (
e9c918d) - Add support for URL timeout customization and reimplement via proxy kicking - by AoElite (
fd9e0f8) - Add --name / --match / --grep regex filters to /grim history - by Axionize WS1 (
d591f10) - Bump grim-api pin to 1.3.2.0 - by Axionize WS1 (
2c60aae) - Redstone wall torch should use isLit instead of isPowered - by cyramek (
21f0c3d) - Bump grim-api to 1.3.2.1 - by Axionize WS2 (
17d4d2f) - Check cameraEntity.isSelf() in isTickingReliablyFor - by ManInMyVan (
3e5afef) - Simplify shulker opening/closing - by ManInMyVan (
fc899a3) - Min, not max - by ManInMyVan (
83a6d98) - Happy ghast scale is also clamped - by ManInMyVan (
5254190) - Remove unused import - by ManInMyVan (
145f71c) - Fall back to modrinth for changelog range when push payload missing - by Axionize WS1 (
4c866d0) - Small cleanup - by ManInMyVan (
5a40a06) - Remove unused import - by ManInMyVan (
215a1e6) - Tweak "UrlTimeout" constant for consistency - by AoElite (
addabec) - Update DiscordManager webhook regex to support canary and make timeout configurable - by AoElite (
99e309f) - Check rotations in teleports (#2268) - by ManInMyVan (
717829a) - Make name and stableKey in CheckData not optional - by ManInMyVan (
65d1050) - Only check isSprinting when rewarding in sprint checks - by ManInMyVan (
c549b19) - Use violation setback in SprintA - by ManInMyVan (
6953235) - Bump grim-api to 1.4.0.0 - by Axionize (
cdd490b) - Apply block effects for swim-hop vector (#2648)
apply block effects for swim-hop vector
adjust swim hop constants - by Cyramek (
73c60d0)
- VersionUtil uses providers.exec for git (config-cache compat) - by Axionize (
62b2268) - Anchor N:M intervals at N (#2661) - by Axionize (
5fa803e) - Fire N:M on boundary crossings, not on every flag at the boundary - by Axionize (
36675eb) - Per-command incident cursor (nextBoundary + executedOnce) - by Axionize (
fb4ad7a) - Preserve legacy one-shot command semantics - by Axionize (
20d68c1) - Bump grim-api to 1.5.0.0 - by Axionize (
25d10f4) - Use routed backend check catalog - by Axionize (
29316a7) - Repair legacy history check ids - by Axionize (
70223cd) - Use MySQL reconnecting API build - by Axionize (
ff214a4) - Run check-id repair asynchronously - by Axionize (
e32d091) - Small cleanup - by ManInMyVan (
fdaf096) - Skip onUserLogin when PacketUser is null - by Axionize (
2af658c) - Backport V3-side parity adds (against 2.0) (#2678) - by Axionize (
9b1aa1a) - Bump PE: fix Issue #2670 - by Axionize (
6252fe6) - Allow not having
client-brand.ignored-clientsin config - by ManInMyVan (60d3ecf) - Mark utility classes as @UtilityClass - by ManInMyVan (
fd9e91d) - Make WriteLog$Entry a record - by ManInMyVan (
d501dfe) - Bump PE: fix #2681 - by ManInMyVan (
43db51d) - Make player.stuckSpeedMultiplier a Vector3d
also reduce object allocations - by ManInMyVan (8083f42)
- More object alloc reduction - by ManInMyVan (
d939109) - Mark ChatD as stable - by ManInMyVan (
5869433) - More code cleanup - by ManInMyVan (
935668a) - Mark some listeners as pre-via - by ManInMyVan (
ce89791) - 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
- Remove leftover comments from testing
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)
- Use lombok getter for CompensatedInventory.startOfTickStack - by ManInMyVan (
199b673) - Don't box if we don't need to - by ManInMyVan (
bebccfa) - Make chat checks and BadPacketsM pre-via - by ManInMyVan (
21f1534) - Update startOfTickStack on slot change (#2683) - by ManInMyVan (
8c95b21) - Bump packetevents to 2.12.2+6dca3cc00 (fabric pre-Via listener fix) - by Axionize (
09194f3) - Fix PE hash length — CI publishes with 7-char hash - by Axionize (
0b7001b) - Use getInstance(Class) instead of get(Class) in CheckManager - by ManInMyVan (
b62722b) - Migrate more checks to pre-via - by ManInMyVan (
36931a8) - Send a transaction before adding the task to set serverOpenedInventoryThisTick - by ManInMyVan (
e62d451) - Move CheckManagerListener onPacketSend to pre-via - by ManInMyVan (
17b86aa) - Default KICK_ON_TRANSACTION_ERRORS to true - by ManInMyVan (
490a02b) - Pre-load block mappings for server version - by ManInMyVan (
cd61780) - Make PacketPlayerRespawn pre-via - by ManInMyVan (
6ce529c) - Support relative PLAYER_ROTATION packets - by ManInMyVan (
6ff7f44) - Revert "make PacketPlayerRespawn pre-via"
This reverts commit 6ce529c83de82eee53425a5b081c03115c181e04. - by ManInMyVan (48b778e)
- Load local Gradle user properties - by Axionize (
9888990) - Support Minecraft 26.X on official mappings (#2695) - by Axionize (
4642c3d) - Update PacketEvents pin - by Axionize (
6b710c0) - Backport public V2 datastore wiring - by Axionize (
4de186b) - 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)
- Rewrite how input is handled between versions (#2700)
we're E-15 on average across all supported versions - by Cyramek (86785db)
- Change default server-name from "Prison" to "ChangeMe"
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)
- Handle missing datastore routes - by Axionize (
3404e9b) - Use GrimAPI 1.6.0.2 - by Axionize (
6b28271) - Fix Fabric 1.21.11 cloud command bridge - by Axionize (
19dde8b) - Use GrimAPI 1.6.0.3 - by Axionize (
e7fedff) - Adopt binary verbose for BadPacketsR
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) - Integrate structured verbose templates - by Axionize WS2 (
8e39093) - Add stdnum render tag - by Axionize WS2 (
67aa3a9) - Move SprintA to post-prediction checks - by cyramek (
e37b7e3) - Implement 26.2 - by cyramek (
1d52bda) - Merge branch '2.0' into ver/26.2 - by Cyramek (
c96667c) - Viaversion replacements and cloud commands - by cyramek (
ae11730) - Update versions in various places - by cyramek (
735550d) - Support entities boundingbox changes
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) - Support for 26.2 (#2729) - by Cyramek (
732b9e0) - Support Fabric 26.2 - by Axionize WS2 (
784c46d) - Add optional client version section to bug issue template - by ManInMyVan (
4d28b14) - Add client & server version placeholders to issue templates - by ManInMyVan (
cd0986b) - Small cleanup - by ManInMyVan (
f65930b) - Backport storage ownership leases - by Axionize WS2 (
79d54e3) - Merge pull request #2760 from GrimAnticheat/codex/server-ownership-leases-2.0
Backport storage ownership leases - by Axionize (573a1d2)
- Merge upstream/2.0 into lightning - by Axionize WS2 (
0c3ed12) - Backfill Lightning combat punishments - by Axionize WS2 (
00dbb86)
♻️ Refactoring
- Nest variants as :fabric:{shared,intermediary,official} - by Axionize (
dde41ad)
🐛 Fixes
- Fix bouncy blocks (#2473) - by Cyramek (
19c12b7) - Fix typo in MultiActionsC - by ManInMyVan (
8861589) - Fix page length check (#2637) - by Captain-S0L0 (
f81e183) - Fix shulker & dragon scale attrubute - by ManInMyVan (
3d95fea) - 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)
- Fix 1.21.11 spigot support - by ManInMyVan (
7d823f5) - Fix swim hops while riding an entity that can float on water - by cyramek (
ce86075) - Fix 1.21.11 trigonometry (#2644)
new trig lookup table just dropped - by Cyramek (494e9c5)
- Fix 26.1 spigot support - by ManInMyVan (
7ccff01) - Fix BadPacketsM falses - by ManInMyVan (
3cd17cc) - Fix golden dandelion in a flower pot collision - by cyramek (
02f1dc3) - Fix entity boundingbox replication regression (#2642)
fix entity boundingbox replication regression
check if tick end event exists - by Cyramek (
8a3767b)
- Fix compensatedCamera with respawn packets - by ManInMyVan (
7a7e07f) - Fix recent vialegacy update causing falses - by ManInMyVan (
c156c00) - Fix precision loss while swimming in a flowing fluid (#2668)
we're in E-15 now on average - by Cyramek (f3ed3b2)
- Fix 1.8 wither skeleton hitbox - by ManInMyVan (
fdd734a) - Fix #2677 - by ManInMyVan (
34c41db) - Fix precision loss in <=1.19.3 - by cyramek (
635708a) - Fix 1.21.11 clients flagging reach on 1.8 servers - by ManInMyVan (
edc3987) - Fix NPE while getting preViaPacketChecks
fix: https://github.com/GrimAnticheat/Grim/issues/2685 - by cyramek (ec08cbe)
- Fix head hitting while slow falling
gravity is calculated based on deltaMovement, not actualMovement
fix: https://github.com/GrimAnticheat/Grim/issues/2687 - by cyramek (7e1607d)
- Fix precision loss for <=1.18.1 - by cyramek (
4a632c1) - Fix input precision loss in <=1.16.5 - by cyramek (
10cc198) - Check if the block position is valid before getting it, fixes #2689 - by ManInMyVan (
d34f5c1) - Fix NPE on world change - by ManInMyVan (
406d6e7) - Fix #2693 - by ManInMyVan (
d2e47fd) - Fix packetevents commit - by ManInMyVan (
5e60273) - Exclude adventure-text-serializer-gson from minimize() - by Axionize (
ac892c5) - False in MultiActionsD while opening your inventory in a nether portal frame (#2702) - by Bram (
b2b2503) - Handle missing PacketEvents channel in UUID lookup (#9) - by Axionize (
2ea1d99) - Bind PacketContext around item encoding for Polymer 0.16+ (#2701) (#2705) - by Axionize (
5f19722) - Fix NPE when player is riding entity that he is not in control of
idk how to reproduce it because it shouldn't happen, but I guess transaction splits between entity equipment updates happen - by cyramek (4f747c3)
- Fix precision loss while gliding
E-8 -> E-15 - by cyramek (c83870b)
- 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)
- Fix swim hops with geysers - by cyramek (
eba3cb8) - Fix client velocity being affected by collisions
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)
🚀 Features
- Add Fabric piston event support (#2619) - by aquip (
75cc402) - Refresh permissions from LuckPerms updates - by Axionize (
b3a7496) - Add hover tooltips to check alerts & descriptions to every check (#2712) - by Mater (
1f1b03c) - Make render hovers configurable - by Axionize (
0aa2e2b)
2.3.74-00dbb86-b99Альфа26.1.1, 26.1.2, 26.2 · 27 июня 2026 г.
Changes in this Build (since previous push)
Miscellaneous
- Fix teleportAsync detection for old paper and MC versions where method did not exist - by Axionize (
7885555) - 26.1 support (#2553)
only bukkit platform for now - by Cyramek (a9b91e7)
- Bump PE for 26.1.2 support - by Axionize (
f36f870) - Implement fluid count tracker - by cyramek (
f9fdfa7) - Always use main hand for attack packets - by cyramek (
61e9e69) - Don't pass null clientVersion so chunk will use server version for mapping's lookup
broken after recent packetevents update that overriden #set method in Chunk_v1_18 - by cyramek (8dc657a)
- 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)
- Load optional workspace.gradle.kts if present - by Axionize WS1 (
6c3ccb4) - Migrate internal firings to GrimAPI 1.3 channel API (#2612) - by Axionize (
3664f4d) - FastBreak false positive on Vault block (#2610) - by Tyler (
794e120) - Fire GrimPlayerSetbackEvent alongside GrimTeleportEvent - by Axionize WS2 (
a86dedf) - Bump packetevents to 6953c38 (upstream 2.12.2 merge + obfuscation-safe nbt scan) - by Axionize WS1 (
7499d10) - Pass fluid count in our custom chunk reader - by cyramek (
66b3334) - Update DynamicConnecting.java (#2617)
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)
- Bump packetevents to 22c9961 (relocateHandlers respects compress/decompress)
fixes #2552 - by Axionize WS1 (257bffe)
- Fix issues with DynamicConnecting.java with client versions (#2618)
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)
- History rewrite: five backends, session-based, ring-buffer write path + universal config autoupdater (#2622) - by Axionize (
578c784) - Minor Post code cleanup - by ManInMyVan (
053b090) - Don't cancel CLOSE_WINDOW in PacketOrderK - by ManInMyVan (
fbabbf2) - Rename grim.legacy.* @CheckData stable_keys to descriptive names - by Axionize WS1 (
c233a60) - Escape backslashes when emitting double-quoted scalars (#2623) - by Axionize WS1 (
84bd90d) - Fix StackOverflow on isChunkLoaded by routing through ChunkSource (#2568) - by Axionize WS2 (
c88b494) - Kick anyone who sends vv:proxy_details - by ManInMyVan (
3021287) - Revert "kick anyone who sends vv:proxy_details"
This reverts commit 3021287391de4aee964abe5bcf6c452f72f68a7b. - by AoElite (73f63c1)
- Fixed Typo in shulker uncertainty logic (#2630) - by aquip (
2508a34) - Kick anyone who sends vv:proxy_details - by ManInMyVan (
e9c918d) - Add support for URL timeout customization and reimplement via proxy kicking - by AoElite (
fd9e0f8) - Add --name / --match / --grep regex filters to /grim history - by Axionize WS1 (
d591f10) - Bump grim-api pin to 1.3.2.0 - by Axionize WS1 (
2c60aae) - Redstone wall torch should use isLit instead of isPowered - by cyramek (
21f0c3d) - Bump grim-api to 1.3.2.1 - by Axionize WS2 (
17d4d2f) - Check cameraEntity.isSelf() in isTickingReliablyFor - by ManInMyVan (
3e5afef) - Simplify shulker opening/closing - by ManInMyVan (
fc899a3) - Min, not max - by ManInMyVan (
83a6d98) - Happy ghast scale is also clamped - by ManInMyVan (
5254190) - Remove unused import - by ManInMyVan (
145f71c) - Fall back to modrinth for changelog range when push payload missing - by Axionize WS1 (
4c866d0) - Small cleanup - by ManInMyVan (
5a40a06) - Remove unused import - by ManInMyVan (
215a1e6) - Tweak "UrlTimeout" constant for consistency - by AoElite (
addabec) - Update DiscordManager webhook regex to support canary and make timeout configurable - by AoElite (
99e309f) - Check rotations in teleports (#2268) - by ManInMyVan (
717829a) - Make name and stableKey in CheckData not optional - by ManInMyVan (
65d1050) - Only check isSprinting when rewarding in sprint checks - by ManInMyVan (
c549b19) - Use violation setback in SprintA - by ManInMyVan (
6953235) - Bump grim-api to 1.4.0.0 - by Axionize (
cdd490b) - Apply block effects for swim-hop vector (#2648)
apply block effects for swim-hop vector
adjust swim hop constants - by Cyramek (
73c60d0)
- VersionUtil uses providers.exec for git (config-cache compat) - by Axionize (
62b2268) - Anchor N:M intervals at N (#2661) - by Axionize (
5fa803e) - Fire N:M on boundary crossings, not on every flag at the boundary - by Axionize (
36675eb) - Per-command incident cursor (nextBoundary + executedOnce) - by Axionize (
fb4ad7a) - Preserve legacy one-shot command semantics - by Axionize (
20d68c1) - Bump grim-api to 1.5.0.0 - by Axionize (
25d10f4) - Use routed backend check catalog - by Axionize (
29316a7) - Repair legacy history check ids - by Axionize (
70223cd) - Use MySQL reconnecting API build - by Axionize (
ff214a4) - Run check-id repair asynchronously - by Axionize (
e32d091) - Small cleanup - by ManInMyVan (
fdaf096) - Skip onUserLogin when PacketUser is null - by Axionize (
2af658c) - Backport V3-side parity adds (against 2.0) (#2678) - by Axionize (
9b1aa1a) - Bump PE: fix Issue #2670 - by Axionize (
6252fe6) - Allow not having
client-brand.ignored-clientsin config - by ManInMyVan (60d3ecf) - Mark utility classes as @UtilityClass - by ManInMyVan (
fd9e91d) - Make WriteLog$Entry a record - by ManInMyVan (
d501dfe) - Bump PE: fix #2681 - by ManInMyVan (
43db51d) - Make player.stuckSpeedMultiplier a Vector3d
also reduce object allocations - by ManInMyVan (8083f42)
- More object alloc reduction - by ManInMyVan (
d939109) - Mark ChatD as stable - by ManInMyVan (
5869433) - More code cleanup - by ManInMyVan (
935668a) - Mark some listeners as pre-via - by ManInMyVan (
ce89791) - 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
- Remove leftover comments from testing
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)
- Use lombok getter for CompensatedInventory.startOfTickStack - by ManInMyVan (
199b673) - Don't box if we don't need to - by ManInMyVan (
bebccfa) - Make chat checks and BadPacketsM pre-via - by ManInMyVan (
21f1534) - Update startOfTickStack on slot change (#2683) - by ManInMyVan (
8c95b21) - Bump packetevents to 2.12.2+6dca3cc00 (fabric pre-Via listener fix) - by Axionize (
09194f3) - Fix PE hash length — CI publishes with 7-char hash - by Axionize (
0b7001b) - Use getInstance(Class) instead of get(Class) in CheckManager - by ManInMyVan (
b62722b) - Migrate more checks to pre-via - by ManInMyVan (
36931a8) - Send a transaction before adding the task to set serverOpenedInventoryThisTick - by ManInMyVan (
e62d451) - Move CheckManagerListener onPacketSend to pre-via - by ManInMyVan (
17b86aa) - Default KICK_ON_TRANSACTION_ERRORS to true - by ManInMyVan (
490a02b) - Pre-load block mappings for server version - by ManInMyVan (
cd61780) - Make PacketPlayerRespawn pre-via - by ManInMyVan (
6ce529c) - Support relative PLAYER_ROTATION packets - by ManInMyVan (
6ff7f44) - Revert "make PacketPlayerRespawn pre-via"
This reverts commit 6ce529c83de82eee53425a5b081c03115c181e04. - by ManInMyVan (48b778e)
- Load local Gradle user properties - by Axionize (
9888990) - Support Minecraft 26.X on official mappings (#2695) - by Axionize (
4642c3d) - Update PacketEvents pin - by Axionize (
6b710c0) - Backport public V2 datastore wiring - by Axionize (
4de186b) - 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)
- Rewrite how input is handled between versions (#2700)
we're E-15 on average across all supported versions - by Cyramek (86785db)
- Change default server-name from "Prison" to "ChangeMe"
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)
- Handle missing datastore routes - by Axionize (
3404e9b) - Use GrimAPI 1.6.0.2 - by Axionize (
6b28271) - Fix Fabric 1.21.11 cloud command bridge - by Axionize (
19dde8b) - Use GrimAPI 1.6.0.3 - by Axionize (
e7fedff) - Adopt binary verbose for BadPacketsR
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) - Integrate structured verbose templates - by Axionize WS2 (
8e39093) - Add stdnum render tag - by Axionize WS2 (
67aa3a9) - Move SprintA to post-prediction checks - by cyramek (
e37b7e3) - Implement 26.2 - by cyramek (
1d52bda) - Merge branch '2.0' into ver/26.2 - by Cyramek (
c96667c) - Viaversion replacements and cloud commands - by cyramek (
ae11730) - Update versions in various places - by cyramek (
735550d) - Support entities boundingbox changes
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) - Support for 26.2 (#2729) - by Cyramek (
732b9e0) - Support Fabric 26.2 - by Axionize WS2 (
784c46d) - Add optional client version section to bug issue template - by ManInMyVan (
4d28b14) - Add client & server version placeholders to issue templates - by ManInMyVan (
cd0986b) - Small cleanup - by ManInMyVan (
f65930b) - Backport storage ownership leases - by Axionize WS2 (
79d54e3) - Merge pull request #2760 from GrimAnticheat/codex/server-ownership-leases-2.0
Backport storage ownership leases - by Axionize (573a1d2)
- Merge upstream/2.0 into lightning - by Axionize WS2 (
0c3ed12) - Backfill Lightning combat punishments - by Axionize WS2 (
00dbb86)
♻️ Refactoring
- Nest variants as :fabric:{shared,intermediary,official} - by Axionize (
dde41ad)
🐛 Fixes
- Fix bouncy blocks (#2473) - by Cyramek (
19c12b7) - Fix typo in MultiActionsC - by ManInMyVan (
8861589) - Fix page length check (#2637) - by Captain-S0L0 (
f81e183) - Fix shulker & dragon scale attrubute - by ManInMyVan (
3d95fea) - 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)
- Fix 1.21.11 spigot support - by ManInMyVan (
7d823f5) - Fix swim hops while riding an entity that can float on water - by cyramek (
ce86075) - Fix 1.21.11 trigonometry (#2644)
new trig lookup table just dropped - by Cyramek (494e9c5)
- Fix 26.1 spigot support - by ManInMyVan (
7ccff01) - Fix BadPacketsM falses - by ManInMyVan (
3cd17cc) - Fix golden dandelion in a flower pot collision - by cyramek (
02f1dc3) - Fix entity boundingbox replication regression (#2642)
fix entity boundingbox replication regression
check if tick end event exists - by Cyramek (
8a3767b)
- Fix compensatedCamera with respawn packets - by ManInMyVan (
7a7e07f) - Fix recent vialegacy update causing falses - by ManInMyVan (
c156c00) - Fix precision loss while swimming in a flowing fluid (#2668)
we're in E-15 now on average - by Cyramek (f3ed3b2)
- Fix 1.8 wither skeleton hitbox - by ManInMyVan (
fdd734a) - Fix #2677 - by ManInMyVan (
34c41db) - Fix precision loss in <=1.19.3 - by cyramek (
635708a) - Fix 1.21.11 clients flagging reach on 1.8 servers - by ManInMyVan (
edc3987) - Fix NPE while getting preViaPacketChecks
fix: https://github.com/GrimAnticheat/Grim/issues/2685 - by cyramek (ec08cbe)
- Fix head hitting while slow falling
gravity is calculated based on deltaMovement, not actualMovement
fix: https://github.com/GrimAnticheat/Grim/issues/2687 - by cyramek (7e1607d)
- Fix precision loss for <=1.18.1 - by cyramek (
4a632c1) - Fix input precision loss in <=1.16.5 - by cyramek (
10cc198) - Check if the block position is valid before getting it, fixes #2689 - by ManInMyVan (
d34f5c1) - Fix NPE on world change - by ManInMyVan (
406d6e7) - Fix #2693 - by ManInMyVan (
d2e47fd) - Fix packetevents commit - by ManInMyVan (
5e60273) - Exclude adventure-text-serializer-gson from minimize() - by Axionize (
ac892c5) - False in MultiActionsD while opening your inventory in a nether portal frame (#2702) - by Bram (
b2b2503) - Handle missing PacketEvents channel in UUID lookup (#9) - by Axionize (
2ea1d99) - Bind PacketContext around item encoding for Polymer 0.16+ (#2701) (#2705) - by Axionize (
5f19722) - Fix NPE when player is riding entity that he is not in control of
idk how to reproduce it because it shouldn't happen, but I guess transaction splits between entity equipment updates happen - by cyramek (4f747c3)
- Fix precision loss while gliding
E-8 -> E-15 - by cyramek (c83870b)
- 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)
- Fix swim hops with geysers - by cyramek (
eba3cb8) - Fix client velocity being affected by collisions
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)
🚀 Features
- Add Fabric piston event support (#2619) - by aquip (
75cc402) - Refresh permissions from LuckPerms updates - by Axionize (
b3a7496) - Add hover tooltips to check alerts & descriptions to every check (#2712) - by Mater (
1f1b03c) - Make render hovers configurable - by Axionize (
0aa2e2b)
2.3.74-2.0-0c38eaaАльфа26.1, 26.1.1, 26.1.2 · 26 июня 2026 г.
Changes in this Build (since previous push)
Miscellaneous
- Backport storage ownership leases - by Axionize WS2 (
e17023b) - Use published GrimAPI ownership build - by Axionize WS2 (
429fc17) - Use released GrimAPI ownership version - by Axionize WS2 (
c71ef0c) - Use GrimAPI 1.6.0.7 ownership fix - by Axionize WS2 (
0066487) - Backport storage ownership leases
Merge storage ownership leases backport using released GrimAPI 1.6.0.7. - by Axionize (0c38eaa)
2.3.74-2.0-0c38eaaАльфа26.1.1, 26.1.2, 26.2 · 26 июня 2026 г.
Changes in this Build (since previous push)
Miscellaneous
- Backport storage ownership leases - by Axionize WS2 (
e17023b) - Use published GrimAPI ownership build - by Axionize WS2 (
429fc17) - Use released GrimAPI ownership version - by Axionize WS2 (
c71ef0c) - Use GrimAPI 1.6.0.7 ownership fix - by Axionize WS2 (
0066487) - Backport storage ownership leases
Merge storage ownership leases backport using released GrimAPI 1.6.0.7. - by Axionize (0c38eaa)
2.3.74-2.0-21f1534Альфа26.1, 26.1.1, 26.1.2 · 26 мая 2026 г.
Changes in this Build (since previous push)
Miscellaneous
- Ensure the short commit is used - by AoElite (
ce6e1d3) - Any 200 status codes are acceptable - by AoElite (
163e120) - Allow the embed images to be customizable and show grim's version in the footer - by AoElite (
5c46021) - Slightly more configurable webhook embed - by ManInMyVan (
6385460) - Ignore unhittable entities for block placements - by AoElite (
8d7a4cc) - Bump Gradle to 9.1.0 - by SamB440 (
322d256) - CancelLerp fixed in 1.21.9, apparently - by SamB440 (
bb143d7) - Correct bounding box calculations for baby turtles, happy ghasts, dolphins, armadillos, and camels - by cyramek (
2e1c79b) - Don't specify baby scale factor twice - by ManInMyVan (
6a223a3) - CHUNK_BATCH_ACK is async - by ManInMyVan (
d538c59) - Add 2 more rules to .editorconfig - by ManInMyVan (
1317ae0) - Fix ClassNotFoundException with new ChatB Via rewriter hook - by Axionize (
4d6ac75) - Use FastUtil Map for violations - by Axionize (
ca6e83d) - More fastutil micro optimizations - by Axionize (
5551ef6) - Fix Fabric Auto JiJ script - by Axionize (
41c7e41) - Require CHUNK_BATCH_ACK be sent only when it's supposed to be sent - by ManInMyVan (
bbab7e2) - Check if we're already sending a bundle packet - by ManInMyVan (
e222df8) - [1.21.10] Rewrite block effects, LpVector support, partially implemented collision boxes (#2300) - by Cyramek (
0237f95) - Get rid of a buffer in vector format conversion - by cyramek (
a2f4dc1) - Support copper variants of chains - by cyramek (
44900e5) - Add translations for the
sender-not-foundmessage - by AoElite (f381805) - Refactor Grim startup/system args handling - by Axionize (
faf2fb3) - 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)
- Micro optimize DefaultResyncHandler - by Axionize (
1eae548) - Optimize new object creation on vector add() calls - by Axionize (
15e8098) - Optimize new Vector3dm() multiply calls - by Axionize (
26492fd) - Mark ElytraB as stable - by ManInMyVan (
8a6863b) - Mark ElytraC as stable - by ManInMyVan (
3f19abc) - Mark ElytraA as stable - by ManInMyVan (
d0aafdd) - Mark ElytraF as stable - by ManInMyVan (
79bf7e4) - Remove double space in ChatB - by ManInMyVan (
6e5ec33) - Mark PositionBreakB as stable - by ManInMyVan (
89cf181) - Mark MultiActionsC as stable - by ManInMyVan (
a82f2b8) - Mark MultiActionsD as stable - by ManInMyVan (
a86bf57) - Possibly fix build - by ManInMyVan (
9ba4052) - Clear active item before updating inventory on legacy (#2317)
Apply spotless
Clear active item before updating inventory on legacy - by BT (calcastor/mame) (
b69906f)
- Allow up to one PLAYER_INPUT per tick (#2306) - by ManInMyVan (
1b47e31) - Add shelf collision box - by ManInMyVan (
4f3e715) - Add copper golem statue collision box - by ManInMyVan (
a76bf9c) - 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)
- We do not need high bound if player ticks reliably. - by SamB440 (
f8a5315) - Switch to mojmap for fabric
see https://fabricmc.net/2025/10/31/obfuscation.html - by ManInMyVan (b373e5f)
- Slight cleanup of fabric code - by ManInMyVan (
0df77dd) - Reorder publication of artifacts to Modrinth and update supported versions - by Axionize (
bfd2bd0) - Show size for applicable reach/hitbox flags - by ManInMyVan (
6280b28) - Don't simulate movement in unloaded chunks?
Who knows what other problems this could cause... - by SamB440 (0ba3317)
- Bump cloud to beta.13, fixes #2318 - by SamB440 (
c323cf0) - Disable PacketOrderP, fixes #2327 - by SamB440 (
ea1f161) - New translation ro.yml (#2285)
Config Romanian translation for grim ac. - by ItzBloxxy (918e657)
- Disable ExploitB "invalid page characters" check - by ManInMyVan (
def2163) - Small piston optimization - by AoElite (
ba1d1db) - Tweak GrimDump output and include some non-default alert settings - by AoElite (
5c71531) - Hopefully make installation instructions more clear
also moves it higher on the page - by ManInMyVan (b14628c)
- Make sure that we use packet-based inventory state after closing the inventory - by cyramek (
a46d296) - Update CrashC.java (#2350) - by Weigurde (
6df484b) - Bump PacketEvents version - by Axionize (
9b500a2) - Migrate workflows to tenki (#2362) - by tenki-cloud[bot] (
e1bd2ed) - Remove some unnecessary publishing paths - by AoElite (
3380d7f) - Optimise bounding box calculations - by cyramek (
3f67272) - Setback changes - by SamB440 (
8ddd7f1) - Improve bypass template - by ManInMyVan (
ba91251) - More consistent issue templates - by ManInMyVan (
499bf7e) - 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.
- Fix player gamemode reset bug
When spectating a player in another dimension, you would previously get set to survival mode, this is now fixed. - by GroupXyz (3fc985c)
- Fixed Reach false positive with Happy Ghast and clients under 1.21.6 (#2352) - by Greened (
e386b93) - Bump PacketEvents version - by Axionize (
2d785fd) - Make discord webhook pattern stricter and support different api versions - by AoElite (
3bf3226) - Update lunar's brand format in all the configs - by AoElite (
2d053d0) - More setback changes - by SamB440 (
4d28f85) - Adjust canGlide logic to try to improve compatibility - by AoElite (
679e869) - Adjust isGlider logic to account for items that can't be depleted - by AoElite (
acf273f) - Revert "fix incorrect EquipmentSlot mappings in isGlider logic"
This reverts commit d96d683b14150d6e0f486a63cf1a74c417c6a84b. - by AoElite (0153ce3)
- Refactor repo logic to support mavenLocalOverride - by Axionize (
965008f) - Bump PE - by Axionize (
12f6af3) - Add initial support for 1.21.11 and update dependencies - by Axionize (
97b8758) - Fix gliders not working in offhand slot (#2397) - by iLemon (
32f607b) - Bump github actions-upload-artifact versions - by Axionize (
9bd12cc) - Make runner configurable to work around Tenki issues (#2398) - by Axionize (
f772b74) - Fix NPE when Spigot late-bind option is enabled & improve injection logic
This PR fixes a NullPointerException that occurred when the Spigot "late-bind" option was enabled on servers prior to 1.14.4.
Changes:
Changed injection priority: The plugin now attempts to register the Paper TickEndEvent first. It only falls back to NMS reflection if the Paper API is unavailable.
Added a null check for the server connection instance to prevent the NPE during reflection injection.
Added specific error logging: If injection fails on legacy servers (< 1.14.4), the plugin now reflectively checks
spigot.ymlsettings to explicitly warn the user iflate-bindis the cause.Refactored reflection logic to use
ReflectionUtilsfor better safety and code cleanliness. - by uRyanxD (5f02ccc)Bump PE - by Axionize (
92d06e4)Build ci changes - by Axionize (
9626712)Cache map values for performance (#2407) - by Rothes (
8f0036e)Clean up OptifineFastMath.java a bit - by ManInMyVan (
2d8def6)Support CAMERA packet (#2303) - by ManInMyVan (
d374c2b)Add PlatformPlayerFactory#getOfflinePlayers() - by Axionize (
ce0dad5)Stash work - by Axionize (
90193b4)Fix reach regression in not flagging clients from versions 1.15 to 1.20.1 due to rot only regression - by Axionize (
60b70d1)Merge branch 'fix/reach-infinite-expanding-hitbox' into 2.0 - by Axionize (
4292e93)Use config history.database.port for database connection port. Fixes #2415 - by SamB440 (
42b6630)Prevent torn reads and race condition on respawn on Fabric from reconstruction of ServerPlayerEntity - by Axionize (
101473b)Resync on netty thread instead of trying to send packets in region thread - by Axionize (
80f90e6)Add option to disable resyncing without API with a NoOp resync handler - by Axionize (
7c68947)Fix Sculk Vein replacement Phase/Simulation falses & Optimize canBeReplaced logic
Added replacement logic for SCULK_VEIN (mirrors GLOW_LICHEN).
Refactored sequential 'if' statements into an 'else-if' chain to improve branch prediction and allow early exits.
Reordered block checks based on frequency (Slabs, Snow, and Vines are now checked first).
Merged duplicate logic for multiface blocks. - by Axionize (
b79d5fd)Only update profiles if PLAYER_INFO_UPDATE contains ADD_PLAYER action - by Axionize (
d0b30de)Patch FabricatedPlace falses - by Axionize (
98fd065)Make CrashC verbose more consistent with other checks - by ManInMyVan (
6186abc)Improve FabricatedPlace patch - by Axionize (
07d2010)Attempt to fix disconnect.timeout cascade issues - by Axionize (
639490a)Fix Mushroom and Fungus Hitboxes - by Axionize (
14573da)Fix Coral hitboxes - by Axionize (
a2074d0)Add forgotten util class file for hitbox fix - by Axionize (
8016586)Fix merge errors in hitbox patch - by Axionize (
ca64aab)Update .gitignore - by Axionize (
be35b9b)Fix rot only accounting for reach/hitbox in 1.15 - 1.20.1 and 1.21.5 - 1.21.8 once and for all - by Axionize (
9cb4547)Temporary fix for Folia breaking getTPS() - by Axionize (
dbd7510)Faster temporary fix for Folia breaking getTPS() - by Axionize (
02f6a3b)Add Back Support for Legacy API (#2409)
Add back support for the legacy API temporarily
Bump API to release version - by Axionize (
95e2774)
- 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
- fix 0.03 fluid pushing
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:
- rot packet with PLAYER look angle
- vehicle move packet with ENTITY look angle
vehicle move packet overrides player's yaw and pitch from first rot packet
- implement all prediction engines for nautilus
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)
- Unify all APIs - by Axionize (
c5855fd) - Fix support for messing legacy getGrimUser(Player player) method - by Axionize (
8001f6c) - Bump PE - by Axionize (
21f6988) - Bump API to no longer shade Player shim - by Axionize (
50a25d9) - Command API fallback handling - by Axionize (
08770f0) - Refactor Fabric to make permissions API and cloud optional dependencies - by Axionize (
b9fa89c) - Fabric 1.21.11 support for fabric-permissions-api-v0 not being included - by Axionize (
075cec8) - Update supported fabric versions - by Axionize (
3659060) - Bump PE - by Axionize (
a54329a) - Fix early init of CommandManager on Bukkit causing startup issues - by Axionize (
fefe0d1) - Rename Fabric mc1211 -> mc12111 module - by Axionize (
9d1682d) - Fix fast break false when switching tools via shulker box (#2454) - by Ayou (
c043357) - Revert this for now, until we find a better way to fix it - by cyramek (
b7a719d) - Don't let player reuse setback velocity (fixes #2445) (#2450) - by SamB440 (
cd86c14) - Rename Fabric1211PlatformServer -> Fabric12111PlatformServer - by Axionize (
88cfffc) - Refactor Resolver Lifecycle - by Axionize (
35174fd) - Evoker fangs are unhittable - by SamB440 (
80afaae) - Bump PE: Fixes Packet Ordering and mapping issues
- Previa packet mapping failing due to incorrect upstream call to getPacketVersion() instead of getClientVersion(), affects previa on all versions
- Fix Krypton + Via + Grim compat form listener relocation - by Axionize (
6c49a01) - Add method exposing int block type from CompensatedWorld (#2464)
Implement feature
Update common/src/main/java/ac/grim/grimac/utils/latency/CompensatedWorld.java
Co-authored-by: ManInMyVan 113963219+ManInMyVan@users.noreply.github.com
- Add @Override annotation
Co-authored-by: ManInMyVan 113963219+ManInMyVan@users.noreply.github.com - by Cubicake (2b62148)
- Add /grim testwebhook - by ManInMyVan (
327b947) - Improve comments in Chinese configuration file (#2490)
Updated comments in zh.yml for clarity and translation. - by MatrixU5er (b65b7f0)
- Load after ZNPCsPlus - by ManInMyVan (
1d0cbb7) - Bump grim-api version - by AoElite (
7be8f51) - Update Grim API to 1.2.4.0 - by Axionize (
4ca65b1) - Fix getting hitbox for unstable scaffolding - by Axionize (
f0fbc9d) - History rewrite marker - by Axionize (
7d487a4) - Add support for attribute swapping to and from items with attack range components - by Axionize (
b281a2d) - Update translation - by tjshtqwq (
c2acfae) - 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) - Add Polish configuration file for GrimAC (#2501)
Co-authored-by: DawixTV 92529087+DawixTV@users.noreply.github.com - by dxw1d (272a889)
- Revert "load after ZNPCsPlus"
This reverts commit 1d0cbb7078205b0b265a8ae6047bd304811ed130. - by ManInMyVan (c7983b7)
- Remove unused imports in Reach.java - by ManInMyVan (
d273229) - Fix Discord Webhook PAPI Placeholders (#2518)
Fix support for Discord markdown parsing of several edge cases
Fix PAPI name mangling
Cleanup Implementation of new Discord Webhook handling
Document exploit choice to not use volatile when technically correct to
Address all code review concerns
Cleanup unused code
Refactor packages for discord related data types - by Axionize (
c356f5f)
- Fix compile issues from package references not being refactored in Discord refactor - by Axionize (
53cf3e8) - Discord.yml translation fixes - by Axionize (
d4611f1) - Add support disable-webhook-validation boolean in discord.yml for custom domains with Discord webhooks
Closes https://github.com/GrimAnticheat/Grim/issues/2520 - by Axionize (879d566)
- Account for 1.21.2+ clients ignoring teleport packets while in vehicle (#2470)
fix: https://github.com/GrimAnticheat/Grim/issues/2463 - by Cyramek (8a0d1e2)
- Bump version to 2.3.74 - by cyramek (
546abf0) - Add support for viaversion attack range component for 1.21.11+ clients on legacy servers (#2474)
add support for https://github.com/ViaVersion/ViaVersion/pull/4733 - by Cyramek (7e8b6b6)
- Fix encoding of Polymer blocks breaking when resyncing with world, optimize allocations Fabric PlatformChunk.getBlockId(x,y,z) - by Axionize (
0a1ce1d) - Reset food level on respawn (#2528) - by SamB440 (
5749463) - Fix ghost block mitigation on floating block placement (#2530) - by RareMen (
13fb273) - Exempt spectators in 1.21.11+ from PacketOrderB (fixes #2493) - by ManInMyVan (
29c0757) - Slightly change BadPacketsP description - by ManInMyVan (
539e822) - Rename BadPacketsC to SelfInteract - by ManInMyVan (
177c003) - Set CheckManager#packetEntityReplication on init - by ManInMyVan (
3055cd1) - Make TransactionOrder verbose consistent with other checks - by ManInMyVan (
68f34f2) - Require hand to be MAIN_HAND in PacketOrderB - by ManInMyVan (
598aae0) - 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)
- Footer text does not get parsed as markdown - by ManInMyVan (
e40ec01) - Bump Kotlin Plugin Serialization 2.3.0 - by Axionize (
5f9b9dd) - Make DefaultResyncHandler a record - by Axionize (
740f7f4) - Spear stabs are attacks, handle them as such - by ManInMyVan (
bf10e23) - Add separate logic for publishing release builds in workflow - by AoElite (
f0e15b0) - Bump PE for initial 26.1 support - by Axionize (
f380fcd) - Fix PE 26.1 update (deferred fabric folder) - by Axionize (
9b06c86) - Check if
isPacketInventoryActivewas false before allowing revert - by SamB440 (6a46c35) - Move ElytraA onStartGliding() to before the client version check in PacketEntityAction - by ManInMyVan (
11d572f) - Account for INTERACT_ENTITY being split in 26.1 - by ManInMyVan (
7d9dc86) - Actually check sneaking in MultiInteractA - by ManInMyVan (
89eedbe) - Quilt is a normal client - by ManInMyVan (
77c48f4) - Fix glow squid bounding box - by SamB440 (
10cb176) - Add BadPacketsC to check if the LEAVE_BED packet is valid - by ManInMyVan (
d1b2135) - Fix soul torch collision data - by SamB440 (
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)
- Bump PE to support Bukkit 26.1 servers - by Axionize (
ece9f3c) - Minor changes to PacketHidePlayerInfo - by ManInMyVan (
b55a12c) - RESOURCE_PACK_STATUS is async - by ManInMyVan (
e8dc9ae) - Downgrade PE to fix promise/future execution breaking in PE's netty listeners - by Axionize (
3e07a0e) - Bumped Gradle Wrapper to fix build (#2591) - by Tyler (
890799d) - Fix MYSQL 8 support (#2534)
Fix MYSQL 8 support
Prevent double index error from sending everytime. - by Milan Ensink (
35fe1f0)
- MultiActionsD not checking if the inventory got opened this tick (#2596) - by Bram (
1b60cb8) - Don't check the same value twice - by ManInMyVan (
99dce8c) - Fix incorrect entity metadata indexes - by Axionize (
c169d9c) - Fix teleportAsync detection for old paper and MC versions where method did not exist - by Axionize (
7885555) - 26.1 support (#2553)
only bukkit platform for now - by Cyramek (a9b91e7)
- Bump PE for 26.1.2 support - by Axionize (
f36f870) - Implement fluid count tracker - by cyramek (
f9fdfa7) - Always use main hand for attack packets - by cyramek (
61e9e69) - Don't pass null clientVersion so chunk will use server version for mapping's lookup
broken after recent packetevents update that overriden #set method in Chunk_v1_18 - by cyramek (8dc657a)
- 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)
- Load optional workspace.gradle.kts if present - by Axionize WS1 (
6c3ccb4) - Migrate internal firings to GrimAPI 1.3 channel API (#2612) - by Axionize (
3664f4d) - FastBreak false positive on Vault block (#2610) - by Tyler (
794e120) - Fire GrimPlayerSetbackEvent alongside GrimTeleportEvent - by Axionize WS2 (
a86dedf) - Bump packetevents to 6953c38 (upstream 2.12.2 merge + obfuscation-safe nbt scan) - by Axionize WS1 (
7499d10) - Pass fluid count in our custom chunk reader - by cyramek (
66b3334) - Update DynamicConnecting.java (#2617)
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)
- Bump packetevents to 22c9961 (relocateHandlers respects compress/decompress)
fixes #2552 - by Axionize WS1 (257bffe)
- Fix issues with DynamicConnecting.java with client versions (#2618)
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)
- History rewrite: five backends, session-based, ring-buffer write path + universal config autoupdater (#2622) - by Axionize (
578c784) - Minor Post code cleanup - by ManInMyVan (
053b090) - Don't cancel CLOSE_WINDOW in PacketOrderK - by ManInMyVan (
fbabbf2) - Rename grim.legacy.* @CheckData stable_keys to descriptive names - by Axionize WS1 (
c233a60) - Escape backslashes when emitting double-quoted scalars (#2623) - by Axionize WS1 (
84bd90d) - Fix StackOverflow on isChunkLoaded by routing through ChunkSource (#2568) - by Axionize WS2 (
c88b494) - Kick anyone who sends vv:proxy_details - by ManInMyVan (
3021287) - Revert "kick anyone who sends vv:proxy_details"
This reverts commit 3021287391de4aee964abe5bcf6c452f72f68a7b. - by AoElite (73f63c1)
- Fixed Typo in shulker uncertainty logic (#2630) - by aquip (
2508a34) - Kick anyone who sends vv:proxy_details - by ManInMyVan (
e9c918d) - Add support for URL timeout customization and reimplement via proxy kicking - by AoElite (
fd9e0f8) - Add --name / --match / --grep regex filters to /grim history - by Axionize WS1 (
d591f10) - Bump grim-api pin to 1.3.2.0 - by Axionize WS1 (
2c60aae) - Redstone wall torch should use isLit instead of isPowered - by cyramek (
21f0c3d) - Bump grim-api to 1.3.2.1 - by Axionize WS2 (
17d4d2f) - Check cameraEntity.isSelf() in isTickingReliablyFor - by ManInMyVan (
3e5afef) - Simplify shulker opening/closing - by ManInMyVan (
fc899a3) - Min, not max - by ManInMyVan (
83a6d98) - Happy ghast scale is also clamped - by ManInMyVan (
5254190) - Remove unused import - by ManInMyVan (
145f71c) - Fall back to modrinth for changelog range when push payload missing - by Axionize WS1 (
4c866d0) - Small cleanup - by ManInMyVan (
5a40a06) - Remove unused import - by ManInMyVan (
215a1e6) - Tweak "UrlTimeout" constant for consistency - by AoElite (
addabec) - Update DiscordManager webhook regex to support canary and make timeout configurable - by AoElite (
99e309f) - Check rotations in teleports (#2268) - by ManInMyVan (
717829a) - Make name and stableKey in CheckData not optional - by ManInMyVan (
65d1050) - Only check isSprinting when rewarding in sprint checks - by ManInMyVan (
c549b19) - Use violation setback in SprintA - by ManInMyVan (
6953235) - Bump grim-api to 1.4.0.0 - by Axionize (
cdd490b) - Apply block effects for swim-hop vector (#2648)
apply block effects for swim-hop vector
adjust swim hop constants - by Cyramek (
73c60d0)
- VersionUtil uses providers.exec for git (config-cache compat) - by Axionize (
62b2268) - Anchor N:M intervals at N (#2661) - by Axionize (
5fa803e) - Fire N:M on boundary crossings, not on every flag at the boundary - by Axionize (
36675eb) - Per-command incident cursor (nextBoundary + executedOnce) - by Axionize (
fb4ad7a) - Preserve legacy one-shot command semantics - by Axionize (
20d68c1) - Bump grim-api to 1.5.0.0 - by Axionize (
25d10f4) - Use routed backend check catalog - by Axionize (
29316a7) - Repair legacy history check ids - by Axionize (
70223cd) - Use MySQL reconnecting API build - by Axionize (
ff214a4) - Run check-id repair asynchronously - by Axionize (
e32d091) - Small cleanup - by ManInMyVan (
fdaf096) - Skip onUserLogin when PacketUser is null - by Axionize (
2af658c) - Backport V3-side parity adds (against 2.0) (#2678) - by Axionize (
9b1aa1a) - Bump PE: fix Issue #2670 - by Axionize (
6252fe6) - Allow not having
client-brand.ignored-clientsin config - by ManInMyVan (60d3ecf) - Mark utility classes as @UtilityClass - by ManInMyVan (
fd9e91d) - Make WriteLog$Entry a record - by ManInMyVan (
d501dfe) - Bump PE: fix #2681 - by ManInMyVan (
43db51d) - Make player.stuckSpeedMultiplier a Vector3d
also reduce object allocations - by ManInMyVan (8083f42)
- More object alloc reduction - by ManInMyVan (
d939109) - Mark ChatD as stable - by ManInMyVan (
5869433) - More code cleanup - by ManInMyVan (
935668a) - Mark some listeners as pre-via - by ManInMyVan (
ce89791) - 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
- Remove leftover comments from testing
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)
- Use lombok getter for CompensatedInventory.startOfTickStack - by ManInMyVan (
199b673) - Don't box if we don't need to - by ManInMyVan (
bebccfa) - Make chat checks and BadPacketsM pre-via - by ManInMyVan (
21f1534)
♻️ Refactoring
- Refactor plugin message wrappers - by ManInMyVan (
5f8692d) - Refactor via 1.11->1.10 chat hook - by ManInMyVan (
fc47c5b) - Refactor BlockBreakSpeed class for improved maintainability - by AoElite (
0d22e34) - Refactor BlockEffectsResolver to accept movement list - by cyramek (
29d28c6)
🐛 Fixes
- Fix some warnings - by ManInMyVan (
0321e0b) - Fix #2294 - by ManInMyVan (
832194a) - Fix GrimDebug command exception if the sender is exempt or not found - by AoElite (
2fa022e) - Fix offground precision loss <= 1.20.4
we're now in 1e-15 average - by cyramek (7461aca)
- Useless player fetch (#2329) - by Szypkoo (
115c329) - Fix #2330 - by ManInMyVan (
17cf067) - World isLoaded throws method not found (#2372) - by Nils Gereke (
403fd36) - Fix null pointer when checking if bread was a setback - by AoElite (
a1b4893) - Fix incorrect EquipmentSlot mappings in isGlider logic - by AoElite (
d96d683) - Exclude Azalea from Sapling hitbox definitions - by Axionize (
4a104e2) - Bubble Column, Azalea, Bed, and Ceiling Wall Sign hit/collision boxes - by Axionize (
c019566) - Bump gradle wrapper to fix build - by Axionize (
c2afc62) - Fix NPE due to incorrect initialization order - by cyramek (
9e745fd) - Fix elytra packet abuse on 1.8 servers - by ManInMyVan (
f95d877) - Honor per-check nomodifypacket (#2477) - by runningbird2 (
f118b5c) - Fix many issues with collisions while riding nautilus/happyghast (#2460)
thanks LaserSlime and Axionize for help! - by Cyramek (302bed1)
- Fix noslow with invalid drop item packets - by ManInMyVan (
48115eb) - Fix #2563 - by ManInMyVan (
cd3576b) - Fix #1990 - by ManInMyVan (
b9da63c) - Fix #2579 - by ManInMyVan (
13ad8bd) - Fix PacketOrderC viabackwards false - by ManInMyVan (
fc75e51) - Fix bouncy blocks (#2473) - by Cyramek (
19c12b7) - Fix typo in MultiActionsC - by ManInMyVan (
8861589) - Fix page length check (#2637) - by Captain-S0L0 (
f81e183) - Fix shulker & dragon scale attrubute - by ManInMyVan (
3d95fea) - 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)
- Fix 1.21.11 spigot support - by ManInMyVan (
7d823f5) - Fix swim hops while riding an entity that can float on water - by cyramek (
ce86075) - Fix 1.21.11 trigonometry (#2644)
new trig lookup table just dropped - by Cyramek (494e9c5)
- Fix 26.1 spigot support - by ManInMyVan (
7ccff01) - Fix BadPacketsM falses - by ManInMyVan (
3cd17cc) - Fix golden dandelion in a flower pot collision - by cyramek (
02f1dc3) - Fix entity boundingbox replication regression (#2642)
fix entity boundingbox replication regression
check if tick end event exists - by Cyramek (
8a3767b)
- Fix compensatedCamera with respawn packets - by ManInMyVan (
7a7e07f) - Fix recent vialegacy update causing falses - by ManInMyVan (
c156c00) - Fix precision loss while swimming in a flowing fluid (#2668)
we're in E-15 now on average - by Cyramek (f3ed3b2)
- Fix 1.8 wither skeleton hitbox - by ManInMyVan (
fdd734a) - Fix #2677 - by ManInMyVan (
34c41db) - Fix precision loss in <=1.19.3 - by cyramek (
635708a) - Fix 1.21.11 clients flagging reach on 1.8 servers - by ManInMyVan (
edc3987)
🚀 Features
- Support for postgresql (#2368) - by Nils Gereke (
c2c044f) - Discord forum channel support (#2380) - by Nils Gereke (
bf637f5) - Add Fabric piston event support (#2619) - by aquip (
75cc402)
🤖 Maintenance & CI
- Bump shadow - by Axionize (
955b725) - Increase default building memory allocation - by Axionize (
55da384) - Bump PE - by Axionize (
b6f9f86)
2.3.74-2.0-21f1534Альфа26.1, 26.1.1, 26.1.2 · 26 мая 2026 г.
Changes in this Build (since previous push)
Miscellaneous
- Ensure the short commit is used - by AoElite (
ce6e1d3) - Any 200 status codes are acceptable - by AoElite (
163e120) - Allow the embed images to be customizable and show grim's version in the footer - by AoElite (
5c46021) - Slightly more configurable webhook embed - by ManInMyVan (
6385460) - Ignore unhittable entities for block placements - by AoElite (
8d7a4cc) - Bump Gradle to 9.1.0 - by SamB440 (
322d256) - CancelLerp fixed in 1.21.9, apparently - by SamB440 (
bb143d7) - Correct bounding box calculations for baby turtles, happy ghasts, dolphins, armadillos, and camels - by cyramek (
2e1c79b) - Don't specify baby scale factor twice - by ManInMyVan (
6a223a3) - CHUNK_BATCH_ACK is async - by ManInMyVan (
d538c59) - Add 2 more rules to .editorconfig - by ManInMyVan (
1317ae0) - Fix ClassNotFoundException with new ChatB Via rewriter hook - by Axionize (
4d6ac75) - Use FastUtil Map for violations - by Axionize (
ca6e83d) - More fastutil micro optimizations - by Axionize (
5551ef6) - Fix Fabric Auto JiJ script - by Axionize (
41c7e41) - Require CHUNK_BATCH_ACK be sent only when it's supposed to be sent - by ManInMyVan (
bbab7e2) - Check if we're already sending a bundle packet - by ManInMyVan (
e222df8) - [1.21.10] Rewrite block effects, LpVector support, partially implemented collision boxes (#2300) - by Cyramek (
0237f95) - Get rid of a buffer in vector format conversion - by cyramek (
a2f4dc1) - Support copper variants of chains - by cyramek (
44900e5) - Add translations for the
sender-not-foundmessage - by AoElite (f381805) - Refactor Grim startup/system args handling - by Axionize (
faf2fb3) - 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)
- Micro optimize DefaultResyncHandler - by Axionize (
1eae548) - Optimize new object creation on vector add() calls - by Axionize (
15e8098) - Optimize new Vector3dm() multiply calls - by Axionize (
26492fd) - Mark ElytraB as stable - by ManInMyVan (
8a6863b) - Mark ElytraC as stable - by ManInMyVan (
3f19abc) - Mark ElytraA as stable - by ManInMyVan (
d0aafdd) - Mark ElytraF as stable - by ManInMyVan (
79bf7e4) - Remove double space in ChatB - by ManInMyVan (
6e5ec33) - Mark PositionBreakB as stable - by ManInMyVan (
89cf181) - Mark MultiActionsC as stable - by ManInMyVan (
a82f2b8) - Mark MultiActionsD as stable - by ManInMyVan (
a86bf57) - Possibly fix build - by ManInMyVan (
9ba4052) - Clear active item before updating inventory on legacy (#2317)
Apply spotless
Clear active item before updating inventory on legacy - by BT (calcastor/mame) (
b69906f)
- Allow up to one PLAYER_INPUT per tick (#2306) - by ManInMyVan (
1b47e31) - Add shelf collision box - by ManInMyVan (
4f3e715) - Add copper golem statue collision box - by ManInMyVan (
a76bf9c) - 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)
- We do not need high bound if player ticks reliably. - by SamB440 (
f8a5315) - Switch to mojmap for fabric
see https://fabricmc.net/2025/10/31/obfuscation.html - by ManInMyVan (b373e5f)
- Slight cleanup of fabric code - by ManInMyVan (
0df77dd) - Reorder publication of artifacts to Modrinth and update supported versions - by Axionize (
bfd2bd0) - Show size for applicable reach/hitbox flags - by ManInMyVan (
6280b28) - Don't simulate movement in unloaded chunks?
Who knows what other problems this could cause... - by SamB440 (0ba3317)
- Bump cloud to beta.13, fixes #2318 - by SamB440 (
c323cf0) - Disable PacketOrderP, fixes #2327 - by SamB440 (
ea1f161) - New translation ro.yml (#2285)
Config Romanian translation for grim ac. - by ItzBloxxy (918e657)
- Disable ExploitB "invalid page characters" check - by ManInMyVan (
def2163) - Small piston optimization - by AoElite (
ba1d1db) - Tweak GrimDump output and include some non-default alert settings - by AoElite (
5c71531) - Hopefully make installation instructions more clear
also moves it higher on the page - by ManInMyVan (b14628c)
- Make sure that we use packet-based inventory state after closing the inventory - by cyramek (
a46d296) - Update CrashC.java (#2350) - by Weigurde (
6df484b) - Bump PacketEvents version - by Axionize (
9b500a2) - Migrate workflows to tenki (#2362) - by tenki-cloud[bot] (
e1bd2ed) - Remove some unnecessary publishing paths - by AoElite (
3380d7f) - Optimise bounding box calculations - by cyramek (
3f67272) - Setback changes - by SamB440 (
8ddd7f1) - Improve bypass template - by ManInMyVan (
ba91251) - More consistent issue templates - by ManInMyVan (
499bf7e) - 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.
- Fix player gamemode reset bug
When spectating a player in another dimension, you would previously get set to survival mode, this is now fixed. - by GroupXyz (3fc985c)
- Fixed Reach false positive with Happy Ghast and clients under 1.21.6 (#2352) - by Greened (
e386b93) - Bump PacketEvents version - by Axionize (
2d785fd) - Make discord webhook pattern stricter and support different api versions - by AoElite (
3bf3226) - Update lunar's brand format in all the configs - by AoElite (
2d053d0) - More setback changes - by SamB440 (
4d28f85) - Adjust canGlide logic to try to improve compatibility - by AoElite (
679e869) - Adjust isGlider logic to account for items that can't be depleted - by AoElite (
acf273f) - Revert "fix incorrect EquipmentSlot mappings in isGlider logic"
This reverts commit d96d683b14150d6e0f486a63cf1a74c417c6a84b. - by AoElite (0153ce3)
- Refactor repo logic to support mavenLocalOverride - by Axionize (
965008f) - Bump PE - by Axionize (
12f6af3) - Add initial support for 1.21.11 and update dependencies - by Axionize (
97b8758) - Fix gliders not working in offhand slot (#2397) - by iLemon (
32f607b) - Bump github actions-upload-artifact versions - by Axionize (
9bd12cc) - Make runner configurable to work around Tenki issues (#2398) - by Axionize (
f772b74) - Fix NPE when Spigot late-bind option is enabled & improve injection logic
This PR fixes a NullPointerException that occurred when the Spigot "late-bind" option was enabled on servers prior to 1.14.4.
Changes:
Changed injection priority: The plugin now attempts to register the Paper TickEndEvent first. It only falls back to NMS reflection if the Paper API is unavailable.
Added a null check for the server connection instance to prevent the NPE during reflection injection.
Added specific error logging: If injection fails on legacy servers (< 1.14.4), the plugin now reflectively checks
spigot.ymlsettings to explicitly warn the user iflate-bindis the cause.Refactored reflection logic to use
ReflectionUtilsfor better safety and code cleanliness. - by uRyanxD (5f02ccc)Bump PE - by Axionize (
92d06e4)Build ci changes - by Axionize (
9626712)Cache map values for performance (#2407) - by Rothes (
8f0036e)Clean up OptifineFastMath.java a bit - by ManInMyVan (
2d8def6)Support CAMERA packet (#2303) - by ManInMyVan (
d374c2b)Add PlatformPlayerFactory#getOfflinePlayers() - by Axionize (
ce0dad5)Stash work - by Axionize (
90193b4)Fix reach regression in not flagging clients from versions 1.15 to 1.20.1 due to rot only regression - by Axionize (
60b70d1)Merge branch 'fix/reach-infinite-expanding-hitbox' into 2.0 - by Axionize (
4292e93)Use config history.database.port for database connection port. Fixes #2415 - by SamB440 (
42b6630)Prevent torn reads and race condition on respawn on Fabric from reconstruction of ServerPlayerEntity - by Axionize (
101473b)Resync on netty thread instead of trying to send packets in region thread - by Axionize (
80f90e6)Add option to disable resyncing without API with a NoOp resync handler - by Axionize (
7c68947)Fix Sculk Vein replacement Phase/Simulation falses & Optimize canBeReplaced logic
Added replacement logic for SCULK_VEIN (mirrors GLOW_LICHEN).
Refactored sequential 'if' statements into an 'else-if' chain to improve branch prediction and allow early exits.
Reordered block checks based on frequency (Slabs, Snow, and Vines are now checked first).
Merged duplicate logic for multiface blocks. - by Axionize (
b79d5fd)Only update profiles if PLAYER_INFO_UPDATE contains ADD_PLAYER action - by Axionize (
d0b30de)Patch FabricatedPlace falses - by Axionize (
98fd065)Make CrashC verbose more consistent with other checks - by ManInMyVan (
6186abc)Improve FabricatedPlace patch - by Axionize (
07d2010)Attempt to fix disconnect.timeout cascade issues - by Axionize (
639490a)Fix Mushroom and Fungus Hitboxes - by Axionize (
14573da)Fix Coral hitboxes - by Axionize (
a2074d0)Add forgotten util class file for hitbox fix - by Axionize (
8016586)Fix merge errors in hitbox patch - by Axionize (
ca64aab)Update .gitignore - by Axionize (
be35b9b)Fix rot only accounting for reach/hitbox in 1.15 - 1.20.1 and 1.21.5 - 1.21.8 once and for all - by Axionize (
9cb4547)Temporary fix for Folia breaking getTPS() - by Axionize (
dbd7510)Faster temporary fix for Folia breaking getTPS() - by Axionize (
02f6a3b)Add Back Support for Legacy API (#2409)
Add back support for the legacy API temporarily
Bump API to release version - by Axionize (
95e2774)
- 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
- fix 0.03 fluid pushing
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:
- rot packet with PLAYER look angle
- vehicle move packet with ENTITY look angle
vehicle move packet overrides player's yaw and pitch from first rot packet
- implement all prediction engines for nautilus
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)
- Unify all APIs - by Axionize (
c5855fd) - Fix support for messing legacy getGrimUser(Player player) method - by Axionize (
8001f6c) - Bump PE - by Axionize (
21f6988) - Bump API to no longer shade Player shim - by Axionize (
50a25d9) - Command API fallback handling - by Axionize (
08770f0) - Refactor Fabric to make permissions API and cloud optional dependencies - by Axionize (
b9fa89c) - Fabric 1.21.11 support for fabric-permissions-api-v0 not being included - by Axionize (
075cec8) - Update supported fabric versions - by Axionize (
3659060) - Bump PE - by Axionize (
a54329a) - Fix early init of CommandManager on Bukkit causing startup issues - by Axionize (
fefe0d1) - Rename Fabric mc1211 -> mc12111 module - by Axionize (
9d1682d) - Fix fast break false when switching tools via shulker box (#2454) - by Ayou (
c043357) - Revert this for now, until we find a better way to fix it - by cyramek (
b7a719d) - Don't let player reuse setback velocity (fixes #2445) (#2450) - by SamB440 (
cd86c14) - Rename Fabric1211PlatformServer -> Fabric12111PlatformServer - by Axionize (
88cfffc) - Refactor Resolver Lifecycle - by Axionize (
35174fd) - Evoker fangs are unhittable - by SamB440 (
80afaae) - Bump PE: Fixes Packet Ordering and mapping issues
- Previa packet mapping failing due to incorrect upstream call to getPacketVersion() instead of getClientVersion(), affects previa on all versions
- Fix Krypton + Via + Grim compat form listener relocation - by Axionize (
6c49a01) - Add method exposing int block type from CompensatedWorld (#2464)
Implement feature
Update common/src/main/java/ac/grim/grimac/utils/latency/CompensatedWorld.java
Co-authored-by: ManInMyVan 113963219+ManInMyVan@users.noreply.github.com
- Add @Override annotation
Co-authored-by: ManInMyVan 113963219+ManInMyVan@users.noreply.github.com - by Cubicake (2b62148)
- Add /grim testwebhook - by ManInMyVan (
327b947) - Improve comments in Chinese configuration file (#2490)
Updated comments in zh.yml for clarity and translation. - by MatrixU5er (b65b7f0)
- Load after ZNPCsPlus - by ManInMyVan (
1d0cbb7) - Bump grim-api version - by AoElite (
7be8f51) - Update Grim API to 1.2.4.0 - by Axionize (
4ca65b1) - Fix getting hitbox for unstable scaffolding - by Axionize (
f0fbc9d) - History rewrite marker - by Axionize (
7d487a4) - Add support for attribute swapping to and from items with attack range components - by Axionize (
b281a2d) - Update translation - by tjshtqwq (
c2acfae) - 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) - Add Polish configuration file for GrimAC (#2501)
Co-authored-by: DawixTV 92529087+DawixTV@users.noreply.github.com - by dxw1d (272a889)
- Revert "load after ZNPCsPlus"
This reverts commit 1d0cbb7078205b0b265a8ae6047bd304811ed130. - by ManInMyVan (c7983b7)
- Remove unused imports in Reach.java - by ManInMyVan (
d273229) - Fix Discord Webhook PAPI Placeholders (#2518)
Fix support for Discord markdown parsing of several edge cases
Fix PAPI name mangling
Cleanup Implementation of new Discord Webhook handling
Document exploit choice to not use volatile when technically correct to
Address all code review concerns
Cleanup unused code
Refactor packages for discord related data types - by Axionize (
c356f5f)
- Fix compile issues from package references not being refactored in Discord refactor - by Axionize (
53cf3e8) - Discord.yml translation fixes - by Axionize (
d4611f1) - Add support disable-webhook-validation boolean in discord.yml for custom domains with Discord webhooks
Closes https://github.com/GrimAnticheat/Grim/issues/2520 - by Axionize (879d566)
- Account for 1.21.2+ clients ignoring teleport packets while in vehicle (#2470)
fix: https://github.com/GrimAnticheat/Grim/issues/2463 - by Cyramek (8a0d1e2)
- Bump version to 2.3.74 - by cyramek (
546abf0) - Add support for viaversion attack range component for 1.21.11+ clients on legacy servers (#2474)
add support for https://github.com/ViaVersion/ViaVersion/pull/4733 - by Cyramek (7e8b6b6)
- Fix encoding of Polymer blocks breaking when resyncing with world, optimize allocations Fabric PlatformChunk.getBlockId(x,y,z) - by Axionize (
0a1ce1d) - Reset food level on respawn (#2528) - by SamB440 (
5749463) - Fix ghost block mitigation on floating block placement (#2530) - by RareMen (
13fb273) - Exempt spectators in 1.21.11+ from PacketOrderB (fixes #2493) - by ManInMyVan (
29c0757) - Slightly change BadPacketsP description - by ManInMyVan (
539e822) - Rename BadPacketsC to SelfInteract - by ManInMyVan (
177c003) - Set CheckManager#packetEntityReplication on init - by ManInMyVan (
3055cd1) - Make TransactionOrder verbose consistent with other checks - by ManInMyVan (
68f34f2) - Require hand to be MAIN_HAND in PacketOrderB - by ManInMyVan (
598aae0) - 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)
- Footer text does not get parsed as markdown - by ManInMyVan (
e40ec01) - Bump Kotlin Plugin Serialization 2.3.0 - by Axionize (
5f9b9dd) - Make DefaultResyncHandler a record - by Axionize (
740f7f4) - Spear stabs are attacks, handle them as such - by ManInMyVan (
bf10e23) - Add separate logic for publishing release builds in workflow - by AoElite (
f0e15b0) - Bump PE for initial 26.1 support - by Axionize (
f380fcd) - Fix PE 26.1 update (deferred fabric folder) - by Axionize (
9b06c86) - Check if
isPacketInventoryActivewas false before allowing revert - by SamB440 (6a46c35) - Move ElytraA onStartGliding() to before the client version check in PacketEntityAction - by ManInMyVan (
11d572f) - Account for INTERACT_ENTITY being split in 26.1 - by ManInMyVan (
7d9dc86) - Actually check sneaking in MultiInteractA - by ManInMyVan (
89eedbe) - Quilt is a normal client - by ManInMyVan (
77c48f4) - Fix glow squid bounding box - by SamB440 (
10cb176) - Add BadPacketsC to check if the LEAVE_BED packet is valid - by ManInMyVan (
d1b2135) - Fix soul torch collision data - by SamB440 (
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)
- Bump PE to support Bukkit 26.1 servers - by Axionize (
ece9f3c) - Minor changes to PacketHidePlayerInfo - by ManInMyVan (
b55a12c) - RESOURCE_PACK_STATUS is async - by ManInMyVan (
e8dc9ae) - Downgrade PE to fix promise/future execution breaking in PE's netty listeners - by Axionize (
3e07a0e) - Bumped Gradle Wrapper to fix build (#2591) - by Tyler (
890799d) - Fix MYSQL 8 support (#2534)
Fix MYSQL 8 support
Prevent double index error from sending everytime. - by Milan Ensink (
35fe1f0)
- MultiActionsD not checking if the inventory got opened this tick (#2596) - by Bram (
1b60cb8) - Don't check the same value twice - by ManInMyVan (
99dce8c) - Fix incorrect entity metadata indexes - by Axionize (
c169d9c) - Fix teleportAsync detection for old paper and MC versions where method did not exist - by Axionize (
7885555) - 26.1 support (#2553)
only bukkit platform for now - by Cyramek (a9b91e7)
- Bump PE for 26.1.2 support - by Axionize (
f36f870) - Implement fluid count tracker - by cyramek (
f9fdfa7) - Always use main hand for attack packets - by cyramek (
61e9e69) - Don't pass null clientVersion so chunk will use server version for mapping's lookup
broken after recent packetevents update that overriden #set method in Chunk_v1_18 - by cyramek (8dc657a)
- 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)
- Load optional workspace.gradle.kts if present - by Axionize WS1 (
6c3ccb4) - Migrate internal firings to GrimAPI 1.3 channel API (#2612) - by Axionize (
3664f4d) - FastBreak false positive on Vault block (#2610) - by Tyler (
794e120) - Fire GrimPlayerSetbackEvent alongside GrimTeleportEvent - by Axionize WS2 (
a86dedf) - Bump packetevents to 6953c38 (upstream 2.12.2 merge + obfuscation-safe nbt scan) - by Axionize WS1 (
7499d10) - Pass fluid count in our custom chunk reader - by cyramek (
66b3334) - Update DynamicConnecting.java (#2617)
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)
- Bump packetevents to 22c9961 (relocateHandlers respects compress/decompress)
fixes #2552 - by Axionize WS1 (257bffe)
- Fix issues with DynamicConnecting.java with client versions (#2618)
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)
- History rewrite: five backends, session-based, ring-buffer write path + universal config autoupdater (#2622) - by Axionize (
578c784) - Minor Post code cleanup - by ManInMyVan (
053b090) - Don't cancel CLOSE_WINDOW in PacketOrderK - by ManInMyVan (
fbabbf2) - Rename grim.legacy.* @CheckData stable_keys to descriptive names - by Axionize WS1 (
c233a60) - Escape backslashes when emitting double-quoted scalars (#2623) - by Axionize WS1 (
84bd90d) - Fix StackOverflow on isChunkLoaded by routing through ChunkSource (#2568) - by Axionize WS2 (
c88b494) - Kick anyone who sends vv:proxy_details - by ManInMyVan (
3021287) - Revert "kick anyone who sends vv:proxy_details"
This reverts commit 3021287391de4aee964abe5bcf6c452f72f68a7b. - by AoElite (73f63c1)
- Fixed Typo in shulker uncertainty logic (#2630) - by aquip (
2508a34) - Kick anyone who sends vv:proxy_details - by ManInMyVan (
e9c918d) - Add support for URL timeout customization and reimplement via proxy kicking - by AoElite (
fd9e0f8) - Add --name / --match / --grep regex filters to /grim history - by Axionize WS1 (
d591f10) - Bump grim-api pin to 1.3.2.0 - by Axionize WS1 (
2c60aae) - Redstone wall torch should use isLit instead of isPowered - by cyramek (
21f0c3d) - Bump grim-api to 1.3.2.1 - by Axionize WS2 (
17d4d2f) - Check cameraEntity.isSelf() in isTickingReliablyFor - by ManInMyVan (
3e5afef) - Simplify shulker opening/closing - by ManInMyVan (
fc899a3) - Min, not max - by ManInMyVan (
83a6d98) - Happy ghast scale is also clamped - by ManInMyVan (
5254190) - Remove unused import - by ManInMyVan (
145f71c) - Fall back to modrinth for changelog range when push payload missing - by Axionize WS1 (
4c866d0) - Small cleanup - by ManInMyVan (
5a40a06) - Remove unused import - by ManInMyVan (
215a1e6) - Tweak "UrlTimeout" constant for consistency - by AoElite (
addabec) - Update DiscordManager webhook regex to support canary and make timeout configurable - by AoElite (
99e309f) - Check rotations in teleports (#2268) - by ManInMyVan (
717829a) - Make name and stableKey in CheckData not optional - by ManInMyVan (
65d1050) - Only check isSprinting when rewarding in sprint checks - by ManInMyVan (
c549b19) - Use violation setback in SprintA - by ManInMyVan (
6953235) - Bump grim-api to 1.4.0.0 - by Axionize (
cdd490b) - Apply block effects for swim-hop vector (#2648)
apply block effects for swim-hop vector
adjust swim hop constants - by Cyramek (
73c60d0)
- VersionUtil uses providers.exec for git (config-cache compat) - by Axionize (
62b2268) - Anchor N:M intervals at N (#2661) - by Axionize (
5fa803e) - Fire N:M on boundary crossings, not on every flag at the boundary - by Axionize (
36675eb) - Per-command incident cursor (nextBoundary + executedOnce) - by Axionize (
fb4ad7a) - Preserve legacy one-shot command semantics - by Axionize (
20d68c1) - Bump grim-api to 1.5.0.0 - by Axionize (
25d10f4) - Use routed backend check catalog - by Axionize (
29316a7) - Repair legacy history check ids - by Axionize (
70223cd) - Use MySQL reconnecting API build - by Axionize (
ff214a4) - Run check-id repair asynchronously - by Axionize (
e32d091) - Small cleanup - by ManInMyVan (
fdaf096) - Skip onUserLogin when PacketUser is null - by Axionize (
2af658c) - Backport V3-side parity adds (against 2.0) (#2678) - by Axionize (
9b1aa1a) - Bump PE: fix Issue #2670 - by Axionize (
6252fe6) - Allow not having
client-brand.ignored-clientsin config - by ManInMyVan (60d3ecf) - Mark utility classes as @UtilityClass - by ManInMyVan (
fd9e91d) - Make WriteLog$Entry a record - by ManInMyVan (
d501dfe) - Bump PE: fix #2681 - by ManInMyVan (
43db51d) - Make player.stuckSpeedMultiplier a Vector3d
also reduce object allocations - by ManInMyVan (8083f42)
- More object alloc reduction - by ManInMyVan (
d939109) - Mark ChatD as stable - by ManInMyVan (
5869433) - More code cleanup - by ManInMyVan (
935668a) - Mark some listeners as pre-via - by ManInMyVan (
ce89791) - 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
- Remove leftover comments from testing
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)
- Use lombok getter for CompensatedInventory.startOfTickStack - by ManInMyVan (
199b673) - Don't box if we don't need to - by ManInMyVan (
bebccfa) - Make chat checks and BadPacketsM pre-via - by ManInMyVan (
21f1534)
♻️ Refactoring
- Refactor plugin message wrappers - by ManInMyVan (
5f8692d) - Refactor via 1.11->1.10 chat hook - by ManInMyVan (
fc47c5b) - Refactor BlockBreakSpeed class for improved maintainability - by AoElite (
0d22e34) - Refactor BlockEffectsResolver to accept movement list - by cyramek (
29d28c6)
🐛 Fixes
- Fix some warnings - by ManInMyVan (
0321e0b) - Fix #2294 - by ManInMyVan (
832194a) - Fix GrimDebug command exception if the sender is exempt or not found - by AoElite (
2fa022e) - Fix offground precision loss <= 1.20.4
we're now in 1e-15 average - by cyramek (7461aca)
- Useless player fetch (#2329) - by Szypkoo (
115c329) - Fix #2330 - by ManInMyVan (
17cf067) - World isLoaded throws method not found (#2372) - by Nils Gereke (
403fd36) - Fix null pointer when checking if bread was a setback - by AoElite (
a1b4893) - Fix incorrect EquipmentSlot mappings in isGlider logic - by AoElite (
d96d683) - Exclude Azalea from Sapling hitbox definitions - by Axionize (
4a104e2) - Bubble Column, Azalea, Bed, and Ceiling Wall Sign hit/collision boxes - by Axionize (
c019566) - Bump gradle wrapper to fix build - by Axionize (
c2afc62) - Fix NPE due to incorrect initialization order - by cyramek (
9e745fd) - Fix elytra packet abuse on 1.8 servers - by ManInMyVan (
f95d877) - Honor per-check nomodifypacket (#2477) - by runningbird2 (
f118b5c) - Fix many issues with collisions while riding nautilus/happyghast (#2460)
thanks LaserSlime and Axionize for help! - by Cyramek (302bed1)
- Fix noslow with invalid drop item packets - by ManInMyVan (
48115eb) - Fix #2563 - by ManInMyVan (
cd3576b) - Fix #1990 - by ManInMyVan (
b9da63c) - Fix #2579 - by ManInMyVan (
13ad8bd) - Fix PacketOrderC viabackwards false - by ManInMyVan (
fc75e51) - Fix bouncy blocks (#2473) - by Cyramek (
19c12b7) - Fix typo in MultiActionsC - by ManInMyVan (
8861589) - Fix page length check (#2637) - by Captain-S0L0 (
f81e183) - Fix shulker & dragon scale attrubute - by ManInMyVan (
3d95fea) - 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)
- Fix 1.21.11 spigot support - by ManInMyVan (
7d823f5) - Fix swim hops while riding an entity that can float on water - by cyramek (
ce86075) - Fix 1.21.11 trigonometry (#2644)
new trig lookup table just dropped - by Cyramek (494e9c5)
- Fix 26.1 spigot support - by ManInMyVan (
7ccff01) - Fix BadPacketsM falses - by ManInMyVan (
3cd17cc) - Fix golden dandelion in a flower pot collision - by cyramek (
02f1dc3) - Fix entity boundingbox replication regression (#2642)
fix entity boundingbox replication regression
check if tick end event exists - by Cyramek (
8a3767b)
- Fix compensatedCamera with respawn packets - by ManInMyVan (
7a7e07f) - Fix recent vialegacy update causing falses - by ManInMyVan (
c156c00) - Fix precision loss while swimming in a flowing fluid (#2668)
we're in E-15 now on average - by Cyramek (f3ed3b2)
- Fix 1.8 wither skeleton hitbox - by ManInMyVan (
fdd734a) - Fix #2677 - by ManInMyVan (
34c41db) - Fix precision loss in <=1.19.3 - by cyramek (
635708a) - Fix 1.21.11 clients flagging reach on 1.8 servers - by ManInMyVan (
edc3987)
🚀 Features
- Support for postgresql (#2368) - by Nils Gereke (
c2c044f) - Discord forum channel support (#2380) - by Nils Gereke (
bf637f5) - Add Fabric piston event support (#2619) - by aquip (
75cc402)
🤖 Maintenance & CI
- Bump shadow - by Axionize (
955b725) - Increase default building memory allocation - by Axionize (
55da384) - Bump PE - by Axionize (
b6f9f86)
2.3.74-65815fc-b98Альфа1.21.8, 1.21.9, 1.21.10 · 15 апреля 2026 г.
Changes in this Build (since previous push)
Miscellaneous
- Fix getting hitbox for unstable scaffolding - by Axionize (
f0fbc9d) - History rewrite marker - by Axionize (
7d487a4) - Add support for attribute swapping to and from items with attack range components - by Axionize (
b281a2d) - Update translation - by tjshtqwq (
c2acfae) - 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) - Add Polish configuration file for GrimAC (#2501)
Co-authored-by: DawixTV 92529087+DawixTV@users.noreply.github.com - by dxw1d (272a889)
- Revert "load after ZNPCsPlus"
This reverts commit 1d0cbb7078205b0b265a8ae6047bd304811ed130. - by ManInMyVan (c7983b7)
- Remove unused imports in Reach.java - by ManInMyVan (
d273229) - Fix Discord Webhook PAPI Placeholders (#2518)
Fix support for Discord markdown parsing of several edge cases
Fix PAPI name mangling
Cleanup Implementation of new Discord Webhook handling
Document exploit choice to not use volatile when technically correct to
Address all code review concerns
Cleanup unused code
Refactor packages for discord related data types - by Axionize (
c356f5f)
- Fix compile issues from package references not being refactored in Discord refactor - by Axionize (
53cf3e8) - Discord.yml translation fixes - by Axionize (
d4611f1) - Add support disable-webhook-validation boolean in discord.yml for custom domains with Discord webhooks
Closes https://github.com/GrimAnticheat/Grim/issues/2520 - by Axionize (879d566)
- Account for 1.21.2+ clients ignoring teleport packets while in vehicle (#2470)
fix: https://github.com/GrimAnticheat/Grim/issues/2463 - by Cyramek (8a0d1e2)
- Bump version to 2.3.74 - by cyramek (
546abf0) - Add support for viaversion attack range component for 1.21.11+ clients on legacy servers (#2474)
add support for https://github.com/ViaVersion/ViaVersion/pull/4733 - by Cyramek (7e8b6b6)
- Fix encoding of Polymer blocks breaking when resyncing with world, optimize allocations Fabric PlatformChunk.getBlockId(x,y,z) - by Axionize (
0a1ce1d) - Reset food level on respawn (#2528) - by SamB440 (
5749463) - Fix ghost block mitigation on floating block placement (#2530) - by RareMen (
13fb273) - Exempt spectators in 1.21.11+ from PacketOrderB (fixes #2493) - by ManInMyVan (
29c0757) - Slightly change BadPacketsP description - by ManInMyVan (
539e822) - Rename BadPacketsC to SelfInteract - by ManInMyVan (
177c003) - Set CheckManager#packetEntityReplication on init - by ManInMyVan (
3055cd1) - Make TransactionOrder verbose consistent with other checks - by ManInMyVan (
68f34f2) - Require hand to be MAIN_HAND in PacketOrderB - by ManInMyVan (
598aae0) - 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)
- Footer text does not get parsed as markdown - by ManInMyVan (
e40ec01) - Bump Kotlin Plugin Serialization 2.3.0 - by Axionize (
5f9b9dd) - Make DefaultResyncHandler a record - by Axionize (
740f7f4) - Merge branch '2.0' into lightning
Conflicts:
common/src/main/java/ac/grim/grimac/checks/impl/combat/Reach.java
common/src/main/java/ac/grim/grimac/manager/CheckManager.java
common/src/main/java/ac/grim/grimac/player/GrimPlayer.java - by Axionize (162a8d1)
- Fix compilation issues, eliminate allocations and fix distanceSquared() > 36 instead of 6 - by Axionize (
5efefe5) - Spear stabs are attacks, handle them as such - by ManInMyVan (
bf10e23) - Add separate logic for publishing release builds in workflow - by AoElite (
f0e15b0) - Bump PE for initial 26.1 support - by Axionize (
f380fcd) - Fix PE 26.1 update (deferred fabric folder) - by Axionize (
9b06c86) - Check if
isPacketInventoryActivewas false before allowing revert - by SamB440 (6a46c35) - Move ElytraA onStartGliding() to before the client version check in PacketEntityAction - by ManInMyVan (
11d572f) - Account for INTERACT_ENTITY being split in 26.1 - by ManInMyVan (
7d9dc86) - Actually check sneaking in MultiInteractA - by ManInMyVan (
89eedbe) - Quilt is a normal client - by ManInMyVan (
77c48f4) - Fix glow squid bounding box - by SamB440 (
10cb176) - Add BadPacketsC to check if the LEAVE_BED packet is valid - by ManInMyVan (
d1b2135) - Fix soul torch collision data - by SamB440 (
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)
- Bump PE to support Bukkit 26.1 servers - by Axionize (
ece9f3c) - Minor changes to PacketHidePlayerInfo - by ManInMyVan (
b55a12c) - RESOURCE_PACK_STATUS is async - by ManInMyVan (
e8dc9ae) - Downgrade PE to fix promise/future execution breaking in PE's netty listeners - by Axionize (
3e07a0e) - Bumped Gradle Wrapper to fix build (#2591) - by Tyler (
890799d) - Fix MYSQL 8 support (#2534)
Fix MYSQL 8 support
Prevent double index error from sending everytime. - by Milan Ensink (
35fe1f0)
- MultiActionsD not checking if the inventory got opened this tick (#2596) - by Bram (
1b60cb8) - Don't check the same value twice - by ManInMyVan (
99dce8c) - Fix incorrect entity metadata indexes - by Axionize (
c169d9c) - Merge remote-tracking branch 'origin/2.0' into lightning
Conflicts:
common/src/main/java/ac/grim/grimac/checks/impl/combat/Reach.java - by Axionize (65815fc)
🐛 Fixes
- Fix many issues with collisions while riding nautilus/happyghast (#2460)
thanks LaserSlime and Axionize for help! - by Cyramek (302bed1)
- Fix noslow with invalid drop item packets - by ManInMyVan (
48115eb) - Fix #2563 - by ManInMyVan (
cd3576b) - Fix #1990 - by ManInMyVan (
b9da63c) - Fix #2579 - by ManInMyVan (
13ad8bd) - Fix PacketOrderC viabackwards false - by ManInMyVan (
fc75e51)
2.3.74-65815fc-b98Альфа1.21.9, 1.21.10, 1.21.11 · 15 апреля 2026 г.
Changes in this Build (since previous push)
Miscellaneous
- Fix getting hitbox for unstable scaffolding - by Axionize (
f0fbc9d) - History rewrite marker - by Axionize (
7d487a4) - Add support for attribute swapping to and from items with attack range components - by Axionize (
b281a2d) - Update translation - by tjshtqwq (
c2acfae) - 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) - Add Polish configuration file for GrimAC (#2501)
Co-authored-by: DawixTV 92529087+DawixTV@users.noreply.github.com - by dxw1d (272a889)
- Revert "load after ZNPCsPlus"
This reverts commit 1d0cbb7078205b0b265a8ae6047bd304811ed130. - by ManInMyVan (c7983b7)
- Remove unused imports in Reach.java - by ManInMyVan (
d273229) - Fix Discord Webhook PAPI Placeholders (#2518)
Fix support for Discord markdown parsing of several edge cases
Fix PAPI name mangling
Cleanup Implementation of new Discord Webhook handling
Document exploit choice to not use volatile when technically correct to
Address all code review concerns
Cleanup unused code
Refactor packages for discord related data types - by Axionize (
c356f5f)
- Fix compile issues from package references not being refactored in Discord refactor - by Axionize (
53cf3e8) - Discord.yml translation fixes - by Axionize (
d4611f1) - Add support disable-webhook-validation boolean in discord.yml for custom domains with Discord webhooks
Closes https://github.com/GrimAnticheat/Grim/issues/2520 - by Axionize (879d566)
- Account for 1.21.2+ clients ignoring teleport packets while in vehicle (#2470)
fix: https://github.com/GrimAnticheat/Grim/issues/2463 - by Cyramek (8a0d1e2)
- Bump version to 2.3.74 - by cyramek (
546abf0) - Add support for viaversion attack range component for 1.21.11+ clients on legacy servers (#2474)
add support for https://github.com/ViaVersion/ViaVersion/pull/4733 - by Cyramek (7e8b6b6)
- Fix encoding of Polymer blocks breaking when resyncing with world, optimize allocations Fabric PlatformChunk.getBlockId(x,y,z) - by Axionize (
0a1ce1d) - Reset food level on respawn (#2528) - by SamB440 (
5749463) - Fix ghost block mitigation on floating block placement (#2530) - by RareMen (
13fb273) - Exempt spectators in 1.21.11+ from PacketOrderB (fixes #2493) - by ManInMyVan (
29c0757) - Slightly change BadPacketsP description - by ManInMyVan (
539e822) - Rename BadPacketsC to SelfInteract - by ManInMyVan (
177c003) - Set CheckManager#packetEntityReplication on init - by ManInMyVan (
3055cd1) - Make TransactionOrder verbose consistent with other checks - by ManInMyVan (
68f34f2) - Require hand to be MAIN_HAND in PacketOrderB - by ManInMyVan (
598aae0) - 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)
- Footer text does not get parsed as markdown - by ManInMyVan (
e40ec01) - Bump Kotlin Plugin Serialization 2.3.0 - by Axionize (
5f9b9dd) - Make DefaultResyncHandler a record - by Axionize (
740f7f4) - Merge branch '2.0' into lightning
Conflicts:
common/src/main/java/ac/grim/grimac/checks/impl/combat/Reach.java
common/src/main/java/ac/grim/grimac/manager/CheckManager.java
common/src/main/java/ac/grim/grimac/player/GrimPlayer.java - by Axionize (162a8d1)
- Fix compilation issues, eliminate allocations and fix distanceSquared() > 36 instead of 6 - by Axionize (
5efefe5) - Spear stabs are attacks, handle them as such - by ManInMyVan (
bf10e23) - Add separate logic for publishing release builds in workflow - by AoElite (
f0e15b0) - Bump PE for initial 26.1 support - by Axionize (
f380fcd) - Fix PE 26.1 update (deferred fabric folder) - by Axionize (
9b06c86) - Check if
isPacketInventoryActivewas false before allowing revert - by SamB440 (6a46c35) - Move ElytraA onStartGliding() to before the client version check in PacketEntityAction - by ManInMyVan (
11d572f) - Account for INTERACT_ENTITY being split in 26.1 - by ManInMyVan (
7d9dc86) - Actually check sneaking in MultiInteractA - by ManInMyVan (
89eedbe) - Quilt is a normal client - by ManInMyVan (
77c48f4) - Fix glow squid bounding box - by SamB440 (
10cb176) - Add BadPacketsC to check if the LEAVE_BED packet is valid - by ManInMyVan (
d1b2135) - Fix soul torch collision data - by SamB440 (
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)
- Bump PE to support Bukkit 26.1 servers - by Axionize (
ece9f3c) - Minor changes to PacketHidePlayerInfo - by ManInMyVan (
b55a12c) - RESOURCE_PACK_STATUS is async - by ManInMyVan (
e8dc9ae) - Downgrade PE to fix promise/future execution breaking in PE's netty listeners - by Axionize (
3e07a0e) - Bumped Gradle Wrapper to fix build (#2591) - by Tyler (
890799d) - Fix MYSQL 8 support (#2534)
Fix MYSQL 8 support
Prevent double index error from sending everytime. - by Milan Ensink (
35fe1f0)
- MultiActionsD not checking if the inventory got opened this tick (#2596) - by Bram (
1b60cb8) - Don't check the same value twice - by ManInMyVan (
99dce8c) - Fix incorrect entity metadata indexes - by Axionize (
c169d9c) - Merge remote-tracking branch 'origin/2.0' into lightning
Conflicts:
common/src/main/java/ac/grim/grimac/checks/impl/combat/Reach.java - by Axionize (65815fc)
🐛 Fixes
- Fix many issues with collisions while riding nautilus/happyghast (#2460)
thanks LaserSlime and Axionize for help! - by Cyramek (302bed1)
- Fix noslow with invalid drop item packets - by ManInMyVan (
48115eb) - Fix #2563 - by ManInMyVan (
cd3576b) - Fix #1990 - by ManInMyVan (
b9da63c) - Fix #2579 - by ManInMyVan (
13ad8bd) - Fix PacketOrderC viabackwards false - by ManInMyVan (
fc75e51)
Полная история изменений — на Modrinth.
Комментарии
Загружаем…