package so.irfn.pingcontrol;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
public class PingControl extends JavaPlugin {
private int saniye = 60;
@Override
public void onEnable() {
Bukkit.getScheduler().scheduleSyncRepeatingTask((Plugin) this, new Runnable() {
@Override
public void run() {
for (Player p : Bukkit.getOnlinePlayers()){
if (getPing(p) > 250)
p.kickPlayer("§4Yüksek ping nedeniyle sunucudan atıldınız. Pinginiz 250'nin altında olmalıdır.");
}
}
}, 30 * 20L, saniye * 20L);
}
Class<?> CPClass;
String serverName = Bukkit.getServer().getClass().getPackage().getName(),
serverVersion = serverName.substring(serverName.lastIndexOf(".") + 1, serverName.length());
public int getPing(Player p) {
try {
CPClass = Class.forName("org.bukkit.craftbukkit." + serverVersion + ".entity.CraftPlayer");
Object CraftPlayer = CPClass.cast(p);
Method getHandle = CraftPlayer.getClass().getMethod("getHandle", new Class[0]);
Object EntityPlayer = getHandle.invoke(CraftPlayer, new Object[0]);
Field ping = EntityPlayer.getClass().getDeclaredField("ping");
return ping.getInt(EntityPlayer);
} catch (Exception e) {
e.printStackTrace();
}
return 0;
}
}