diff --git a/src/Snap.Hutao/Snap.Hutao/Service/Discord/DiscordController.cs b/src/Snap.Hutao/Snap.Hutao/Service/Discord/DiscordController.cs index 6166c562..39c8336a 100644 --- a/src/Snap.Hutao/Snap.Hutao/Service/Discord/DiscordController.cs +++ b/src/Snap.Hutao/Snap.Hutao/Service/Discord/DiscordController.cs @@ -4,6 +4,7 @@ using Snap.Discord.GameSDK.ABI; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; +using System.Text; using System.Text.Unicode; namespace Snap.Hutao.Service.Discord; @@ -158,7 +159,7 @@ internal static class DiscordController static unsafe void DebugWriteDiscordMessage(void* state, DiscordLogLevel logLevel, sbyte* ptr) { ReadOnlySpan utf8 = MemoryMarshal.CreateReadOnlySpanFromNullTerminated((byte*)ptr); - string message = System.Text.Encoding.UTF8.GetString(utf8); + string message = Encoding.UTF8.GetString(utf8); System.Diagnostics.Debug.WriteLine($"[Discord.GameSDK]:[{logLevel}]:{message}"); } } @@ -224,18 +225,18 @@ internal static class DiscordController } } - private static unsafe void SetString(sbyte* reference, int length, string source) + private static unsafe void SetString(sbyte* reference, int length, in ReadOnlySpan source) { - Span sbytes = new(reference, length); - sbytes.Clear(); - Utf8.FromUtf16(source.AsSpan(), MemoryMarshal.Cast(sbytes), out _, out _); + Span bytes = new(reference, length); + bytes.Clear(); + Utf8.FromUtf16(source, bytes, out _, out _); } private static unsafe void SetString(sbyte* reference, int length, in ReadOnlySpan source) { - Span sbytes = new(reference, length); - sbytes.Clear(); - source.CopyTo(MemoryMarshal.Cast(sbytes)); + Span bytes = new(reference, length); + bytes.Clear(); + source.CopyTo(bytes); } private struct DiscordAsyncAction