[Test] Invtave Disabler
-
Disabler Code
PacketUtils Skid From FDPClientprivate final Queue<Packet<?>> linkedQueue = new LinkedBlockingQueue<>(); private final TimeHelper timer = new TimeHelper(); private boolean sendAll; @Override public void onEnable() { this.timer.reset(); this.linkedQueue.clear(); this.sendAll = true; } @EventTarget public void onUpdate(UpdateEvent event) { if (mc.thePlayer == null) { return; } if (mc.thePlayer.ticksExisted < 3) { this.linkedQueue.clear(); this.timer.reset(); } if (mc.thePlayer != null && mc.thePlayer.ticksExisted < 150) { this.sendAll = true; } if (this.sendAll && this.timer.reach(1000L * RandomUtils.nextInt(5, 20))) { boolean maxed = this.linkedQueue.size() >= 500; if (!maxed && !this.linkedQueue.isEmpty()) { Packet<?> packet = this.linkedQueue.poll(); PacketUtils.sendPacketNoEvent((Packet<INetHandlerPlayServer>) packet); } this.timer.reset(); } } @EventTarget public void onPacket(PacketEvent event) { if (event.getPacket() instanceof C00PacketKeepAlive) { event.cancelEvent(); this.linkedQueue.add(event.getPacket()); } if (event.getPacket() instanceof C0FPacketConfirmTransaction) { C0FPacketConfirmTransaction packet = (C0FPacketConfirmTransaction) event.getPacket(); if (packet.getUid() > 0 && packet.getUid() < 75) { return; } this.linkedQueue.add(event.getPacket()); event.cancelEvent(); } if (event.getPacket() instanceof C0FPacketConfirmTransaction && mc.thePlayer.ticksExisted % 2 == 0 && !Objects.requireNonNull(LiquidBounce.moduleManager.getModule(Scaffold.class)).isToggled()) { event.cancelEvent(); } if (Objects.requireNonNull(LiquidBounce.moduleManager.getModule(Scaffold.class)).isToggled() && event.getPacket() instanceof C0BPacketEntityAction) { event.cancelEvent(); } if (mc.thePlayer != null && mc.thePlayer.ticksExisted < 8) { this.linkedQueue.clear(); this.timer.reset(); } }
TimeHelper
package net.ccbluex.liquidbounce.utils; public class TimeHelper { private long prevMS; public boolean reach(double milliSeconds) { return (float) (this.getTime() - this.prevMS) >= milliSeconds; } public void reset() { this.prevMS = this.getTime(); } private long getTime() { return System.nanoTime() / 1000000L; } public long getMs() { return (getDelay() / 1000000L) - this.prevMS; } public long getDelay() { return System.nanoTime(); } } TestTestTestTest!!!!!