Advertisement
JolyJDIA

Untitled

Nov 7th, 2020
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.56 KB | None | 0 0
  1. package jolyjdia.test.util;
  2.  
  3. import org.jetbrains.annotations.NotNull;
  4.  
  5. import java.util.concurrent.*;
  6. import java.util.concurrent.atomic.AtomicInteger;
  7.  
  8. @ModuleInfo(name = "FakeLag", description = "Allows you to create a false sense that you are lagging", category = ModuleCategory.MISC)
  9. public class FakeLag extends Module {
  10.  
  11.     private final IntegerValue delay = new IntegerValue("Delay", 1000, 150, 14500);
  12.     private final IntegerValue random = new IntegerValue("Random", 25, 0, 150);
  13.  
  14.     private final Queue<Packet<?>> packets = new ConcurrentLinkedQueue<>();
  15.  
  16.     private long lastLag = 0L;
  17.     private long delayForNextLag = delay.get() + RandomUtils.nextInt(-random.get(), random.get());
  18.     private static final Executor ASYNC_POOL = Executors.newFixedThreadPool(3, new ThreadFactory() {
  19.         final AtomicInteger atomicInteger = new AtomicInteger();
  20.         @Override
  21.         public Thread newThread(@NotNull Runnable r) {
  22.             Thread thread = new Thread(r);
  23.             thread.setDaemon(true);
  24.             thread.setName("Worker-"+atomicInteger.getAndIncrement());
  25.             return thread;
  26.         }
  27.     });
  28.  
  29.     @Override
  30.     public void onDisable() {
  31.         ASYNC_POOL.execute(() -> {
  32.             for (Packet<?> packet : packets) {
  33.                 mc.getNetHandler().addToSendQueue(packet);
  34.             }
  35.             packets.clear();
  36.         });
  37.         if (!ASYNC_POOL.isTerminated()) {
  38.             ASYNC_POOL.shutdown();
  39.             try {
  40.                 while (!ASYNC_POOL.awaitTermination(1, TimeUnit.DAYS)) ;
  41.             } catch (InterruptedException e) {
  42.                 ASYNC_POOL.shutdownNow();
  43.             }
  44.         }
  45.     }
  46.  
  47.     @EventTarget
  48.     public void onRender3D(Render3DEvent event) {
  49.         try {
  50.             if (System.currentTimeMillis() - lastLag >= delayForNextLag) {
  51.  
  52.                 ASYNC_POOL.execute(() -> {
  53.                     for (Packet<?> packet : packets) {
  54.                         mc.getNetHandler().addToSendQueue(packet);
  55.                     }
  56.                     packets.clear();
  57.                 });
  58.  
  59.                 lastLag = System.currentTimeMillis();
  60.                 delayForNextLag = delay.get() + RandomUtils.nextInt(-random.get(), random.get());
  61.             }
  62.         } catch (Exception exc) {
  63.             exc.printStackTrace();
  64.         }
  65.     }
  66.  
  67.     @EventTarget
  68.     public void onPacket(@NotNull PacketEvent event) {
  69.         if (event.isSending() && mc.theWorld != null) {
  70.             packets.add(event.getPacket());
  71.  
  72.             event.cancelEvent();
  73.         }
  74.     }
  75.  
  76. }
  77.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement