Skip to content

Commit 9d4db86

Browse files
committed
allow configuring reach flag buffer
1 parent 9599b1c commit 9d4db86

File tree

10 files changed

+46
-7
lines changed

10 files changed

+46
-7
lines changed

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

+19-7
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,11 @@ public class Reach extends Check implements PacketCheck {
5151

5252
private boolean cancelImpossibleHits;
5353
private double threshold;
54-
private double cancelBuffer; // For the next 4 hits after using reach, we aggressively cancel reach
54+
55+
private double flagBufferMax = 1;
56+
private double flagBufferIncrement = 1;
57+
private double flagBufferDecay = 0.25;
58+
private double flagBuffer; // For the next 4 hits after using reach, we aggressively cancel reach
5559

5660
public Reach(GrimPlayer player) {
5761
super(player);
@@ -130,7 +134,7 @@ private boolean isKnownInvalid(PacketEntity reachEntity) {
130134
if (player.compensatedEntities.getSelf().inVehicle()) return false;
131135

132136
// Filter out what we assume to be cheats
133-
if (cancelBuffer != 0) {
137+
if (flagBuffer > 0) {
134138
return checkReach(reachEntity, new Vector3d(player.x, player.y, player.z), true) != null; // If they flagged
135139
} else {
136140
SimpleCollisionBox targetBox = reachEntity.getPossibleCollisionBoxes();
@@ -223,13 +227,13 @@ private String checkReach(PacketEntity reachEntity, Vector3d from, boolean isPre
223227
// if the entity is not exempt and the entity is alive
224228
if ((!blacklisted.contains(reachEntity.getType()) && reachEntity.isLivingEntity()) || reachEntity.getType() == EntityTypes.END_CRYSTAL) {
225229
if (minDistance == Double.MAX_VALUE) {
226-
cancelBuffer = 1;
230+
flagBuffer = Math.min(flagBuffer + flagBufferIncrement, flagBufferMax);
227231
return "Missed hitbox";
228232
} else if (minDistance > player.compensatedEntities.getSelf().getAttributeValue(Attributes.PLAYER_ENTITY_INTERACTION_RANGE)) {
229-
cancelBuffer = 1;
233+
flagBuffer = Math.min(flagBuffer + flagBufferIncrement, flagBufferMax);
230234
return String.format("%.5f", minDistance) + " blocks";
231235
} else {
232-
cancelBuffer = Math.max(0, cancelBuffer - 0.25);
236+
flagBuffer = Math.max(0, flagBuffer - flagBufferDecay);
233237
}
234238
}
235239

@@ -238,7 +242,15 @@ private String checkReach(PacketEntity reachEntity, Vector3d from, boolean isPre
238242

239243
@Override
240244
public void onReload(ConfigManager config) {
241-
this.cancelImpossibleHits = config.getBooleanElse("Reach.block-impossible-hits", true);
242-
this.threshold = config.getDoubleElse("Reach.threshold", 0.0005);
245+
this.cancelImpossibleHits = config.getBooleanElse(getConfigName() + ".block-impossible-hits", true);
246+
this.threshold = config.getDoubleElse(getConfigName() + ".threshold", 0.0005);
247+
248+
this.flagBufferMax = getConfig().getDoubleElse(getConfigName() + ".flag-buffer-max", 1);
249+
this.flagBufferIncrement = getConfig().getDoubleElse(getConfigName() + ".flag-buffer-increment", 1);
250+
this.flagBufferDecay = getConfig().getDoubleElse(getConfigName() + ".flag-buffer-decay", 0.25);
251+
252+
if (this.flagBufferMax == -1) {
253+
this.flagBufferMax = Double.MAX_VALUE;
254+
}
243255
}
244256
}

src/main/resources/config/de.yml

+3
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,9 @@ Reach:
155155
# Bleibt diese Funktion deaktiviert, werden immer noch Cheater erwischt und es kommt nicht zu Fehlalarmen.
156156
# Sofern es sich nicht um einen 1.8 PvP-Server handelt, wird dieses zusätzliche Paket nicht empfohlen.
157157
enable-post-packet: false
158+
flag-buffer-max: 1 # set to -1 to disable
159+
flag-buffer-increment: 1
160+
flag-buffer-decay: 0.25
158161

159162
exploit:
160163
allow-sprint-jumping-when-using-elytra: true

src/main/resources/config/en.yml

+3
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,9 @@ Reach:
155155
# Leaving this disabled will still catch cheaters and will not cause false positives
156156
# Unless you are a 1.8 PvP focused server, this additional packet is not recommended
157157
enable-post-packet: false
158+
flag-buffer-max: 1 # set to -1 to disable
159+
flag-buffer-increment: 1
160+
flag-buffer-decay: 0.25
158161

159162
exploit:
160163
# You can gain high speeds when sprint jumping with an elytra, this prevents the exploit when set to false

src/main/resources/config/es.yml

+3
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,9 @@ Reach:
161161
# Dejar esto deshabilitado también encontrara a jugadores haciendo trampa y no causara falsos positivos.
162162
# Excepto que seas un servidor 1.8 enfocado en el PvP, este paquete adicional no es recomendado.
163163
enable-post-packet: false
164+
flag-buffer-max: 1 # set to -1 to disable
165+
flag-buffer-increment: 1
166+
flag-buffer-decay: 0.25
164167

165168
exploit:
166169
allow-sprint-jumping-when-using-elytra: true

src/main/resources/config/fr.yml

+3
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,9 @@ Reach:
156156
# Laisser cette fonctionnalité désactivée permettra tout de même de détecter les tricheurs et n'entraînera pas de faux positifs.
157157
# À moins d'être un serveur axé sur le PvP en 1.8, l'envoi de ce paquet supplémentaire n'est pas recommandé.
158158
enable-post-packet: false
159+
flag-buffer-max: 1 # set to -1 to disable
160+
flag-buffer-increment: 1
161+
flag-buffer-decay: 0.25
159162

160163
exploit:
161164
allow-sprint-jumping-when-using-elytra: true

src/main/resources/config/it.yml

+3
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,9 @@ Reach:
135135
block-impossible-hits: true
136136
# Abilita l'invio di pacchetti aggiuntivi per il rilevamento degli attacchi
137137
enable-post-packet: false
138+
flag-buffer-max: 1 # set to -1 to disable
139+
flag-buffer-increment: 1
140+
flag-buffer-decay: 0.25
138141

139142
exploit:
140143
# Abilita il salto in sprint con l'elytra

src/main/resources/config/nl.yml

+3
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,9 @@ Reach:
155155
# Als je dit uitgeschakeld laat, worden nog steeds valsspelers gepakt en zullen er geen valse positieven ontstaan
156156
# Tenzij je een 1.8 PvP server bent, wordt dit extra pakket niet aangeraden
157157
enable-post-packet: false
158+
flag-buffer-max: 1 # set to -1 to disable
159+
flag-buffer-increment: 1
160+
flag-buffer-decay: 0.25
158161

159162
exploit:
160163
# Je kunt hoge snelheden krijgen als je sprint met een elytra, dit voorkomt de exploit als het op false staat

src/main/resources/config/pt.yml

+3
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,9 @@ Reach:
159159
# Deixando-o desabilitado, continuará detectando trapaceiros e não irá causar falsos positivos.
160160
# A menos que estiver em um servidor focado em PvP, esse pacote adicional não é recomendado.
161161
enable-post-packet: false
162+
flag-buffer-max: 1 # set to -1 to disable
163+
flag-buffer-increment: 1
164+
flag-buffer-decay: 0.25
162165

163166
exploit:
164167
# Você pode ganhar altas velocidades se pular correndo com uma elytra, previne isso de ocorrer quando definido falso.

src/main/resources/config/ru.yml

+3
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,9 @@ Reach:
156156
# Если оставить эту функцию отключенной, читеры все равно будут отлавливаться и не будут вызывать ложных срабатываний.
157157
# Если вы не являетесь PvP-сервером 1.8, этот дополнительный пакет не рекомендуется.
158158
enable-post-packet: false
159+
flag-buffer-max: 1 # set to -1 to disable
160+
flag-buffer-increment: 1
161+
flag-buffer-decay: 0.25
159162

160163
exploit:
161164
allow-sprint-jumping-when-using-elytra: true

src/main/resources/config/zh.yml

+3
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,9 @@ Reach:
156156
# 禁用此功能仍会捕获作弊者,不会导致误报
157157
# 除非你是专注于 1.8 PvP 的服务器,否则不建议使用这个额外的数据包
158158
enable-post-packet: false
159+
flag-buffer-max: 1 # set to -1 to disable
160+
flag-buffer-increment: 1
161+
flag-buffer-decay: 0.25
159162

160163
exploit:
161164
#是否允许玩家在使用鞘翅时候进行的疾跑跳跃

0 commit comments

Comments
 (0)