From 8c9ab51964e2f827943ae979e1273afc76d327d7 Mon Sep 17 00:00:00 2001 From: qinfyy Date: Sun, 6 Oct 2024 19:22:31 +0800 Subject: [PATCH] Fixed an issue where data is too long in MySQL mode --- Common/Database/Friend/FriendData.cs | 2 +- Common/Database/Quests/MissionData.cs | 2 +- Common/Database/Quests/QuestData.cs | 3 ++- Common/Util/Crypto.cs | 2 +- Common/Util/Security/Ec2b.cs | 6 +++--- DanhengKcpSharp/DanhengConnection.cs | 2 +- 6 files changed, 9 insertions(+), 8 deletions(-) diff --git a/Common/Database/Friend/FriendData.cs b/Common/Database/Friend/FriendData.cs index 6856887b..8b48babe 100644 --- a/Common/Database/Friend/FriendData.cs +++ b/Common/Database/Friend/FriendData.cs @@ -13,7 +13,7 @@ public class FriendData : BaseDatabaseDataHelper [SugarColumn(IsJson = true)] public List ReceiveApplyList { get; set; } = []; - [SugarColumn(IsJson = true)] + [SugarColumn(IsJson = true, ColumnDataType = "TEXT")] public Dictionary ChatHistory { get; set; } = []; // key: friend uid } diff --git a/Common/Database/Quests/MissionData.cs b/Common/Database/Quests/MissionData.cs index 476be92a..8d9db0e4 100644 --- a/Common/Database/Quests/MissionData.cs +++ b/Common/Database/Quests/MissionData.cs @@ -7,7 +7,7 @@ namespace EggLink.DanhengServer.Database.Quests; [SugarTable("Mission")] public class MissionData : BaseDatabaseDataHelper { - [SugarColumn(IsJson = true)] + [SugarColumn(IsJson = true, ColumnDataType = "TEXT")] public Dictionary> MissionInfo { get; set; } = []; // Dictionary> // seems like main missionId is not used diff --git a/Common/Database/Quests/QuestData.cs b/Common/Database/Quests/QuestData.cs index e305615d..e4b7a01f 100644 --- a/Common/Database/Quests/QuestData.cs +++ b/Common/Database/Quests/QuestData.cs @@ -6,7 +6,8 @@ namespace EggLink.DanhengServer.Database.Quests; [SugarTable("quest_data")] public class QuestData : BaseDatabaseDataHelper { - [SugarColumn(IsJson = true)] public Dictionary Quests { get; set; } = []; + [SugarColumn(IsJson = true, ColumnDataType = "MEDIUMTEXT")] + public Dictionary Quests { get; set; } = []; } public class QuestInfo diff --git a/Common/Util/Crypto.cs b/Common/Util/Crypto.cs index f23f2c15..c911d43c 100644 --- a/Common/Util/Crypto.cs +++ b/Common/Util/Crypto.cs @@ -69,7 +69,7 @@ public class Crypto } catch (Exception ex) { - Logger.Error($"An error occurred while loading the Encryption Seed:{ex}"); + Logger.Error($"An error occurred while loading the Client Secret Key:{ex}"); return null; } } diff --git a/Common/Util/Security/Ec2b.cs b/Common/Util/Security/Ec2b.cs index 634fa1f8..4f97d955 100644 --- a/Common/Util/Security/Ec2b.cs +++ b/Common/Util/Security/Ec2b.cs @@ -16,7 +16,7 @@ namespace EggLink.DanhengServer.Util.Security private byte[] Data; private ulong Seed; - private byte[] xorKey; + private byte[] XorKey; #pragma warning disable CS8618 // CS8618 - Non-nullable variable must contain a non-null value when exiting constructor. private Ec2b(byte[] key, byte[] data) @@ -127,7 +127,7 @@ namespace EggLink.DanhengServer.Util.Security public byte[] GetXorKey() { - return xorKey; + return XorKey; } private void GenerateDecryptionVector(byte[] key, byte[] crypt) @@ -154,7 +154,7 @@ namespace EggLink.DanhengServer.Util.Security output.AddRange(bytes); } - xorKey = output.ToArray(); + XorKey = output.ToArray(); } private static void KeyScramble(byte[] key) diff --git a/DanhengKcpSharp/DanhengConnection.cs b/DanhengKcpSharp/DanhengConnection.cs index 6aeb1b3c..cfab6cba 100644 --- a/DanhengKcpSharp/DanhengConnection.cs +++ b/DanhengKcpSharp/DanhengConnection.cs @@ -134,6 +134,7 @@ public class DanhengConnection { if (ConfigManager.Config.GameServer.UsePacketEncryption) Crypto.Xor(packet, XorKey); + _ = await Conversation.SendAsync(packet, CancelToken.Token); } catch @@ -159,7 +160,6 @@ public class DanhengConnection try { - //_ = await Conversation.SendAsync(packetBytes, CancelToken.Token); await SendPacket(packetBytes); } catch