
Lightning Grim Anticheat
Форк GrimAC с улучшенной производительностью, проверками reach и interact, а также множеством исправлений багов. Античит для Minecraft 1.8-1.21.5.
LightningGrim Anticheat (Fabric) 2.3.74-00dbb86-b99
Список изменений
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)
