Как я могу получить пинг сервера на BungeeCord с помощью Java или Kotlin

#java #kotlin #minecraft #bungeecord

Вопрос:

Я пытаюсь получить пинг сервера. Как мне это сделать в Котлине или Java

Мой текущий код:

Котлин:

 class Events: Listener {
    @EventHandler
    fun joinEvent(event: PostLoginEvent) {
        var plugin = Main.getInstance()
        var server = plugin.proxy.getServerInfo("pserver")
    }
}
 

Ява:

 public class Events implements Listener {
    @EventHandler
    void postLogin ( PostLoginEvent event){
        Main plugin = Main.getInstance();
        ServerInfo server = plugin.getProxy().getServerInfo("pserver");
    }
}
 

Заранее благодарю вас 😉

Комментарии:

1. не могли бы вы быть более точными ? ваша цель мне не ясна ( например, используется технос).

2. Вы можете использовать ((CraftPlayer) target).getHandle().ping , но я не думаю , что это будет работать внутри PostLoginEvent , попробуйте сделать команду для этого

3. @Ofek данный код предназначен для крана/бумаги, а не для bungeecord.

4. @Clafter отвечает ли мой ответ на ваш вопрос ? Это все исправит ?

Ответ №1:

Вы не можете получить пинг сервера. Пинг-это задержка между 2 вещами (здесь игрок и сервер). Таким образом, каждый раз, когда, например, сервер не меняется, мы получаем пинг благодаря экземпляру игрока (он будет управлять своим собственным пингом).

Я не знаю, как это сделать на Kotlin, но на Java (Bungeecord) это :

 proxiedPlayer.getPing()
 

Итак, вы должны использовать его таким образом :

 @EventHandler
public void postLogin(PostLoginEvent event){
    ProxiedPlayer proxiedPlayer = event.getPlayer();
    int ping = proxiedPlayer.getPing(); // this is what you want
}