2012-08-23 67 views
3

所以,我一直在做一個模爲我的世界,在那裏我需要檢查服務器的IP。我目前有代碼,但我得到一個NoSuchFieldException,因爲它是來自另一個類的私有字段。我正在使用使用反射的ModLoaders getPrivateValue。我寧願不使用私人價值觀,也需要保持私密性。 這裏的問題代碼:的Minecraft ModLoader國防部,與私人領域的問題netManager

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

我希望我已經給了足夠的信息,在此先感謝

回答

0

仍在使用私有字段,但事實證明,問題是用混淆。