Tags
Creators
Details
2.3.74-652f7c3-b100
Compatibility
Changes
Changes in this Build (since previous push)
Miscellaneous
- Rewrite how stuck speed is simulated (#2725)
fixes issues with stuck speed across all versions, most notably on 1.18.2+ and 1.21.10+
also fixes issue with depth strider on vehicles - by Cyramek (28179c2)
- Implement pose tracking (#2635) - by Cyramek (
0872697) - Expose SQL Hikari pool settings - by Axionize (
7807650) - Use GrimAPI 1.6.0.9 - by Axionize WS1 (
41b8b61) - Sanity check in getItemInOffHand platform impls - by ManInMyVan (
ed648d2) - Remove unused imports - by ManInMyVan (
3b54c21) - Cleanup AbstractContainerMenu and Slot - by ManInMyVan (
63a684d) - The fabric version supports 26.2 - by ManInMyVan (
ff189cf) - Remove duplicated method in Inventory - by ManInMyVan (
03a128d) - Move getBukkitSlot() to CorrectingPlayerInventoryStorage - by ManInMyVan (
bc1fe48) - Update PacketEvents to 4d40422 (#2788) - by Axionize (
d97a24f) - Replace assert null checks with Objects.requireNonNull (#2786)
assert statements are disabled at runtime by default, making these
null checks ineffective outside of testing environments.
Found by custom Java linter static analysis. - by iamthealfaandtheomega (4044eec)
- Fix missing @Override annotations and ByteBuf leak (#2785)
Found by custom Java linter static analysis.
- Add @Override to equals/hashCode/toString in BoundingBox, Location, Vector3dm
- Release ByteBuf in VectorPrecisionConverter.legacyToLp() to prevent buffer leak - by iamthealfaandtheomega (
2963fca) - Fix excluded checks can still be enabled (#2386) - by Rothes (
6c699c2) - Little platform impl cleanup - by ManInMyVan (
8a3dfb6) - Empty records should have braces on the same line - by ManInMyVan (
40684fb) - Flag breaking blocks with a spear - by ManInMyVan (
2fe3b3e) - Fix NPE by using PlayerManager.getUser over manual channel (#2792) - by purpurcof (
936179e) - Override duplicate position on 1.8 servers if cancel-duplicate-packet is false - by ManInMyVan (
6ba39ef) - Make duplicate handling more readable - by ManInMyVan (
85dd3d9) - Cleanup - by ManInMyVan (
fd4bfbd) - Remove player.movementPackets - by ManInMyVan (
3b5e344) - Reuse filterMojangStupidityOnMojangStupidity, baseTickAddition, and baseTickWaterPushing objects - by ManInMyVan (
d54b49b) - Handle nether portal intersection in correct place
aka Mojang's awful vibecoded inside block handling. - by SamB440 (1bb5ea2)
- Fix incorrect stupidity packet handling - by SamB440 (
7ae1d8f) - Call registerBuiltInVerboseTemplates() once - by ManInMyVan (
9fcc457) - Cleanup - by ManInMyVan (
7199c0f) - Make NoOpResyncHandler an enum - by ManInMyVan (
e9ce4ed) - Use arrays for iteration in CheckManager - by ManInMyVan (
1f7ae45) - Mark Check.onReload() param as @NotNull - by ManInMyVan (
2b0890a) - Make changing the default cancelVL for BlockPlace checks easier - by ManInMyVan (
e0b792d) - Eye height is affected by scale - by ManInMyVan (
9ec245c) - Skip inapplicable checks during dispatch (#2821)
-
Skip checks outside supported versions
-
Add comments and preserve BadPacketsH behavior
-
remove redundant checks for client/server version
-
apply isApplicable to BadPacketsH
Co-authored-by: ManInMyVan 113963219+ManInMyVan@users.noreply.github.com - by Limits (4fcf887)
- Improve
PLAYER_ROTATIONhandling - by ManInMyVan (1a8964b) - Optimize BadPacketsJ - by ManInMyVan (
16ea437) - Use getCheck(check) instead of getPacketCheck(check) and such (#2809) - by ManInMyVan (
1821c3e) - Optimize check dispatch (#2819) - by Limits (
9572749) - Only send bundle packets if we aren't in a bundle - by ManInMyVan (
2614909) - Reduce object allocation in BadPacketsV - by ManInMyVan (
1b8591e) - Always flag non-finite values in BadPacketsT - by ManInMyVan (
4a59415) - Remove
safePluginVersion()- by ManInMyVan (5920e74) - Fix block predictions getting stranded, leaving permanent ghost blocks (#2795)
-
fix block predictions getting stranded by hash map iteration order
-
clear block predictions on world change - by nemallone (
98c16e7)
- Fix reach / hitboxes false due to rare interpolation edge case in 1.21.9+ - by SamB440 (
c7a6714) - Use correct packet to resynchronise vehicle dismount position on 1.21.2+ - by SamB440 (
0a18c77) - BadPacketsT doesn't apply to 1.7 clients - by ManInMyVan (
b108806) - The pre-1.9 0.1 hitbox expansion is a float - by ManInMyVan (
dad6262) - Update comment about 1.8 hitbox expansion - by ManInMyVan (
c6ed5c7) - Rename VehicleCheck to VehicleListener - by ManInMyVan (
101efab) - Listeners don't need to be checks - by ManInMyVan (
b190833) - Rename CheckManager.allChecks to checks - by ManInMyVan (
09fb9d1) - Make BREAKABLE a function - by ManInMyVan (
629ad3b) - PlayerData -> player - by ManInMyVan (
eaca6bc) - Remove single var use - by ManInMyVan (
f48f450) - Narrow exception scope and log empty catch blocks (#2787)
Found by custom Java linter static analysis.
- DataStoreLifecycle.java: log exceptions in empty catch blocks instead of swallowing
- Check.java: catch RuntimeException instead of Throwable
- PunishmentManager.java: catch RuntimeException instead of Throwable
- CommandRegister.java: catch RuntimeException instead of Throwable - by iamthealfaandtheomega (
9eaf917) - Fix/issue 2775 (#2831)
-
fix: resolve issue #2775
-
remove: ci.yml - by dtqdev (
98be8c1)
- Fix 26.2+ sizeable metadata (fixes #2823, fixes #2826) - by SamB440 (
73a835d) - Fix sulfur spike causing Simulation (#2782)
Co-authored-by: Ati atiipersonal1@gmail.com - by atii3343 (24aca07)
- Index rolling punishment violations - by Limits (
26fedef) - Add comments - by Limits (
3e514c7) - Reduce violation history allocation and expiry cost - by Limits (
b01ab1e) - Merge branch '2.0' into opt/flag-path - by Limits (
89e767e) - Merge branch '2.0' into opt/flag-path - by Limits (
03f4e9f) - Merge pull request #2820 from limits3/opt/flag-path
Optimize rolling punishment violation tracking - by Axionize (97abf50)
- Use GrimAPI 1.6.0.10 - by Axionize WS2 (
155abaf) - Toggle sneak no longer applies in inventories - by ManInMyVan (
675bf9b) - Apply isApplicable() to more checks - by ManInMyVan (
eaeb5e5) - Apply isApplicable() to BadPacketsG - by ManInMyVan (
9e26fd9) - Don't write transaction logic twice - by ManInMyVan (
80e8f58) - Make BadPacketsU pre-via - by ManInMyVan (
e4e2a51) - Implement system property to disable join warning (#2850)
- Implement system property to disable join warning
There are few circumstances where running ViaVersion with GrimAC are acceptable: more specifically, a server that uses ViaVersion but only supports a very small range of versions (e.g. 26.1 to 26.2 only, base as 26.2). Our lobby uses Minestom instead of Paper (for maximum performance) which better-performs on the proxy, over the backend instance.
This flag allows the user to solemnly acknowledge that they are aware of the incompatibilities and are choosing to "accept their fate."
- Fix the two warnings Grim logs about itself at startup - by R00tB33rMan (
961fa54)
- Clamp player clock to first transaction sent - by ManInMyVan (
29d8fb4) - Use GrimProcessor for non-check listeners (#2837)
-
move some stuff to GrimProcessor
-
allow CheckManager to have non-check listeners
-
rename getCheck to get, since it may return non-check values
-
Update GrimPlayer.java
-
change some checks to processors - by ManInMyVan (
25e51aa)
- Little cleanup - by ManInMyVan (
72cf6ed) - Better way to resync gliding state - by ManInMyVan (
58c8b92) - Only use one VerboseBuf value per thread - by ManInMyVan (
9635544) - Rename some checks (#2857) - by ManInMyVan (
096a4c9) - Track player entity equipment (#2783) - by ManInMyVan (
68d08ff) - PacketOrderA is not applicable to 1.13+ - by ManInMyVan (
39c6260) - Always check post-flying in RotationPlace/Break - by ManInMyVan (
1ea141a) - Use AbstractCheck for ViolationHistory instances - by ManInMyVan (
e291d26) - Use GrimAPI 1.6.0.11 - by claude-fable-5-1 via Claude Code (Axionize WS1) (
212d864) - Use GrimAPI 1.6.0.12 (#2871) - by Axionize (
61caa53) - Share Adventure classes with external PacketEvents in lite builds - by Axionize WS2 (
a73a157) - Use native Paper audiences when Adventure types are shared - by Axionize WS2 (
8b9adcd) - PacketOrderH only applies to pre-1.21.6 clients - by ManInMyVan (
8eb5f28) - Support 26.3 (#2888) - by Cyramek (
e16e97a) - Fixed ro.yml grammar issues - by ItzBloxxy (
150b289) - Fix Romanian config wording - by Axionize WS2 (
d5a05df) - Merge pull request #2875
Merge Romanian config wording fixes. - by Axionize (b1d49ff)
- Merge upstream Grim 2.0 into LightningGrim - by Axionize WS2 (
652f7c3)
♻️ Refactoring
- Refactor item use state (#2639) - by Cyramek (
e454008)
⚡️ Performance
- Queue rolling punishment violations - by Axionize WS1 (
096adfe)
🐛 Fixes
- Fix incorrect slime block y check
fix: https://github.com/GrimAnticheat/Grim/issues/2762 - by cyramek (54a29a2)
- Fix build issue caused by 'Implement pose tracking (#2635)
' PR - by cyramek (
882015a) - Fix comment - by ManInMyVan (
1e5bbc3) - Fix version comparison when cancelling duplicate packets - by ManInMyVan (
9c45c65) - Fix usingProxy always returning false (#2481) (#2771)
-
fix usingProxy always returning false (#2481)
-
Update common/src/main/java/ac/grim/grimac/events/packets/ProxyAlertMessenger.java
Co-authored-by: ManInMyVan 113963219+ManInMyVan@users.noreply.github.com
Co-authored-by: ManInMyVan 113963219+ManInMyVan@users.noreply.github.com - by Francesco (b8677be)
- Fix #2805 - by ManInMyVan (
11d1d3c) - Fix falses with changing slots and digging (#2798)
-
fix PacketOrderI falses when changing slots with keybinds
-
add a note about the other uses
-
fix WrongBreak - by ManInMyVan (
b760568)
- Fix decay/setbackvl/description not resetting to defaults on reload - by ManInMyVan (
4e33690) - Fix
exploit.allow-sprint-jumping-when-using-elytranever changing - by ManInMyVan (5d4e4d3) - Fix player scale not being updated on 1.20.5/6 - by ManInMyVan (
e7569c0) - Fix PacketOrderC - by ManInMyVan (
d2eac90) - Fix SprintE when gliding - by ManInMyVan (
7fd677b) - Fix a possible false with packet order related checks - by ManInMyVan (
f803be6) - Fix keepsprint bypass on 1.21.2+ - by ManInMyVan (
145b38c) - Fix comment in PacketOrderA - by ManInMyVan (
597f559) - Recover crashed peers from the ownership lease, one statement per startup (#2870) - by Axionize (
4c40467) - Fix #2897 - by ManInMyVan (
61117c2) - Fix collision velocity reset order
fix: https://github.com/GrimAnticheat/Grim/issues/2898 - by cyramek (04ca39b)
- Fix incorrect vectors in debug logs - by cyramek (
abb95b6)
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:yeJMtJfW:QbWxcYWX"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:yeJMtJfW:QbWxcYWX"
}

