java - Minecraft ModLoader mod,私有(private)字段 netManager 的问题

标签 java minecraft

所以,我一直在为 Minecraft 制作一个 mod,我需要在其中检查服务器 IP。我目前已经有了代码,但我收到了 NoSuchFieldException,因为它是另一个类的私有(private)字段。我正在使用 ModLoaders getPrivateValue 它使用反射。我宁愿不使用私有(private)值,并且它需要保持私有(private)。 这是问题代码:

public boolean isMCMEServer(EntityClientPlayerMP player) throws NoSuchFieldException {
    NetworkManager manager = (NetworkManager) ModLoader.getPrivateValue(NetClientHandler.class, player.sendQueue, "netManager");

    Socket socket = (Socket) ModLoader.getPrivateValue(NetworkManager.class, manager, "networkSocket");

    InetAddress address = socket.getInetAddress();
    if(address != null) {
        String hostName = address.getHostName();
        String hostAddress = address.getHostAddress();  
            if((hostAddress.equals(SERVER)) || (hostName.equals(SERVER))) {

                return true;
            }
    }
    return false;
}

我希望我已经提供了足够的信息,提前致谢

最佳答案

仍在使用私有(private)字段,但事实证明问题出在混淆上。

关于java - Minecraft ModLoader mod,私有(private)字段 netManager 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12083205/

相关文章:

java - Eclipse 中的步进过滤器

java - 二维数组中的加权随机数 - 处理

java - ClassLoader.getResources() 返回空枚举

docker - 无法访问专用服务器上的 docker itzg/minecraft-server

java - Java Applet 中的网络聊天应用程序

java - 在 Java 上运行 PDI Kettle - Mongodb 步骤缺少插件

java - 命令不注册 MinecraftForge 1.8

java - 如何移动掉落的元素?

java - 初始化新对象时的StackOverflow

java - 解析带双引号的参数