#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
}