本帖最后由 冰冷冷 于 2019-10-2 23:13 编辑
在1.13以前的版本中两个事件为
而在1.13+版本中有很大变化,以上两个事件已删除


解决办法
暂时只能通过检测gui来判断断开与连接

如果有更好方法或者哪里有错误还希望各位大佬多多指点
forge 1.13+ 进入/断开服务器连接事件的临时替代方法
在1.13以前的版本中两个事件为
FMLNetworkEvent.ClientConnectedToServerEvent | 当FML客户端发送连接服务端的请求时触发 |
FMLNetworkEvent.ClientDisconnectionFromServerEvent | 当FML客户端和服务端断开时触发 |


解决办法
@Mod.EventBusSubscriber(modid = VexMusic.MODID, value = Dist.CLIENT) private static class ConnectedToServerListener { @SubscribeEvent public static void onGuiOpen(GuiOpenEvent event) { GuiScreen gui = event.getGui(); if (gui instanceof GuiMainMenu || gui instanceof GuiConnecting) { //你需要做的事情相当于 FMLNetworkEvent.ClientConnectedToServerEvent MinecraftForge.EVENT_BUS.unregister(ConnectedToServerListener.class); } } } @Mod.EventBusSubscriber(modid = VexMusic.MODID, value = Dist.CLIENT) private static class DisconnectionFromServerListener { @SubscribeEvent public static void onGuiOpen(GuiOpenEvent event) { if (event.getGui() instanceof GuiMultiplayer) { //你需要做的事情 相当于 FMLNetworkEvent.ClientDisconnectionFromServerEvent MusicPlayer.mp3Player.stop(); MusicPlayer.playerList.stop(); } } } |

可以! 精华帖子,有很大帮助
你提到了 https://github.com/MinecraftForge/MinecraftForge/issues/5536。这个 issue ticket 由下面这笔 commit 关闭:
https://github.com/MinecraftForg ... d0fabdc91540b67cc8f
这笔 commit 中追加了 ClientPlayerNetworkEvent.LoggedInEvent 和 ClientPlayerNetworkEvent.LoggedOutEvent,应该能解决楼主的问题了吧?
https://github.com/MinecraftForg ... d0fabdc91540b67cc8f
这笔 commit 中追加了 ClientPlayerNetworkEvent.LoggedInEvent 和 ClientPlayerNetworkEvent.LoggedOutEvent,应该能解决楼主的问题了吧?