Repository navigation
1.3.1.0
Imported from
GrimAnticheat/GrimAPIreleasev1.3.1.0. Original publication:05/14/2026 18:34:10. Original URL:https://github.com/GrimAnticheat/GrimAPI/releases/tag/v1.3.1.0.
GrimSetbackEvent hierarchy
Additive release on top of 1.3.0.0. Fully backward-compatible with 1.3.0.0 subscribers; legacy 1.2.4.0 APIs remain deprecated-but-functional.
New events
Three new observational events covering the "Grim did a setback" semantic — distinct from the packet-level GrimTeleportEvent, which wasn't a good fit for this audience.
GrimSetbackEvent— abstract parent. Subscribe once, receive every setback regardless of packet type.GrimSetbackEvent.Channel ch = (GrimSetbackEvent.Channel) bus.get(GrimSetbackEvent.class); ch.onAnySetback(plugin, (user, timestamp) -> { ... });
GrimPlayerSetbackEvent— concrete, fires when Grim sends a player-on-foot setback (theServerPlayerPositionAndLookbranch). CarriesteleportIdplus destination(x, y, z). The teleport id is identical to the co-firingGrimTeleportEventat that site, so consumers can correlate by id.GrimVehicleSetbackEvent— concrete, fires when Grim sends a player-in-vehicle setback (theServerVehicleMovebranch). Carries destination(x, y, z). No teleport id — the vehicle-move packet doesn't have one.
Why two families?
GrimTeleportEvent (1.3.0.0) targets sibling anticheats that need to dedupe inbound teleport-confirms when their PacketEvents is shaded and Grim's outbound packets are invisible to them. That audience wants every outbound ServerPlayerPositionAndLook Grim emits — setback, AFK-bot probe, vehicle-replication fixup — correlated by id.
GrimSetbackEvent targets admin/observability consumers who want the semantic "Grim setback a player" signal, including the vehicle-move path that isn't a teleport packet.
A player-setback site fires both events; consumers subscribe to whichever framing fits.
Bridge wiring
GrimSetbackEvent is an AbstractEventChannel. Subscribers at the abstract level automatically receive dispatches from each concrete child via the bridge-listener pattern already used by GrimCheckEvent → FlagEvent/CompletePredictionEvent. Zero-alloc hot path, no reflection.
No breaking changes
- No existing event class, handler signature, or channel method changed.
- No deprecations introduced or removed.
Upgrade from 1.3.0.0 is a single-line version bump.