Advertisement
Guest User

Untitled

a guest
May 14th, 2020
191
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.97 KB | None | 0 0
  1. package xyz.tntwars.warden.debug;
  2.  
  3. import io.netty.channel.*;
  4. import net.minecraft.server.v1_15_R1.PacketPlayInAbilities;
  5. import net.minecraft.server.v1_15_R1.PacketPlayInFlying;
  6. import net.minecraft.server.v1_15_R1.PacketPlayInUseEntity;
  7. import org.bukkit.GameMode;
  8. import org.bukkit.Location;
  9. import org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer;
  10. import org.bukkit.entity.Player;
  11. import org.bukkit.event.EventHandler;
  12. import org.bukkit.event.Listener;
  13. import org.bukkit.event.player.PlayerJoinEvent;
  14. import org.bukkit.event.player.PlayerMoveEvent;
  15. import org.bukkit.event.player.PlayerQuitEvent;
  16. import org.bukkit.scheduler.BukkitRunnable;
  17. import xyz.tntwars.warden.Main;
  18.  
  19. import java.util.ArrayList;
  20. import java.util.HashMap;
  21. import java.util.List;
  22.  
  23. import static xyz.tntwars.warden.command.KickEnable.kickEnable;
  24.  
  25. public class PacketFly implements Listener {
  26.  
  27.     private HashMap<Player, Integer> flyVL = new HashMap<>();
  28.  
  29.     public static List<Player> toKickFly = new ArrayList<>();
  30.  
  31.     boolean isFalling;
  32.     boolean isGoingUp;
  33.     boolean isOnWater;
  34.     int i;
  35.  
  36.     @EventHandler
  37.     public void onJoin(PlayerJoinEvent event) {
  38.         injectPlayer(event.getPlayer());
  39.     }
  40.  
  41.     @EventHandler
  42.     public void onLeave(PlayerQuitEvent event) {
  43.         removePlayer(event.getPlayer());
  44.     }
  45.  
  46.     private void removePlayer(Player player) {
  47.         Channel channel = ((CraftPlayer) player).getHandle().playerConnection.networkManager.channel;
  48.         channel.eventLoop().submit(() -> {
  49.             channel.pipeline().remove(player.getName());
  50.             return null;
  51.         });
  52.  
  53.     }
  54.  
  55.     @EventHandler
  56.     public void fallEvent(PlayerMoveEvent event) {
  57.         isFalling = event.getTo().getY() + 0.5 < event.getFrom().getY();
  58.         isGoingUp = event.getTo().getY() > event.getFrom().getY() + 0.2;
  59.         //int underY = event.getPlayer().getLocation().getBlockY() - 1;
  60.         Location location = event.getPlayer().getLocation().clone().add(0, -1, 0);
  61.     }
  62.  
  63.     private void injectPlayer(Player player) {
  64.         ChannelDuplexHandler channelDuplexHandler = new ChannelDuplexHandler() {
  65.  
  66.             @Override
  67.             public void channelRead(ChannelHandlerContext channelHandlerContext, Object packet) throws Exception {
  68.                 //Bukkit.getServer().getConsoleSender().sendMessage(Common.colorize("&ePACKET READ: &c" + packet.toString()));
  69.  
  70.                 i++;
  71.                 //Bukkit.broadcastMessage(Common.colorize("&eAmount of packets: &d" + i));
  72.  
  73.                 if (i == 1) {
  74.                     time();
  75.                 } else if (i == 0) {
  76.                     Main.log("Freecam", player, 0, "Type A");
  77.                 } else if (i < 1000 && i > 250) {
  78.                     Main.log("TooManyPackets", player, 0, "Type B");
  79.                     Main.kick(player, "TooManyPackets");
  80.                 } else if (i > 1000) {
  81.                     i = 0;
  82.                 }
  83.  
  84.                 if (packet instanceof PacketPlayInFlying) {
  85.                     if (player.getGameMode() != GameMode.CREATIVE && !player.isOnGround() && !player.isInsideVehicle() && player.getVelocity().length() > 1 && isFalling == false && !player.isGliding() && !player.isSwimming()) {
  86.                         i++;
  87.                         if (isOnWater == false) {
  88.                             if (flyVL.containsKey(player)) {
  89.                                 int i = flyVL.get(player);
  90.                                 i++;
  91.                                 flyVL.put(player, i);
  92.                             } else if (!flyVL.containsKey(player)) {
  93.                                 flyVL.put(player, 1);
  94.                             }
  95.                             if (flyVL.get(player) > 5 && kickEnable == true) {
  96.                                 Main.kick(player, "Flight");
  97.                                 flyVL.remove(player);
  98.                             }
  99.                             if (flyVL.get(player) > 1) {
  100.                                 Main.log("Flight", player, flyVL.get(player), "Type A");
  101.                             }
  102.                         }
  103.                     }
  104.                 } else if (packet instanceof PacketPlayInAbilities) {
  105.                     if (player.getGameMode() != GameMode.CREATIVE && !player.isInsideVehicle() && isFalling == false && !player.isGliding() && !player.isSwimming()) {
  106.                         if (flyVL.containsKey(player)) {
  107.                             int i = flyVL.get(player);
  108.                             i++;
  109.                             flyVL.put(player, i);
  110.                         } else if (!flyVL.containsKey(player)) {
  111.                             flyVL.put(player, 1);
  112.                         }
  113.                         if (flyVL.get(player) > 5 && kickEnable == true) {
  114.                             Main.kick(player, "Flight");
  115.                             flyVL.remove(player);
  116.                         }
  117.                         if (flyVL.get(player) > 1) {
  118.                             Main.log("Flight", player, flyVL.get(player), "Type B");
  119.                         }
  120.                     }
  121.                 }
  122.  
  123.  
  124.                 if (packet instanceof PacketPlayInUseEntity) {
  125.                 }
  126.  
  127.                 super.channelRead(channelHandlerContext, packet);
  128.             }
  129.  
  130.             @Override
  131.             public void write(ChannelHandlerContext channelHandlerContext, Object packet, ChannelPromise channelPromise) throws Exception {
  132.                 //Bukkit.getServer().getConsoleSender().sendMessage(Common.colorize("&bPACKET WRITE: &A" + packet.toString()));
  133.  
  134.                 if (packet instanceof PacketPlayInUseEntity) {
  135.                     if (player.getGameMode() != GameMode.CREATIVE) {
  136.                     }
  137.                 }
  138.                 super.write(channelHandlerContext, packet, channelPromise);
  139.             }
  140.  
  141.         };
  142.  
  143.         ChannelPipeline pipeline = ((CraftPlayer) player).getHandle().playerConnection.networkManager.channel.pipeline();
  144.         pipeline.addBefore("packet_handler", player.getName(), channelDuplexHandler);
  145.     }
  146.  
  147.     private void time() {
  148.         new BukkitRunnable() {
  149.             @Override
  150.             public void run() {
  151.                 i = 0;
  152.             }
  153.         }.runTaskTimer(Main.getInstance(), 60, 60);
  154.     }
  155.  
  156. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement