Minecraft 1.12.2确定玩家ping

时间:2019-05-26 10:45:30

标签: java ping minecraft

我想确定玩家的ping。一切在1.8.8版本中都运行良好,但是如果我在1.12.2上使用代码,则会得到不合逻辑的结果。我在本地主机上收到200左右的ping,即使在1.8er服务器上为0 ping。这也很清楚,因为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 :(得分:0)

通常,为了获得玩家的认可,就是这样。之后,我不知道ping get是否正确。因此,在插头文档中搜索1.12.2,我会找到答案。 (并且按照约定进行工作,我们不对命令进行编程,而在主类中则不进行其他编程)