Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package jolyjdia.test.util;
- import org.jetbrains.annotations.NotNull;
- import java.util.concurrent.*;
- import java.util.concurrent.atomic.AtomicInteger;
- @ModuleInfo(name = "FakeLag", description = "Allows you to create a false sense that you are lagging", category = ModuleCategory.MISC)
- public class FakeLag extends Module {
- private final IntegerValue delay = new IntegerValue("Delay", 1000, 150, 14500);
- private final IntegerValue random = new IntegerValue("Random", 25, 0, 150);
- private final Queue<Packet<?>> packets = new ConcurrentLinkedQueue<>();
- private long lastLag = 0L;
- private long delayForNextLag = delay.get() + RandomUtils.nextInt(-random.get(), random.get());
- private static final Executor ASYNC_POOL = Executors.newFixedThreadPool(3, new ThreadFactory() {
- final AtomicInteger atomicInteger = new AtomicInteger();
- @Override
- public Thread newThread(@NotNull Runnable r) {
- Thread thread = new Thread(r);
- thread.setDaemon(true);
- thread.setName("Worker-"+atomicInteger.getAndIncrement());
- return thread;
- }
- });
- @Override
- public void onDisable() {
- ASYNC_POOL.execute(() -> {
- for (Packet<?> packet : packets) {
- mc.getNetHandler().addToSendQueue(packet);
- }
- packets.clear();
- });
- if (!ASYNC_POOL.isTerminated()) {
- ASYNC_POOL.shutdown();
- try {
- while (!ASYNC_POOL.awaitTermination(1, TimeUnit.DAYS)) ;
- } catch (InterruptedException e) {
- ASYNC_POOL.shutdownNow();
- }
- }
- }
- @EventTarget
- public void onRender3D(Render3DEvent event) {
- try {
- if (System.currentTimeMillis() - lastLag >= delayForNextLag) {
- ASYNC_POOL.execute(() -> {
- for (Packet<?> packet : packets) {
- mc.getNetHandler().addToSendQueue(packet);
- }
- packets.clear();
- });
- lastLag = System.currentTimeMillis();
- delayForNextLag = delay.get() + RandomUtils.nextInt(-random.get(), random.get());
- }
- } catch (Exception exc) {
- exc.printStackTrace();
- }
- }
- @EventTarget
- public void onPacket(@NotNull PacketEvent event) {
- if (event.isSending() && mc.theWorld != null) {
- packets.add(event.getPacket());
- event.cancelEvent();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement