diff --git a/Common/Data/Excel/SpecialAvatarExcel.cs b/Common/Data/Excel/SpecialAvatarExcel.cs index 79a34a27..e3686042 100644 --- a/Common/Data/Excel/SpecialAvatarExcel.cs +++ b/Common/Data/Excel/SpecialAvatarExcel.cs @@ -77,7 +77,7 @@ namespace EggLink.DanhengServer.Data.Excel CurrentHp = hp == 0 ? 10000 : hp, CurrentSp = sp, InternalEntityId = Id, - PlayerData = DatabaseHelper.GetInstance(uid), + PlayerData = DatabaseHelper.Instance!.GetInstance(uid), }; } } diff --git a/Common/Database/Account/AccountData.cs b/Common/Database/Account/AccountData.cs index 7c68c424..719300de 100644 --- a/Common/Database/Account/AccountData.cs +++ b/Common/Database/Account/AccountData.cs @@ -21,7 +21,7 @@ namespace EggLink.DanhengServer.Database.Account public static AccountData? GetAccountByUserName(string username) { AccountData? result = null; - DatabaseHelper.Instance?.GetAllInstance()?.ForEach((account) => + DatabaseHelper.GetAllInstance()?.ForEach((account) => { if (account.Username == username) { diff --git a/Common/Database/Account/AccountHelper.cs b/Common/Database/Account/AccountHelper.cs index 9357c021..5f79aa73 100644 --- a/Common/Database/Account/AccountHelper.cs +++ b/Common/Database/Account/AccountHelper.cs @@ -31,7 +31,7 @@ namespace EggLink.DanhengServer.Database.Account Username = username, Permissions = perStr }; - DatabaseHelper.Instance?.SaveInstance(account); + DatabaseHelper.SaveInstance(account); } } } diff --git a/Common/Database/Avatar/AvatarData.cs b/Common/Database/Avatar/AvatarData.cs index a4651aa6..9b8307e3 100644 --- a/Common/Database/Avatar/AvatarData.cs +++ b/Common/Database/Avatar/AvatarData.cs @@ -393,7 +393,7 @@ namespace EggLink.DanhengServer.Database.Avatar Pos = (uint)pos, }; - var inventory = DatabaseHelper.GetInstance(PlayerData!.Uid)!; + var inventory = DatabaseHelper.Instance!.GetInstance(PlayerData!.Uid)!; foreach (var item in Relic) { var relic = inventory.RelicItems.Find(x => x.UniqueId == item.Value)!; diff --git a/Common/Database/DatabaseHelper.cs b/Common/Database/DatabaseHelper.cs index 71e50445..a13020f5 100644 --- a/Common/Database/DatabaseHelper.cs +++ b/Common/Database/DatabaseHelper.cs @@ -123,7 +123,7 @@ namespace EggLink.DanhengServer.Database } } - public static void MoveFromSqlite() + public void MoveFromSqlite() { logger.Info("Moving from sqlite..."); @@ -199,7 +199,7 @@ namespace EggLink.DanhengServer.Database } } - public static T? GetInstance(int uid) where T : class, new() + public T? GetInstance(int uid) where T : class, new() { try { @@ -273,7 +273,7 @@ namespace EggLink.DanhengServer.Database SaveDatabase(); } - public static void SaveDatabase() // per 5 min + public void SaveDatabase() // per 5 min { try { @@ -318,7 +318,7 @@ namespace EggLink.DanhengServer.Database } } - public static void DeleteInstance(T instance) where T : class, new() + public void DeleteInstance(T instance) where T : class, new() { sqlSugarScope?.Deleteable(instance).ExecuteCommand(); UidInstanceMap[(instance as BaseDatabaseDataHelper)!.Uid].Remove((instance as BaseDatabaseDataHelper)!); // remove from the map diff --git a/Common/Database/Player/PlayerData.cs b/Common/Database/Player/PlayerData.cs index ade81fa0..34e6d20e 100644 --- a/Common/Database/Player/PlayerData.cs +++ b/Common/Database/Player/PlayerData.cs @@ -69,7 +69,7 @@ namespace EggLink.DanhengServer.Database.Player public PlayerSimpleInfo ToSimpleProto(FriendOnlineStatus status) { - var AvatarInfo = DatabaseHelper.GetInstance(Uid)!; + var AvatarInfo = DatabaseHelper.Instance!.GetInstance(Uid)!; foreach (var avatar in AvatarInfo.Avatars) { @@ -120,7 +120,7 @@ namespace EggLink.DanhengServer.Database.Player RecordInfo = new(), }; - var AvatarInfo = DatabaseHelper.GetInstance(Uid); + var AvatarInfo = DatabaseHelper.Instance!.GetInstance(Uid); if (AvatarInfo != null) { diff --git a/GameServer/Command/CommandSender.cs b/GameServer/Command/CommandSender.cs index be1708b1..5044b8c7 100644 --- a/GameServer/Command/CommandSender.cs +++ b/GameServer/Command/CommandSender.cs @@ -42,7 +42,7 @@ namespace EggLink.DanhengServer.Command public bool HasPermission(string permission) { - var account = DatabaseHelper.GetInstance(Player.Uid)!; + var account = DatabaseHelper.Instance!.GetInstance(Player.Uid)!; return account.Permissions!.Contains(permission); } } diff --git a/GameServer/Game/Battle/BattleInstance.cs b/GameServer/Game/Battle/BattleInstance.cs index 42335d8d..99836cec 100644 --- a/GameServer/Game/Battle/BattleInstance.cs +++ b/GameServer/Game/Battle/BattleInstance.cs @@ -96,7 +96,7 @@ namespace EggLink.DanhengServer.Game.Battle var avatarType = AvatarType.AvatarFormalType; if (avatar.AssistUid != 0) { - var player = DatabaseHelper.GetInstance(avatar.AssistUid); + var player = DatabaseHelper.Instance!.GetInstance(avatar.AssistUid); if (player != null) { avatarInstance = player.Avatars!.Find(item => item.GetAvatarId() == avatar.BaseAvatarId); diff --git a/GameServer/Game/Friend/FriendManager.cs b/GameServer/Game/Friend/FriendManager.cs index 67e49441..47c9c8b8 100644 --- a/GameServer/Game/Friend/FriendManager.cs +++ b/GameServer/Game/Friend/FriendManager.cs @@ -18,7 +18,7 @@ namespace EggLink.DanhengServer.Game.Friend public void AddFriend(int targetUid) { - var target = DatabaseHelper.GetInstance(targetUid); + var target = DatabaseHelper.Instance!.GetInstance(targetUid); if (target == null) { return; @@ -58,7 +58,7 @@ namespace EggLink.DanhengServer.Game.Friend public PlayerData? ConfirmAddFriend(int targetUid) { - var target = DatabaseHelper.GetInstance(targetUid); + var target = DatabaseHelper.Instance!.GetInstance(targetUid); if (target == null) { return null; @@ -100,7 +100,7 @@ namespace EggLink.DanhengServer.Game.Friend public void RefuseAddFriend(int targetUid) { - var target = DatabaseHelper.GetInstance(targetUid); + var target = DatabaseHelper.Instance!.GetInstance(targetUid); if (target == null) { return; @@ -174,7 +174,7 @@ namespace EggLink.DanhengServer.Game.Friend } else { // offline - var friendData = DatabaseHelper.GetInstance(recvUid); + var friendData = DatabaseHelper.Instance!.GetInstance(recvUid); if (friendData == null) return; // not exist maybe server profile if (!friendData.ChatHistory.TryGetValue(sendUid, out FriendChatHistory? history)) { diff --git a/GameServer/Game/Player/PlayerInstance.cs b/GameServer/Game/Player/PlayerInstance.cs index e39ee44c..b653e2c8 100644 --- a/GameServer/Game/Player/PlayerInstance.cs +++ b/GameServer/Game/Player/PlayerInstance.cs @@ -80,7 +80,7 @@ namespace EggLink.DanhengServer.Game.Player Data.NextStaminaRecover = Extensions.GetUnixSec() + GameConstants.STAMINA_RESERVE_RECOVERY_TIME; Data.Level = ConfigManager.Config.ServerOption.StartTrailblazerLevel; - DatabaseHelper.Instance?.SaveInstance(Data); + DatabaseHelper.SaveInstance(Data); InitialPlayerManager(); @@ -154,20 +154,10 @@ namespace EggLink.DanhengServer.Game.Player } } - public T? InitializeDatabase() where T : class, new() + public T InitializeDatabase() where T : class, new() { - if (new T() is BaseDatabaseDataHelper database) - { - var instance = DatabaseHelper.Instance?.GetInstance(Uid); - if (instance == null) - { - database.Uid = Uid; - DatabaseHelper.Instance?.SaveInstance((database as T)!); - instance = DatabaseHelper.Instance?.GetInstance(Uid); - } - return instance!; - } - return null; + var instance = DatabaseHelper.Instance?.GetInstanceOrCreateNew(Uid); + return instance!; } #endregion @@ -191,24 +181,6 @@ namespace EggLink.DanhengServer.Game.Player EnterScene(OldEntryId, 0, false); MoveTo(LastPos!, LastRot!); } - - try - { - DatabaseHelper.Instance?.UpdateInstance(LineupManager!.LineupData); - DatabaseHelper.Instance?.UpdateInstance(InventoryManager!.Data); - DatabaseHelper.Instance?.UpdateInstance(MissionManager!.Data); - DatabaseHelper.Instance?.UpdateInstance(AvatarManager!.AvatarData!); - DatabaseHelper.Instance?.UpdateInstance(FriendManager!.FriendData!); - DatabaseHelper.Instance?.UpdateInstance(MessageManager!.Data!); - DatabaseHelper.Instance?.UpdateInstance(ChessRogueManager!.ChessRogueNousData!); - DatabaseHelper.Instance?.UpdateInstance(GachaManager!.GachaData!); - DatabaseHelper.Instance?.UpdateInstance(Data); - DatabaseHelper.Instance?.UpdateInstance(PlayerUnlockData!); - DatabaseHelper.Instance?.UpdateInstance(SceneData!); - DatabaseHelper.Instance?.UpdateInstance(TutorialData!); - } catch - { - } } public void SendPacket(BasePacket packet)