PlayerLoggedInEvent只能在单人游戏中运行? (MC Forge)

时间:2017-07-11 20:38:48

标签: java minecraft minecraft-forge

FMLCommonHandler.instance().bus().register(new PlayerJoin());

这是我用来注册它的总线。

@SubscribeEvent
public void onPlayerJoinServer(PlayerLoggedInEvent event) {
    event.player.addChatMessage(new ChatComponentText("test"));
    return;
}

这是我的事。当我加入单人游戏时,它会向我发送"测试"消息,但不是我加入多人游戏服务器时。 (像Mineplex一样)请告诉我为什么会这样,谢谢!

1 个答案:

答案 0 :(得分:1)

该事件在 logical server side 上被触发。

如果您的mod在物理服务器上不存在(即Mineplex尚未安装它),则它不会触发。

一点点挖掘(list I found不是最新的,但可能已经足够了,因为这样的事件永远不会被删除,几乎从未重命名)并且我发现FMLNetworkEvent.ClientConnectedToServerEvent在客户端上被解雇了 当该客户端即将连接到任何服务器时。

但是,不太可能通知您其他播放器已连接到同一服务器(EntityJoinWorldEvent可能有效,但您需要区分{{1}的实例})。