Skip to content

Instantly share code, notes, and snippets.

@GrimEpp
Created March 22, 2018 20:04
Show Gist options
  • Select an option

  • Save GrimEpp/ef4bf5572d502f5634114f362a64ad54 to your computer and use it in GitHub Desktop.

Select an option

Save GrimEpp/ef4bf5572d502f5634114f362a64ad54 to your computer and use it in GitHub Desktop.
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;
}
}
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);
}
}
}
@Gullbrann
Copy link
Copy Markdown

:O

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment