2

我正在尝试在 MinecraftForge 中获取 MinecraftServer 实例。

这是我一直在尝试的代码:

MinecraftServer minecraftServer = MinecraftServer.getServer();
if(minecraftServer == null){
     System.out.println("null!!!")
}

当我运行 mod 时,以下是响应:

[p.a.c.a:pr:92]: null!!!!

我也尝试过使用 FMLCommonHandler,我使用的代码是:

MinecraftServer minecraftServer = FMLCommandHandler.instance().getMinecraftServerInstance();
if(minecraftServer == null){
     System.out.println("null!!!");
}

并且,与当前代码的响应相同。

[p.a.c.a:pr:92]: null!!!!

最后,尝试了 FMLServerHandler ,我使用的代码是:

MinecraftServer minecraftServer = FMLServerHandler.instance().getServer();
if(minecraftServer == null){
    System.out.println("null!!!")
}

回应也是:

[p.a.c.a:pr:92]: null!!!!
4

1 回答 1

3

弄清楚了!制作了一个 FakePlayer,然后从玩家那里获得了 minecraft 服务器实例,而不会弄乱数据包。

我使用的代码:

WorldServer worldServer = DimensionManager.getWorld(0); // default world
GameProfile gameProfile = new GameProfile(UUID.randomUUID(), "FakePlayer");
FakePlayer fakePlayer = new FakePlayer(worldServer, gameProfile);
MinecraftServer minecraftServer = fakePlayer.mcServer;
于 2015-11-06T08:57:25.173 回答