Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package xyz.tntwars.warden.debug;
- import io.netty.channel.*;
- import net.minecraft.server.v1_15_R1.PacketPlayInAbilities;
- import net.minecraft.server.v1_15_R1.PacketPlayInFlying;
- import net.minecraft.server.v1_15_R1.PacketPlayInUseEntity;
- import org.bukkit.GameMode;
- import org.bukkit.Location;
- import org.bukkit.craftbukkit.v1_15_R1.entity.CraftPlayer;
- import org.bukkit.entity.Player;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.Listener;
- import org.bukkit.event.player.PlayerJoinEvent;
- import org.bukkit.event.player.PlayerMoveEvent;
- import org.bukkit.event.player.PlayerQuitEvent;
- import org.bukkit.scheduler.BukkitRunnable;
- import xyz.tntwars.warden.Main;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import static xyz.tntwars.warden.command.KickEnable.kickEnable;
- public class PacketFly implements Listener {
- private HashMap<Player, Integer> flyVL = new HashMap<>();
- public static List<Player> toKickFly = new ArrayList<>();
- boolean isFalling;
- boolean isGoingUp;
- boolean isOnWater;
- int i;
- @EventHandler
- public void onJoin(PlayerJoinEvent event) {
- injectPlayer(event.getPlayer());
- }
- @EventHandler
- public void onLeave(PlayerQuitEvent event) {
- removePlayer(event.getPlayer());
- }
- private void removePlayer(Player player) {
- Channel channel = ((CraftPlayer) player).getHandle().playerConnection.networkManager.channel;
- channel.eventLoop().submit(() -> {
- channel.pipeline().remove(player.getName());
- return null;
- });
- }
- @EventHandler
- public void fallEvent(PlayerMoveEvent event) {
- isFalling = event.getTo().getY() + 0.5 < event.getFrom().getY();
- isGoingUp = event.getTo().getY() > event.getFrom().getY() + 0.2;
- //int underY = event.getPlayer().getLocation().getBlockY() - 1;
- Location location = event.getPlayer().getLocation().clone().add(0, -1, 0);
- }
- private void injectPlayer(Player player) {
- ChannelDuplexHandler channelDuplexHandler = new ChannelDuplexHandler() {
- @Override
- public void channelRead(ChannelHandlerContext channelHandlerContext, Object packet) throws Exception {
- //Bukkit.getServer().getConsoleSender().sendMessage(Common.colorize("&ePACKET READ: &c" + packet.toString()));
- i++;
- //Bukkit.broadcastMessage(Common.colorize("&eAmount of packets: &d" + i));
- if (i == 1) {
- time();
- } else if (i == 0) {
- Main.log("Freecam", player, 0, "Type A");
- } else if (i < 1000 && i > 250) {
- Main.log("TooManyPackets", player, 0, "Type B");
- Main.kick(player, "TooManyPackets");
- } else if (i > 1000) {
- i = 0;
- }
- if (packet instanceof PacketPlayInFlying) {
- if (player.getGameMode() != GameMode.CREATIVE && !player.isOnGround() && !player.isInsideVehicle() && player.getVelocity().length() > 1 && isFalling == false && !player.isGliding() && !player.isSwimming()) {
- i++;
- if (isOnWater == false) {
- if (flyVL.containsKey(player)) {
- int i = flyVL.get(player);
- i++;
- flyVL.put(player, i);
- } else if (!flyVL.containsKey(player)) {
- flyVL.put(player, 1);
- }
- if (flyVL.get(player) > 5 && kickEnable == true) {
- Main.kick(player, "Flight");
- flyVL.remove(player);
- }
- if (flyVL.get(player) > 1) {
- Main.log("Flight", player, flyVL.get(player), "Type A");
- }
- }
- }
- } else if (packet instanceof PacketPlayInAbilities) {
- if (player.getGameMode() != GameMode.CREATIVE && !player.isInsideVehicle() && isFalling == false && !player.isGliding() && !player.isSwimming()) {
- if (flyVL.containsKey(player)) {
- int i = flyVL.get(player);
- i++;
- flyVL.put(player, i);
- } else if (!flyVL.containsKey(player)) {
- flyVL.put(player, 1);
- }
- if (flyVL.get(player) > 5 && kickEnable == true) {
- Main.kick(player, "Flight");
- flyVL.remove(player);
- }
- if (flyVL.get(player) > 1) {
- Main.log("Flight", player, flyVL.get(player), "Type B");
- }
- }
- }
- if (packet instanceof PacketPlayInUseEntity) {
- }
- super.channelRead(channelHandlerContext, packet);
- }
- @Override
- public void write(ChannelHandlerContext channelHandlerContext, Object packet, ChannelPromise channelPromise) throws Exception {
- //Bukkit.getServer().getConsoleSender().sendMessage(Common.colorize("&bPACKET WRITE: &A" + packet.toString()));
- if (packet instanceof PacketPlayInUseEntity) {
- if (player.getGameMode() != GameMode.CREATIVE) {
- }
- }
- super.write(channelHandlerContext, packet, channelPromise);
- }
- };
- ChannelPipeline pipeline = ((CraftPlayer) player).getHandle().playerConnection.networkManager.channel.pipeline();
- pipeline.addBefore("packet_handler", player.getName(), channelDuplexHandler);
- }
- private void time() {
- new BukkitRunnable() {
- @Override
- public void run() {
- i = 0;
- }
- }.runTaskTimer(Main.getInstance(), 60, 60);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement