Skip to content

Commit 54a1528

Browse files
authored
Merge branch 'GrimAnticheat:2.0' into 2.0
2 parents c01eeb9 + 8a1cc2e commit 54a1528

22 files changed

+209
-183
lines changed

src/main/java/ac/grim/grimac/checks/impl/badpackets/BadPacketsM.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public void onPacketReceive(PacketReceiveEvent event) {
3434
// - when renaming the armor stand or in spectator mode: INTERACT_AT + INTERACT
3535
// - in all other cases: only INTERACT
3636
// Just exempt armor stands to be safe
37-
if(entity != null && entity.type == EntityTypes.ARMOR_STAND) return;
37+
if(entity != null && entity.getType() == EntityTypes.ARMOR_STAND) return;
3838

3939
switch (wrapper.getAction()) {
4040
// INTERACT_AT then INTERACT

src/main/java/ac/grim/grimac/checks/impl/badpackets/BadPacketsT.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public void onPacketReceive(final PacketReceiveEvent event) {
3737
return;
3838
}
3939
// Make sure our target entity is actually a player (Player NPCs work too)
40-
if (!EntityTypes.PLAYER.equals(packetEntity.type)) {
40+
if (!EntityTypes.PLAYER.equals(packetEntity.getType())) {
4141
// We can't check for any entity that is not a player
4242
return;
4343
}

src/main/java/ac/grim/grimac/checks/impl/combat/Reach.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ public void onPacketReceive(final PacketReceiveEvent event) {
8282
if (entity.isDead) return;
8383

8484
// TODO: Remove when in front of via
85-
if (entity.type == EntityTypes.ARMOR_STAND && player.getClientVersion().isOlderThan(ClientVersion.V_1_8)) return;
85+
if (entity.getType() == EntityTypes.ARMOR_STAND && player.getClientVersion().isOlderThan(ClientVersion.V_1_8)) return;
8686

8787
if (player.gamemode == GameMode.CREATIVE || player.gamemode == GameMode.SPECTATOR) return;
8888
if (player.compensatedEntities.getSelf().inVehicle()) return;
@@ -119,7 +119,7 @@ public void onPacketReceive(final PacketReceiveEvent event) {
119119
// Meaning that the other check should be the only one that flags.
120120
private boolean isKnownInvalid(PacketEntity reachEntity) {
121121
// If the entity doesn't exist, or if it is exempt, or if it is dead
122-
if ((blacklisted.contains(reachEntity.type) || !reachEntity.isLivingEntity()) && reachEntity.type != EntityTypes.END_CRYSTAL)
122+
if ((blacklisted.contains(reachEntity.getType()) || !reachEntity.isLivingEntity()) && reachEntity.getType() != EntityTypes.END_CRYSTAL)
123123
return false; // exempt
124124

125125
if (player.gamemode == GameMode.CREATIVE || player.gamemode == GameMode.SPECTATOR) return false;
@@ -130,7 +130,7 @@ private boolean isKnownInvalid(PacketEntity reachEntity) {
130130
return checkReach(reachEntity, new Vector3d(player.x, player.y, player.z), true) != null; // If they flagged
131131
} else {
132132
SimpleCollisionBox targetBox = reachEntity.getPossibleCollisionBoxes();
133-
if (reachEntity.type == EntityTypes.END_CRYSTAL) {
133+
if (reachEntity.getType() == EntityTypes.END_CRYSTAL) {
134134
targetBox = new SimpleCollisionBox(reachEntity.desyncClientPos.subtract(1, 0, 1), reachEntity.desyncClientPos.add(1, 2, 1));
135135
}
136136
return ReachUtils.getMinReachToBox(player, targetBox) > player.compensatedEntities.getSelf().getEntityInteractRange();
@@ -144,10 +144,10 @@ private void tickBetterReachCheckWithAngle() {
144144
if (reachEntity != null) {
145145
String result = checkReach(reachEntity, attack.getValue(), false);
146146
if (result != null) {
147-
if (reachEntity.type == EntityTypes.PLAYER) {
147+
if (reachEntity.getType() == EntityTypes.PLAYER) {
148148
flagAndAlert(result);
149149
} else {
150-
flagAndAlert(result + " type=" + reachEntity.type.getName().getKey());
150+
flagAndAlert(result + " type=" + reachEntity.getType().getName().getKey());
151151
}
152152
}
153153
}
@@ -158,7 +158,7 @@ private void tickBetterReachCheckWithAngle() {
158158
private String checkReach(PacketEntity reachEntity, Vector3d from, boolean isPrediction) {
159159
SimpleCollisionBox targetBox = reachEntity.getPossibleCollisionBoxes();
160160

161-
if (reachEntity.type == EntityTypes.END_CRYSTAL) { // Hardcode end crystal box
161+
if (reachEntity.getType() == EntityTypes.END_CRYSTAL) { // Hardcode end crystal box
162162
targetBox = new SimpleCollisionBox(reachEntity.desyncClientPos.subtract(1, 0, 1), reachEntity.desyncClientPos.add(1, 2, 1));
163163
}
164164

@@ -218,7 +218,7 @@ private String checkReach(PacketEntity reachEntity, Vector3d from, boolean isPre
218218
}
219219

220220
// if the entity is not exempt and the entity is alive
221-
if ((!blacklisted.contains(reachEntity.type) && reachEntity.isLivingEntity()) || reachEntity.type == EntityTypes.END_CRYSTAL) {
221+
if ((!blacklisted.contains(reachEntity.getType()) && reachEntity.isLivingEntity()) || reachEntity.getType() == EntityTypes.END_CRYSTAL) {
222222
if (minDistance == Double.MAX_VALUE) {
223223
cancelBuffer = 1;
224224
return "Missed hitbox";

src/main/java/ac/grim/grimac/events/packets/PacketEntityReplication.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -408,7 +408,7 @@ private void handleMoveEntity(PacketSendEvent event, int entityId, double deltaX
408408
if (entity instanceof PacketEntityTrackXRot && yaw != null) {
409409
PacketEntityTrackXRot xRotEntity = (PacketEntityTrackXRot) entity;
410410
xRotEntity.packetYaw = yaw;
411-
xRotEntity.steps = EntityTypes.isTypeInstanceOf(entity.type, EntityTypes.BOAT) ? 10 : 3;
411+
xRotEntity.steps = EntityTypes.isTypeInstanceOf(entity.getType(), EntityTypes.BOAT) ? 10 : 3;
412412
}
413413
entity.onFirstTransaction(isRelative, hasPos, deltaX, deltaY, deltaZ, player);
414414
});

src/main/java/ac/grim/grimac/events/packets/PacketPlayerAttack.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
import com.github.retrooper.packetevents.protocol.player.ClientVersion;
1717
import com.github.retrooper.packetevents.wrapper.play.client.WrapperPlayClientInteractEntity;
1818
import com.github.retrooper.packetevents.wrapper.play.client.WrapperPlayClientPlayerFlying;
19-
import org.bukkit.entity.LivingEntity;
2019

2120
public class PacketPlayerAttack extends PacketListenerAbstract {
2221

@@ -51,7 +50,7 @@ public void onPacketReceive(PacketReceiveEvent event) {
5150
player.packetStateData.slowedByUsingItem = false;
5251
}
5352

54-
if (entity != null && (!(entity.type instanceof LivingEntity) || entity.type == EntityTypes.PLAYER)) {
53+
if (entity != null && (!(entity.isLivingEntity()) || entity.getType() == EntityTypes.PLAYER)) {
5554
boolean hasKnockbackSword = heldItem != null && heldItem.getEnchantmentLevel(EnchantmentTypes.KNOCKBACK, PacketEvents.getAPI().getServerManager().getVersion().toClientVersion()) > 0;
5655
boolean isLegacyPlayer = player.getClientVersion().isOlderThanOrEquals(ClientVersion.V_1_8);
5756
boolean hasNegativeKB = heldItem != null && heldItem.getEnchantmentLevel(EnchantmentTypes.KNOCKBACK, PacketEvents.getAPI().getServerManager().getVersion().toClientVersion()) < 0;

src/main/java/ac/grim/grimac/events/packets/PacketPlayerSteer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ public void onPacketReceive(PacketReceiveEvent event) {
4444
if (player.packetStateData.receivedSteerVehicle && riding != null) {
4545
// Horse and boat have first passenger in control
4646
// If the player is the first passenger, disregard this attempt to have the server control the entity
47-
if ((EntityTypes.isTypeInstanceOf(riding.type, EntityTypes.BOAT) || riding instanceof PacketEntityHorse) && riding.passengers.get(0) == player.compensatedEntities.getSelf() &&
47+
if ((EntityTypes.isTypeInstanceOf(riding.getType(), EntityTypes.BOAT) || riding instanceof PacketEntityHorse) && riding.passengers.get(0) == player.compensatedEntities.getSelf() &&
4848
// Although if the player has server controlled entities
4949
player.getClientVersion().isNewerThanOrEquals(ClientVersion.V_1_9) &&
5050
// or the server controls the entities, then this is vanilla logic so allow it

src/main/java/ac/grim/grimac/player/GrimPlayer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -349,7 +349,7 @@ public float getMaxUpStep() {
349349
final PacketEntity riding = self.getRiding();
350350
if (riding == null) return self.stepHeight;
351351

352-
if (EntityTypes.isTypeInstanceOf(riding.type, EntityTypes.BOAT)) {
352+
if (EntityTypes.isTypeInstanceOf(riding.getType(), EntityTypes.BOAT)) {
353353
return 0f;
354354
}
355355

src/main/java/ac/grim/grimac/predictionengine/GhostBlockDetector.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ public static boolean isGhostBlock(GrimPlayer player) {
5353
SimpleCollisionBox largeExpandedBB = player.boundingBox.copy().expand(12, 0.5, 12);
5454

5555
for (PacketEntity entity : player.compensatedEntities.entityMap.values()) {
56-
if (EntityTypes.isTypeInstanceOf(entity.type, EntityTypes.BOAT)) {
56+
if (EntityTypes.isTypeInstanceOf(entity.getType(), EntityTypes.BOAT)) {
5757
if (entity.getPossibleCollisionBoxes().isIntersected(largeExpandedBB)) {
5858
return true;
5959
}

src/main/java/ac/grim/grimac/predictionengine/MovementCheckRunner.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -276,7 +276,7 @@ private void check(PositionUpdate update) {
276276
if (player.compensatedEntities.getSelf().getRiding() instanceof PacketEntityRideable) {
277277
EntityControl control = player.checkManager.getPostPredictionCheck(EntityControl.class);
278278

279-
ItemType requiredItem = player.compensatedEntities.getSelf().getRiding().type == EntityTypes.PIG ? ItemTypes.CARROT_ON_A_STICK : ItemTypes.WARPED_FUNGUS_ON_A_STICK;
279+
ItemType requiredItem = player.compensatedEntities.getSelf().getRiding().getType() == EntityTypes.PIG ? ItemTypes.CARROT_ON_A_STICK : ItemTypes.WARPED_FUNGUS_ON_A_STICK;
280280
ItemStack mainHand = player.getInventory().getHeldItem();
281281
ItemStack offHand = player.getInventory().getOffHand();
282282

@@ -323,7 +323,7 @@ private void check(PositionUpdate update) {
323323
player.isSprinting = false;
324324
player.isSneaking = false;
325325

326-
if (player.compensatedEntities.getSelf().getRiding().type != EntityTypes.PIG && player.compensatedEntities.getSelf().getRiding().type != EntityTypes.STRIDER) {
326+
if (player.compensatedEntities.getSelf().getRiding().getType() != EntityTypes.PIG && player.compensatedEntities.getSelf().getRiding().getType() != EntityTypes.STRIDER) {
327327
player.isClimbing = false;
328328
}
329329
}
@@ -495,17 +495,17 @@ private void check(PositionUpdate update) {
495495
// The player and server are both on a version with client controlled entities
496496
// If either or both of the client server version has server controlled entities
497497
// The player can't use entities (or the server just checks the entities)
498-
if (EntityTypes.isTypeInstanceOf(player.compensatedEntities.getSelf().getRiding().type, EntityTypes.BOAT)) {
498+
if (EntityTypes.isTypeInstanceOf(player.compensatedEntities.getSelf().getRiding().getType(), EntityTypes.BOAT)) {
499499
new PlayerBaseTick(player).doBaseTick();
500500
// Speed doesn't affect anything with boat movement
501501
new BoatPredictionEngine(player).guessBestMovement(0.1f, player);
502502
} else if (player.compensatedEntities.getSelf().getRiding() instanceof PacketEntityHorse) {
503503
new PlayerBaseTick(player).doBaseTick();
504504
new MovementTickerHorse(player).livingEntityAIStep();
505-
} else if (player.compensatedEntities.getSelf().getRiding().type == EntityTypes.PIG) {
505+
} else if (player.compensatedEntities.getSelf().getRiding().getType() == EntityTypes.PIG) {
506506
new PlayerBaseTick(player).doBaseTick();
507507
new MovementTickerPig(player).livingEntityAIStep();
508-
} else if (player.compensatedEntities.getSelf().getRiding().type == EntityTypes.STRIDER) {
508+
} else if (player.compensatedEntities.getSelf().getRiding().getType() == EntityTypes.STRIDER) {
509509
new PlayerBaseTick(player).doBaseTick();
510510
new MovementTickerStrider(player).livingEntityAIStep();
511511
MovementTickerStrider.floatStrider(player);

src/main/java/ac/grim/grimac/predictionengine/PlayerBaseTick.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ private void updateFluidOnEyes() {
102102

103103
double d0 = player.lastY + player.getEyeHeight() - 0.1111111119389534D;
104104

105-
if (player.compensatedEntities.getSelf().getRiding() != null && EntityTypes.isTypeInstanceOf(player.compensatedEntities.getSelf().getRiding().type, EntityTypes.BOAT) && !player.vehicleData.boatUnderwater && player.boundingBox.maxY >= d0 && player.boundingBox.minY <= d0) {
105+
if (player.compensatedEntities.getSelf().getRiding() != null && EntityTypes.isTypeInstanceOf(player.compensatedEntities.getSelf().getRiding().getType(), EntityTypes.BOAT) && !player.vehicleData.boatUnderwater && player.boundingBox.maxY >= d0 && player.boundingBox.minY <= d0) {
106106
return;
107107
}
108108

@@ -379,7 +379,7 @@ private void moveTowardsClosestSpaceModern(double xPosition, double zPosition) {
379379
}
380380

381381
public void updateInWaterStateAndDoWaterCurrentPushing() {
382-
player.wasTouchingWater = this.updateFluidHeightAndDoFluidPushing(FluidTag.WATER, 0.014) && !(player.compensatedEntities.getSelf().getRiding() != null && EntityTypes.isTypeInstanceOf(player.compensatedEntities.getSelf().getRiding().type, EntityTypes.BOAT));
382+
player.wasTouchingWater = this.updateFluidHeightAndDoFluidPushing(FluidTag.WATER, 0.014) && !(player.compensatedEntities.getSelf().getRiding() != null && EntityTypes.isTypeInstanceOf(player.compensatedEntities.getSelf().getRiding().getType(), EntityTypes.BOAT));
383383
if (player.wasTouchingWater)
384384
player.fallDistance = 0;
385385
}

0 commit comments

Comments
 (0)