Ping yüksek atma skript

TheDewiLSTaR

Kömür Madencisi
En iyi cevaplar
0
arkadaşlar adamın ping 250 geçince oyundan kick atmasını istiyorum nedeni ise ping çok yüksek demesini istiyorum
skript varsa oda olur
 
Son düzenleme:

IRFN

Sonoyuncu.Network
En iyi cevaplar
0
Aşağıda yazdığım kodu derlersen, kodda saniye yazan yerdeki sürede bir online oyuncuların pingini kontrol eder, pingi 250 üstünde olanları oyundan atar. Bunu her saniye yapmak sağlıklı değildir, saniye kısmına en az 20-30 yazmanı öneririm. Ben default olarak 60, yani 1 dakika yaptım.
Kodu notepad++ ile yazdım, iş yerinde eclipse yok, bu nedenle tüm importları yapamadım. Muhtemelen Schedule importu isteyecektir, eksik importları kendin tamamlarsın.

PHP:
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;
    }

}
 
Üst