Created
March 22, 2018 20:04
-
-
Save GrimEpp/ef4bf5572d502f5634114f362a64ad54 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| package me.grimepp; | |
| import org.bukkit.ChatColor; | |
| import org.bukkit.plugin.java.JavaPlugin; | |
| import java.util.ArrayList; | |
| import java.util.List; | |
| import java.util.UUID; | |
| public class AntiBungeeHack extends JavaPlugin { | |
| private static List<UUID> tempquit; | |
| private static List<String> ips; | |
| private static String ip; | |
| private static String kickmessage; | |
| public static String getKickmessage() { | |
| return kickmessage; | |
| } | |
| @Override | |
| public void onEnable() { | |
| saveDefaultConfig(); | |
| tempquit = new ArrayList<>(); | |
| ips = new ArrayList<>(); | |
| ip = this.getConfig().getString("ip"); | |
| kickmessage = ChatColor.translateAlternateColorCodes('&', this.getConfig().getString("kickmessage")); | |
| getServer().getPluginManager().registerEvents(new Event(), this); | |
| } | |
| public static List<String> getIps() { | |
| return ips; | |
| } | |
| public static List<UUID> getTempquit() { | |
| return tempquit; | |
| } | |
| public static String getIp() { | |
| return ip; | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| package me.grimepp; | |
| import org.bukkit.event.EventHandler; | |
| import org.bukkit.event.EventPriority; | |
| import org.bukkit.event.Listener; | |
| import org.bukkit.event.player.AsyncPlayerPreLoginEvent; | |
| import org.bukkit.event.player.PlayerLoginEvent; | |
| import org.bukkit.event.player.PlayerQuitEvent; | |
| import java.util.UUID; | |
| public class Event implements Listener { | |
| @EventHandler | |
| public void onAsyncPlayerPreLoginEvent(final AsyncPlayerPreLoginEvent e) { | |
| try { | |
| if (AntiBungeeHack.getIps().contains(e.getAddress().getHostAddress())) { | |
| e.disallow(AsyncPlayerPreLoginEvent.Result.KICK_OTHER, ""); | |
| } | |
| } catch (NullPointerException ignored) { | |
| e.disallow(AsyncPlayerPreLoginEvent.Result.KICK_OTHER, AntiBungeeHack.getKickmessage()); | |
| } | |
| } | |
| @EventHandler(priority = EventPriority.HIGHEST) | |
| public void onJoin(PlayerLoginEvent e) { | |
| try { | |
| if (!e.getRealAddress().getHostAddress().equals(AntiBungeeHack.getIp())) { | |
| AntiBungeeHack.getIps().add(e.getAddress().getHostAddress()); | |
| e.disallow(PlayerLoginEvent.Result.KICK_OTHER, AntiBungeeHack.getKickmessage()); | |
| AntiBungeeHack.getTempquit().add(e.getPlayer().getUniqueId()); | |
| } | |
| } catch (NullPointerException ignored) { | |
| e.disallow(PlayerLoginEvent.Result.KICK_OTHER, AntiBungeeHack.getKickmessage()); | |
| } | |
| } | |
| @EventHandler(priority = EventPriority.MONITOR) | |
| public void onLeave(PlayerQuitEvent e) { | |
| UUID uuid = e.getPlayer().getUniqueId(); | |
| if (!AntiBungeeHack.getTempquit().contains(uuid)) { | |
| AntiBungeeHack.getIps().remove(e.getPlayer().getAddress().getAddress().getHostAddress()); | |
| } else { | |
| AntiBungeeHack.getTempquit().remove(uuid); | |
| } | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
:O