/
minecraftbackup
/
AnarchyExploitFixes
Обзор
Документация
Войти
/
minecraftbackup
/
AnarchyExploitFixes
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
AnarchyExploitFixesFolia/src/main/java/me/xginko/aef/modules/packets/SequenceCrash.java
49 строк
2 KB
Ginko
2.7.2 release (#233)
13 авг 2024, 08:21
Не верифицирован
13 авг 2024, 08:21
d20da6e
Код
Авторство
О чём код?
package me.xginko.aef.modules.packets; import com.github.retrooper.packetevents.event.PacketListenerPriority; import com.github.retrooper.packetevents.event.PacketReceiveEvent; import com.github.retrooper.packetevents.protocol.packettype.PacketType; import com.github.retrooper.packetevents.wrapper.play.client.WrapperPlayClientPlayerBlockPlacement; import com.github.retrooper.packetevents.wrapper.play.client.WrapperPlayClientPlayerDigging; import com.github.retrooper.packetevents.wrapper.play.client.WrapperPlayClientUseItem; import me.xginko.aef.utils.PlatformUtil; public class SequenceCrash extends PacketModule { private final boolean log, kick; public SequenceCrash() { super("patches.sequence-crash-patch", PacketListenerPriority.HIGHEST); config.addComment(configPath + ".enable", """ Patches a variety of lag/crash exploits that involves sending packets\s with invalid sequences."""); this.log = config.getBoolean(configPath + ".log", false); this.kick = config.getBoolean(configPath + ".kick-player", false); } @Override public boolean shouldEnable() { return config.getBoolean(configPath + ".enable", true) && PlatformUtil.getMinecraftVersion() >= 19; } @Override public void onPacketReceive(PacketReceiveEvent event) { if (event.isCancelled()) return; int sequence; if (event.getPacketType() == PacketType.Play.Client.PLAYER_BLOCK_PLACEMENT) { sequence = new WrapperPlayClientPlayerBlockPlacement(event).getSequence(); } else if (event.getPacketType() == PacketType.Play.Client.PLAYER_DIGGING) { sequence = new WrapperPlayClientPlayerDigging(event).getSequence(); } else if (event.getPacketType() == PacketType.Play.Client.USE_ITEM) { sequence = new WrapperPlayClientUseItem(event).getSequence(); } else { return; } if (sequence < 0) { event.setCancelled(true); onCancel(log, kick, event.getUser()); } } }