diff --git a/src/Managers/NetworkManager.cs b/src/Managers/NetworkManager.cs index 4b47bea..a3244f4 100644 --- a/src/Managers/NetworkManager.cs +++ b/src/Managers/NetworkManager.cs @@ -278,7 +278,10 @@ internal static class NetworkManager { if (rpcCall == (byte)RPC.CUSTOM_RPC_CALL) { - RPC.HandleCustomRPCPacked(player, reader); + if (RPC.HandleCustomRPCPacked(player, reader)) + { + break; + } } } diff --git a/src/Network/RPC.cs b/src/Network/RPC.cs index 1890e10..39d7cf6 100644 --- a/src/Network/RPC.cs +++ b/src/Network/RPC.cs @@ -1,6 +1,6 @@ using BetterAmongUs.Enums; -using BetterAmongUs.Utilities; using BetterAmongUs.Mono.Extended; +using BetterAmongUs.Utilities; using Hazel; namespace BetterAmongUs.Network; @@ -40,10 +40,10 @@ internal static class RPC /// /// The player who sent the RPC message. /// The message reader containing the RPC data. - internal static void HandleCustomRPCPacked(PlayerControl player, MessageReader oldReader) + internal static bool HandleCustomRPCPacked(PlayerControl player, MessageReader oldReader) { if (player == null || player.IsLocalPlayer() || player.Data == null) - return; + return false; MessageReader reader = MessageReader.Get(oldReader); @@ -63,9 +63,13 @@ internal static class RPC } break; } + + reader.Recycle(); + return true; } reader.Recycle(); + return false; } ///