Minecraft 1.12.2 определение пинга игрока - PullRequest
0 голосов
/ 26 мая 2019

Я хотел определить пинг игрока.Все отлично работало в версии 1.8.8, но если я использую код на 1.12.2, я получаю нелогичные результаты.Я получаю пинг 200 или около того обратно на мой локальный хост, хотя у меня есть 0 пинг на сервере 1.8er.Это также ясно, потому что Localhost ...

Я проверил это на своем корневом сервере и на моем localhost.Я гуглил, но нашел только учебники для версии 1.8

package de.n1ck145.ping.main;

import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.command.ConsoleCommandSender;
import org.bukkit.craftbukkit.v1_12_R1.entity.CraftPlayer;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;

public class Main extends JavaPlugin{
    private String prefix;
    private String message;
    private ConsoleCommandSender console;

    @Override
    public void onEnable() {
        console = Bukkit.getConsoleSender();

        getConfig().options().copyDefaults(true);
        saveConfig();

        prefix = getConfig().getString("prefix");
        prefix = ChatColor.translateAlternateColorCodes('&', prefix);
        message = getConfig().getString("pingMessage");
        message = ChatColor.translateAlternateColorCodes('&', message);
        console.sendMessage(prefix + "§aPlugin ready!");
    }

    @Override
    public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
        if(command.getName().equalsIgnoreCase("ping")) {
            if(!(sender instanceof Player)) {
                sender.sendMessage(prefix + "§cYou must be a player!");
                return false;
            }

            if(sender.hasPermission("cmd.ping")) {
                sender.sendMessage(message.replace("%ping%", getPing((Player) sender) + ""));
            }else
                sender.sendMessage(prefix + "§cYou don't have permission to do this!");

        }
        return true;
    }


    private int getPing(Player p) {
        return ((CraftPlayer) p).getHandle().ping;
    }
}

1 Ответ

0 голосов
/ 01 июня 2019

Обычно, для получения пинга игрока, вот так.После этого я не знаю, является ли пинг верным или нет.Итак, поищите в документации по spigot 1.12.2 , и вы найдете свой ответ, я думаю.(И работаем над соглашениями, лол, мы не программируем команды, а другие просто в классе Main)

...