funkemunky

Lag Command

Mar 18th, 2020
223
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.37 KB | None | 0 0
  1. package cc.funkemunky.test.commands;
  2.  
  3. import cc.funkemunky.api.commands.ancmd.Command;
  4. import cc.funkemunky.api.commands.ancmd.CommandAdapter;
  5. import cc.funkemunky.api.reflections.Reflections;
  6. import cc.funkemunky.api.utils.Color;
  7. import cc.funkemunky.api.utils.Init;
  8. import cc.funkemunky.api.utils.RunUtils;
  9. import cc.funkemunky.test.TestCore;
  10. import dev.brighten.db.utils.MiscUtils;
  11. import dev.brighten.db.utils.security.hash.Hash;
  12. import dev.brighten.db.utils.security.hash.HashType;
  13. import dev.brighten.db.utils.security.hash.impl.SHA2;
  14. import org.bukkit.scheduler.BukkitTask;
  15.  
  16. import java.nio.charset.StandardCharsets;
  17. import java.security.MessageDigest;
  18. import java.security.NoSuchAlgorithmException;
  19. import java.util.Random;
  20. import java.util.UUID;
  21. import java.util.concurrent.ThreadLocalRandom;
  22. import java.util.concurrent.atomic.AtomicInteger;
  23. import java.util.concurrent.atomic.AtomicReference;
  24. import java.util.stream.IntStream;
  25.  
  26. @Init(commands = true)
  27. public class LagCommand {
  28.  
  29.     public static BukkitTask lagTask;
  30.     public static Random random = new Random();
  31.  
  32.     @Command(name = "lagserver", description = "Lag the server with a special task.", usage = "/<command>",
  33.             permission = {"test.lagserver"})
  34.     public void onCommand(CommandAdapter cmd) {
  35.         if(lagTask == null) {
  36.             lagTask = RunUtils.taskTimer(() -> {
  37.                 AtomicReference<Double> sqrt = new AtomicReference<>((double) 2);
  38.                 AtomicInteger times = new AtomicInteger();
  39.                 (ThreadLocalRandom.current().nextBoolean() ? IntStream.range(0, 18000).parallel() : IntStream.range(0, 8000))
  40.                         .forEach(i -> {
  41.                     sqrt.set(Math.sqrt(sqrt.get() * i) / 2.);
  42.                     Reflections.getNMSClass("MinecraftServer").getMethod("a", String.class);
  43.  
  44.                     String hash = get_SHA_512_SecurePassword(UUID.randomUUID().toString(), UUID.randomUUID().toString().substring(0, 5));
  45.                     times.getAndIncrement();
  46.                 });
  47.                 if(random.nextInt(50) > 43) {
  48.                     try {
  49.                         System.out.println("Sleeping");
  50.                         Thread.sleep(30);
  51.                     } catch (InterruptedException e) {
  52.                         e.printStackTrace();
  53.                     }
  54.  
  55.                 }
  56.             }, TestCore.INSTANCE, 1L, 1L);
  57.  
  58.             cmd.getSender().sendMessage(Color.Green + "Lagging server!");
  59.         } else {
  60.             lagTask.cancel();
  61.             lagTask = null;
  62.             cmd.getSender().sendMessage(Color.Red + "Stopped the lagging!");
  63.         }
  64.     }
  65.  
  66.  
  67.     private static String get_SHA_512_SecurePassword(String passwordToHash, String salt){
  68.         String generatedPassword = null;
  69.         try {
  70.             MessageDigest md = MessageDigest.getInstance("SHA-512");
  71.             md.update(salt.getBytes(StandardCharsets.UTF_8));
  72.             byte[] bytes = md.digest(passwordToHash.getBytes(StandardCharsets.UTF_8));
  73.             StringBuilder sb = new StringBuilder();
  74.             for(int i=0; i< bytes.length ;i++){
  75.                 sb.append(Integer.toString((bytes[i] & 0xff) + 0x100, 16).substring(1));
  76.             }
  77.             generatedPassword = sb.toString();
  78.         } catch (NoSuchAlgorithmException e) {
  79.             e.printStackTrace();
  80.         }
  81.         return generatedPassword;
  82.     }
  83. }
Advertisement
Add Comment
Please, Sign In to add comment