そのため、サーバーのIPを確認する必要があるMinecraftのmodを作成しています。現在コードを配置していますが、別のクラスのプライベートフィールドであるため、NoSuchFieldExceptionが発生します。リフレクションを使用するModLoadersgetPrivateValueを使用しています。私はむしろプライベートな値を使用したくないので、プライベートのままにする必要があります。問題のコードは次のとおりです。
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;
}
十分な情報を提供できたと思います。よろしくお願いします。