From 72a9266e9725401f6544a60fd2d9e2fc0300df6d Mon Sep 17 00:00:00 2001 From: kmyuhkyuk <72241714+kmyuhkyuk@users.noreply.github.com> Date: Mon, 23 Mar 2026 08:36:06 +0800 Subject: [PATCH] Update --- .../Helpers/PacketHelper.cs | 16 +++++-- .../Patchs/BitSerializationUtilPatch.cs | 43 ------------------- 2 files changed, 13 insertions(+), 46 deletions(-) delete mode 100644 SlayTheSpire2.LAN.Multiplayer/Patchs/BitSerializationUtilPatch.cs diff --git a/SlayTheSpire2.LAN.Multiplayer/Helpers/PacketHelper.cs b/SlayTheSpire2.LAN.Multiplayer/Helpers/PacketHelper.cs index 5c23d6e..fff15ae 100644 --- a/SlayTheSpire2.LAN.Multiplayer/Helpers/PacketHelper.cs +++ b/SlayTheSpire2.LAN.Multiplayer/Helpers/PacketHelper.cs @@ -1,7 +1,6 @@ using System.Reflection; using HarmonyLib; using MegaCrit.Sts2.Core.Multiplayer.Serialization; -using SlayTheSpire2.LAN.Multiplayer.Patchs; // ReSharper disable ClassNeverInstantiated.Global @@ -13,6 +12,10 @@ namespace SlayTheSpire2.LAN.Multiplayer.Helpers private static readonly Action SetPacketReaderBitPosition; + private static readonly Action WriteBytes; + + private static readonly Action ReadBits; + private static readonly AccessTools.FieldRef RefPacketWriterTempBuffer; private static readonly AccessTools.FieldRef RefPacketReaderTempBuffer; @@ -30,6 +33,13 @@ namespace SlayTheSpire2.LAN.Multiplayer.Helpers .GetProperty("BitPosition", flags) ?.SetMethod!); + WriteBytes = AccessTools.MethodDelegate>(AccessTools + .TypeByName("MegaCrit.Sts2.Core.Multiplayer.Serialization.BitSerializationUtil") + .GetMethod("WriteBytes", flags)!); + ReadBits = AccessTools.MethodDelegate>(AccessTools + .TypeByName("MegaCrit.Sts2.Core.Multiplayer.Serialization.BitSerializationUtil").GetMethod("ReadBits", + BindingFlags.Static | BindingFlags.Instance | BindingFlags.Public)!); + RefPacketWriterTempBuffer = AccessTools.FieldRefAccess("_tempBuffer"); RefPacketReaderTempBuffer = @@ -63,7 +73,7 @@ namespace SlayTheSpire2.LAN.Multiplayer.Helpers span[bytesWritten++] = (byte)val; var totalBits = bytesWritten * 8; - BitSerializationUtilWriteBytesPatch.WriteBytes(tempBuffer, writer.Buffer, writer.BitPosition, totalBits); + WriteBytes(tempBuffer, writer.Buffer, writer.BitPosition, totalBits); SetPacketWriterBitPosition(writer, writer.BitPosition + totalBits); } @@ -91,7 +101,7 @@ namespace SlayTheSpire2.LAN.Multiplayer.Helpers Array.Clear(tempBuffer); //7-bit variant and 1-bit flag - BitSerializationUtilReadBitsPatch.ReadBits(reader.Buffer, reader.BitPosition, tempBuffer, 8); + ReadBits(reader.Buffer, reader.BitPosition, tempBuffer, 8); SetPacketReaderBitPosition(reader, reader.BitPosition + 8); diff --git a/SlayTheSpire2.LAN.Multiplayer/Patchs/BitSerializationUtilPatch.cs b/SlayTheSpire2.LAN.Multiplayer/Patchs/BitSerializationUtilPatch.cs deleted file mode 100644 index 777bf4b..0000000 --- a/SlayTheSpire2.LAN.Multiplayer/Patchs/BitSerializationUtilPatch.cs +++ /dev/null @@ -1,43 +0,0 @@ -using System.Reflection; -using HarmonyLib; - -// ReSharper disable ClassNeverInstantiated.Global -// ReSharper disable UnusedMember.Global -// ReSharper disable UnusedType.Global - -namespace SlayTheSpire2.LAN.Multiplayer.Patchs -{ - [HarmonyPatch] - internal class BitSerializationUtilWriteBytesPatch - { - private static MethodInfo TargetMethod() - { - return AccessTools.TypeByName("MegaCrit.Sts2.Core.Multiplayer.Serialization.BitSerializationUtil") - .GetMethod("WriteBytes", BindingFlags.Static | BindingFlags.Instance | BindingFlags.Public)!; - } - - [HarmonyReversePatch] - public static void WriteBytes(byte[] originBuffer, byte[] destinationBuffer, int destinationBitPosition, - int totalBitsToWrite) - { - throw new NotImplementedException(); - } - } - - [HarmonyPatch] - internal class BitSerializationUtilReadBitsPatch - { - private static MethodInfo TargetMethod() - { - return AccessTools.TypeByName("MegaCrit.Sts2.Core.Multiplayer.Serialization.BitSerializationUtil") - .GetMethod("ReadBits", BindingFlags.Static | BindingFlags.Instance | BindingFlags.Public)!; - } - - [HarmonyReversePatch] - public static void ReadBits(byte[] originBuffer, int originBitPosition, byte[] destinationBuffer, - int totalBitsToRead) - { - throw new NotImplementedException(); - } - } -} \ No newline at end of file