diff --git a/TerrariaServerAPI/TerrariaApi.Server/Hooking/NetHooks.cs b/TerrariaServerAPI/TerrariaApi.Server/Hooking/NetHooks.cs index 97626a37..ff122a91 100644 --- a/TerrariaServerAPI/TerrariaApi.Server/Hooking/NetHooks.cs +++ b/TerrariaServerAPI/TerrariaApi.Server/Hooking/NetHooks.cs @@ -23,7 +23,7 @@ public static void AttachTo(HookManager hookManager) HookEvents.Terraria.Netplay.OnConnectionAccepted += OnConnectionAccepted; HookEvents.Terraria.Chat.ChatHelper.BroadcastChatMessage += OnBroadcastChatMessage; HookEvents.Terraria.Net.NetManager.SendData += OnSendNetData; - On.Terraria.Netplay.UpdateConnectedClients += OnUpdateConnectedClients; + HookEvents.Terraria.Netplay.UpdateConnectedClients += OnUpdateConnectedClients; Hooks.NetMessage.SendData += OnSendData; Hooks.NetMessage.SendBytes += OnSendBytes; @@ -31,14 +31,16 @@ public static void AttachTo(HookManager hookManager) Hooks.MessageBuffer.NameCollision += OnNameCollision; } - static void OnUpdateConnectedClients(On.Terraria.Netplay.orig_UpdateConnectedClients orig) + static void OnUpdateConnectedClients(object? sender, HookEvents.Terraria.Netplay.UpdateConnectedClientsEventArgs args) + { + if (!args.ContinueExecution) return; + args.ContinueExecution = false; + args.OriginalMethod(); + if (ServerApi.ForceUpdate) { - orig(); - if (ServerApi.ForceUpdate) - { - Terraria.Netplay.HasClients = true; - } + Terraria.Netplay.HasClients = true; } + } static void OnBroadcastChatMessage(object? sender, HookEvents.Terraria.Chat.ChatHelper.BroadcastChatMessageEventArgs args) {