反応テストのためにプレイヤーの正確なpingを知る必要があります。 私はこのためのハンドラを使用します。pingが一つの方法であるかどうかを知る片方向または背面のピン番号
public int pingPlayer(Player p) {
try {
String bukkitversion = Bukkit.getServer().getClass().getPackage().getName().substring(23);
Class<?> craftPlayer = Class.forName("org.bukkit.craftbukkit." + bukkitversion + ".entity.CraftPlayer");
Object handle = craftPlayer.getMethod("getHandle").invoke(p);
Integer ping = (Integer) handle.getClass().getDeclaredField("ping").get(handle);
return ping.intValue();
} catch (ClassNotFoundException | IllegalAccessException | IllegalArgumentException | InvocationTargetException | NoSuchMethodException | SecurityException | NoSuchFieldException e) {
return -1;
}
}
しかし、今、私はいけない[サーバー] - > [プレーヤー]または二つの方法[サーバー - >プレーヤー - >サーバー]
誰かが知っていますか?これはどのように機能しますか?
ピングは、それがbukkitで同じであることを往復 – Michael
よろしいですか? –
@NicolaUetzどのようにpingが動作するのですか?それは往復にかかった時間を数える(このようなものは私にXDを引用しない)。 'int ping =((CraftPlayer)p).getHandle()。playerConnection.player.ping;'ここではリフレクションの必要はありません。 – Lightspeed360