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


那是我用来注册的总线。

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


那是我的事。当我加入单人游戏世界时,它会向我发送“测试”消息,但当我加入多人服务器时却不会。 (如Mineplex),请让我知道为什么会这样,谢谢!

最佳答案

该事件在logical server side上触发。

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

稍加挖掘(list I found不是最新的,但可能足以消除此类事件,几乎永远不会将其重命名),我发现FMLNetworkEvent.ClientConnectedToServerEvent会在客户端将要连接到任何服务器时在客户端上触发。

但是,不太可能通知您其他播放器已连接到同一服务器(虽然可能需要区分EntityJoinWorldEvent的实例,但EntityPlayerMP可能起作用)。

10-06 01:16