From e2e0939cca40530f224a211189bd51a16857aa6e Mon Sep 17 00:00:00 2001 From: Somebody Date: Sun, 25 Aug 2024 20:25:52 +0800 Subject: [PATCH] Refactor Command & Format Code --- Command/Command/Cmd/CommandAccount.cs | 12 +- Command/Command/Cmd/CommandAvatar.cs | 78 ++++---- Command/Command/Cmd/CommandGive.cs | 12 +- Command/Command/Cmd/CommandGiveall.cs | 48 ++--- Command/Command/Cmd/CommandHelp.cs | 22 ++- Command/Command/Cmd/CommandHero.cs | 16 +- Command/Command/Cmd/CommandKick.cs | 4 +- Command/Command/Cmd/CommandLineup.cs | 8 +- Command/Command/Cmd/CommandMail.cs | 26 ++- Command/Command/Cmd/CommandMission.cs | 42 ++-- Command/Command/Cmd/CommandRaid.cs | 4 +- Command/Command/Cmd/CommandRelic.cs | 18 +- Command/Command/Cmd/CommandReload.cs | 8 +- Command/Command/Cmd/CommandRogue.cs | 63 +++--- Command/Command/Cmd/CommandScene.cs | 41 ++-- Command/Command/Cmd/CommandSetlevel.cs | 6 +- Command/Command/Cmd/CommandUnlockAll.cs | 6 +- Command/Command/Cmd/CommandUnstuck.cs | 8 +- Command/Command/Cmd/CommandWindy.cs | 2 +- Command/Command/CommandArg.cs | 8 +- Command/Command/CommandManager.cs | 183 +++++++++--------- ...CommandInfo.cs => CommandInfoAttribute.cs} | 17 +- Common/Command/ICommand.cs | 4 +- Common/Common.csproj | 2 +- .../Rogue/RogueDialogueBaseConfigInfo.cs | 8 +- Common/Data/Excel/RogueTournAreaExcel.cs | 1 + Common/Data/Excel/RogueTournBuffExcel.cs | 2 + .../Excel/RogueTournDifficultyCompExcel.cs | 2 +- Common/Data/Excel/RogueTournFormulaExcel.cs | 4 +- Common/Data/GameData.cs | 20 +- Common/Data/ResourceManager.cs | 164 ++++++++-------- Common/Database/DatabaseHelper.cs | 4 +- Common/Internationalization/I18nManager.cs | 2 +- .../Message/LanguageCHS.cs | 1 + .../Message/LanguageCHT.cs | 1 + .../Message/LanguageEN.cs | 1 + Common/Util/Extensions.cs | 4 +- DanhengKcpSharp/DanhengListener.cs | 2 +- GameServer/Game/Lineup/LineupManager.cs | 18 +- .../Game/RogueTourn/RogueTournManager.cs | 27 +-- GameServer/Game/Scene/SceneEntityLoader.cs | 49 ++--- GameServer/GameServer.csproj | 10 - GameServer/Plugin/PluginManager.cs | 3 +- GameServer/Server/Connection.cs | 4 +- Program/Handbook/HandbookGenerator.cs | 12 +- Program/Program/EntryPoint.cs | 36 ++-- 46 files changed, 504 insertions(+), 509 deletions(-) rename Common/Command/{CommandInfo.cs => CommandInfoAttribute.cs} (65%) diff --git a/Command/Command/Cmd/CommandAccount.cs b/Command/Command/Cmd/CommandAccount.cs index c925a410..80399784 100644 --- a/Command/Command/Cmd/CommandAccount.cs +++ b/Command/Command/Cmd/CommandAccount.cs @@ -11,7 +11,7 @@ public class CommandAccount : ICommand { if (arg.Args.Count < 2) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.InvalidArguments")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.InvalidArguments")); return; } @@ -21,30 +21,30 @@ public class CommandAccount : ICommand if (arg.Args.Count > 2) if (!int.TryParse(arg.Args[2], out uid)) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Account.InvalidUid")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Account.InvalidUid")); return; } if (AccountData.GetAccountByUserName(account) != null) { - await arg.SendMsg(string.Format(I18nManager.Translate("Game.Command.Account.DuplicateAccount"), account)); + await arg.SendMsg(string.Format(I18NManager.Translate("Game.Command.Account.DuplicateAccount"), account)); return; } if (uid != 0 && AccountData.GetAccountByUid(uid) != null) { - await arg.SendMsg(string.Format(I18nManager.Translate("Game.Command.Account.DuplicateUID"), uid)); + await arg.SendMsg(string.Format(I18NManager.Translate("Game.Command.Account.DuplicateUID"), uid)); return; } try { AccountHelper.CreateAccount(account, uid); - await arg.SendMsg(I18nManager.Translate("Game.Command.Account.CreateSuccess", account)); + await arg.SendMsg(I18NManager.Translate("Game.Command.Account.CreateSuccess", account)); } catch (Exception ex) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Account.CreateError", ex.Message)); + await arg.SendMsg(I18NManager.Translate("Game.Command.Account.CreateError", ex.Message)); } } } \ No newline at end of file diff --git a/Command/Command/Cmd/CommandAvatar.cs b/Command/Command/Cmd/CommandAvatar.cs index 769100c6..ae6d66cb 100644 --- a/Command/Command/Cmd/CommandAvatar.cs +++ b/Command/Command/Cmd/CommandAvatar.cs @@ -7,7 +7,7 @@ using EggLink.DanhengServer.Proto; namespace EggLink.DanhengServer.Command.Command.Cmd; -[CommandInfo("avatar", "Game.Command.Avatar.Desc", "Game.Command.Avatar.Usage")] +[CommandInfo("avatar", "Game.Command.Avatar.Desc", "Game.Command.Avatar.Usage", ["av", "ava"])] public class CommandAvatar : ICommand { [CommandMethod("talent")] @@ -15,23 +15,23 @@ public class CommandAvatar : ICommand { if (arg.Target == null) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.PlayerNotFound")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.PlayerNotFound")); return; } if (arg.BasicArgs.Count < 2) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.InvalidArguments")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.InvalidArguments")); return; } // change basic type var avatarId = arg.GetInt(0); var level = arg.GetInt(1); - if (level < 0 || level > 10) + if (level is < 0 or > 10) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Avatar.InvalidLevel", - I18nManager.Translate("Word.Talent"))); + await arg.SendMsg(I18NManager.Translate("Game.Command.Avatar.InvalidLevel", + I18NManager.Translate("Word.Talent"))); return; } @@ -55,8 +55,8 @@ public class CommandAvatar : ICommand }); } }); - await arg.SendMsg(I18nManager.Translate("Game.Command.Avatar.AllAvatarsLevelSet", - I18nManager.Translate("Word.Talent"), level.ToString())); + await arg.SendMsg(I18NManager.Translate("Game.Command.Avatar.AllAvatarsLevelSet", + I18NManager.Translate("Word.Talent"), level.ToString())); // sync await player.SendPacket(new PacketPlayerSyncScNotify(player.AvatarManager.AvatarData.Avatars)); @@ -67,7 +67,7 @@ public class CommandAvatar : ICommand var avatar = player.AvatarManager!.GetAvatar(avatarId); if (avatar == null) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Avatar.AvatarNotFound")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Avatar.AvatarNotFound")); return; } @@ -79,9 +79,9 @@ public class CommandAvatar : ICommand // sync await player.SendPacket(new PacketPlayerSyncScNotify(avatar)); - await arg.SendMsg(I18nManager.Translate("Game.Command.Avatar.AvatarLevelSet", + await arg.SendMsg(I18NManager.Translate("Game.Command.Avatar.AvatarLevelSet", avatar.Excel?.Name?.Replace("{NICKNAME}", player.Data.Name) ?? avatarId.ToString(), - I18nManager.Translate("Word.Talent"), level.ToString())); + I18NManager.Translate("Word.Talent"), level.ToString())); } [CommandMethod("get")] @@ -89,22 +89,22 @@ public class CommandAvatar : ICommand { if (arg.Target == null) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.PlayerNotFound")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.PlayerNotFound")); return; } - if (arg.BasicArgs.Count < 1) await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.InvalidArguments")); + if (arg.BasicArgs.Count < 1) await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.InvalidArguments")); var id = arg.GetInt(0); var excel = await arg.Target.Player!.AvatarManager!.AddAvatar(id); if (excel == null) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Avatar.AvatarFailedGet", id.ToString())); + await arg.SendMsg(I18NManager.Translate("Game.Command.Avatar.AvatarFailedGet", id.ToString())); return; } - await arg.SendMsg(I18nManager.Translate("Game.Command.Avatar.AvatarGet", excel.Name ?? id.ToString())); + await arg.SendMsg(I18NManager.Translate("Game.Command.Avatar.AvatarGet", excel.Name ?? id.ToString())); } [CommandMethod("rank")] @@ -112,18 +112,18 @@ public class CommandAvatar : ICommand { if (arg.Target == null) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.PlayerNotFound")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.PlayerNotFound")); return; } - if (arg.BasicArgs.Count < 2) await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.InvalidArguments")); + if (arg.BasicArgs.Count < 2) await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.InvalidArguments")); var id = arg.GetInt(0); var rank = arg.GetInt(1); - if (rank < 0 || rank > 6) + if (rank is < 0 or > 6) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Avatar.InvalidLevel", - I18nManager.Translate("Word.Rank"))); + await arg.SendMsg(I18NManager.Translate("Game.Command.Avatar.InvalidLevel", + I18NManager.Translate("Word.Rank"))); return; } @@ -133,8 +133,8 @@ public class CommandAvatar : ICommand { foreach (var path in avatar.PathInfoes.Values) path.Rank = Math.Min(rank, 6); }); - await arg.SendMsg(I18nManager.Translate("Game.Command.Avatar.AllAvatarsLevelSet", - I18nManager.Translate("Word.Rank"), rank.ToString())); + await arg.SendMsg(I18NManager.Translate("Game.Command.Avatar.AllAvatarsLevelSet", + I18NManager.Translate("Word.Rank"), rank.ToString())); // sync await arg.Target.SendPacket( @@ -145,7 +145,7 @@ public class CommandAvatar : ICommand var avatar = arg.Target.Player!.AvatarManager!.GetAvatar(id); if (avatar == null) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Avatar.AvatarNotFound")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Avatar.AvatarNotFound")); return; } @@ -154,9 +154,9 @@ public class CommandAvatar : ICommand // sync await arg.Target.SendPacket(new PacketPlayerSyncScNotify(avatar)); - await arg.SendMsg(I18nManager.Translate("Game.Command.Avatar.AvatarLevelSet", + await arg.SendMsg(I18NManager.Translate("Game.Command.Avatar.AvatarLevelSet", avatar.Excel?.Name?.Replace("{NICKNAME}", arg.Target.Player!.Data.Name) ?? id.ToString(), - I18nManager.Translate("Word.Rank"), rank.ToString())); + I18NManager.Translate("Word.Rank"), rank.ToString())); } } @@ -165,22 +165,22 @@ public class CommandAvatar : ICommand { if (arg.Target == null) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.PlayerNotFound")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.PlayerNotFound")); return; } if (arg.BasicArgs.Count < 2) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.InvalidArguments")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.InvalidArguments")); return; } var id = arg.GetInt(0); var level = arg.GetInt(1); - if (level < 1 || level > 80) + if (level is < 1 or > 80) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Avatar.InvalidLevel", - I18nManager.Translate("Word.Avatar"))); + await arg.SendMsg(I18NManager.Translate("Game.Command.Avatar.InvalidLevel", + I18NManager.Translate("Word.Avatar"))); return; } @@ -191,8 +191,8 @@ public class CommandAvatar : ICommand avatar.Level = Math.Min(level, 80); avatar.Promotion = GameData.GetMinPromotionForLevel(avatar.Level); }); - await arg.SendMsg(I18nManager.Translate("Game.Command.Avatar.AllAvatarsLevelSet", - I18nManager.Translate("Word.Avatar"), level.ToString())); + await arg.SendMsg(I18NManager.Translate("Game.Command.Avatar.AllAvatarsLevelSet", + I18NManager.Translate("Word.Avatar"), level.ToString())); // sync await arg.Target.SendPacket( @@ -203,7 +203,7 @@ public class CommandAvatar : ICommand var avatar = arg.Target.Player!.AvatarManager!.GetAvatar(id); if (avatar == null) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Avatar.AvatarNotFound")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Avatar.AvatarNotFound")); return; } @@ -213,9 +213,9 @@ public class CommandAvatar : ICommand // sync await arg.Target.SendPacket(new PacketPlayerSyncScNotify(avatar)); - await arg.SendMsg(I18nManager.Translate("Game.Command.Avatar.AvatarLevelSet", + await arg.SendMsg(I18NManager.Translate("Game.Command.Avatar.AvatarLevelSet", avatar.Excel?.Name?.Replace("{NICKNAME}", arg.Target.Player!.Data.Name) ?? id.ToString(), - I18nManager.Translate("Word.Avatar"), level.ToString())); + I18NManager.Translate("Word.Avatar"), level.ToString())); } } @@ -224,13 +224,13 @@ public class CommandAvatar : ICommand { if (arg.Target == null) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.PlayerNotFound")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.PlayerNotFound")); return; } if (arg.BasicArgs.Count < 2) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.InvalidArguments")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.InvalidArguments")); return; } @@ -240,13 +240,13 @@ public class CommandAvatar : ICommand var avatar = arg.Target.Player!.AvatarManager!.GetAvatar(avatarId); if (avatar == null) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Avatar.AvatarNotFound")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Avatar.AvatarNotFound")); return; } if (!GameData.MultiplePathAvatarConfigData.ContainsKey(pathId)) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Avatar.AvatarNotFound")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Avatar.AvatarNotFound")); return; } diff --git a/Command/Command/Cmd/CommandGive.cs b/Command/Command/Cmd/CommandGive.cs index 36f2f1e2..7da35f70 100644 --- a/Command/Command/Cmd/CommandGive.cs +++ b/Command/Command/Cmd/CommandGive.cs @@ -3,7 +3,7 @@ using EggLink.DanhengServer.Internationalization; namespace EggLink.DanhengServer.Command.Command.Cmd; -[CommandInfo("give", "Game.Command.Give.Desc", "Game.Command.Give.Usage")] +[CommandInfo("give", "Game.Command.Give.Desc", "Game.Command.Give.Usage", ["g"])] public class CommandGive : ICommand { [CommandDefault] @@ -12,20 +12,20 @@ public class CommandGive : ICommand var player = arg.Target?.Player; if (player == null) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.PlayerNotFound")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.PlayerNotFound")); return; } if (arg.BasicArgs.Count == 0) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.InvalidArguments")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.InvalidArguments")); return; } GameData.ItemConfigData.TryGetValue(arg.GetInt(0), out var itemData); if (itemData == null) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Give.ItemNotFound")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Give.ItemNotFound")); return; } @@ -38,14 +38,14 @@ public class CommandGive : ICommand if (!int.TryParse(str, out var amount) || !int.TryParse(levelStr, out var level) || !int.TryParse(rankStr, out var rank)) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.InvalidArguments")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.InvalidArguments")); return; } await player.InventoryManager!.AddItem(arg.GetInt(0), amount, rank: Math.Min(rank, 5), level: Math.Max(Math.Min(level, 80), 1)); - await arg.SendMsg(I18nManager.Translate("Game.Command.Give.GiveItem", player.Uid.ToString(), amount.ToString(), + await arg.SendMsg(I18NManager.Translate("Game.Command.Give.GiveItem", player.Uid.ToString(), amount.ToString(), itemData.Name ?? itemData.ID.ToString())); } } \ No newline at end of file diff --git a/Command/Command/Cmd/CommandGiveall.cs b/Command/Command/Cmd/CommandGiveall.cs index 31604a1e..0bf8b65d 100644 --- a/Command/Command/Cmd/CommandGiveall.cs +++ b/Command/Command/Cmd/CommandGiveall.cs @@ -7,7 +7,7 @@ using EggLink.DanhengServer.Internationalization; namespace EggLink.DanhengServer.Command.Command.Cmd; -[CommandInfo("giveall", "Game.Command.GiveAll.Desc", "Game.Command.GiveAll.Usage")] +[CommandInfo("giveall", "Game.Command.GiveAll.Desc", "Game.Command.GiveAll.Usage", ["ga"])] public class CommandGiveall : ICommand { [CommandMethod("0 avatar")] @@ -16,7 +16,7 @@ public class CommandGiveall : ICommand var player = arg.Target?.Player; if (player == null) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.PlayerNotFound")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.PlayerNotFound")); return; } @@ -26,7 +26,7 @@ public class CommandGiveall : ICommand levelStr ??= "1"; if (!int.TryParse(rankStr, out var rank) || !int.TryParse(levelStr, out var level)) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.InvalidArguments")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.InvalidArguments")); return; } @@ -59,8 +59,8 @@ public class CommandGiveall : ICommand await player.SendPacket(new PacketPlayerSyncScNotify(player.AvatarManager!.AvatarData.Avatars)); - await arg.SendMsg(I18nManager.Translate("Game.Command.GiveAll.GiveAllItems", - I18nManager.Translate("Word.Avatar"), "1")); + await arg.SendMsg(I18NManager.Translate("Game.Command.GiveAll.GiveAllItems", + I18NManager.Translate("Word.Avatar"), "1")); } [CommandMethod("0 equipment")] @@ -69,7 +69,7 @@ public class CommandGiveall : ICommand var player = arg.Target?.Player; if (player == null) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.PlayerNotFound")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.PlayerNotFound")); return; } @@ -82,7 +82,7 @@ public class CommandGiveall : ICommand if (!int.TryParse(rankStr, out var rank) || !int.TryParse(levelStr, out var level) || !int.TryParse(amountStr, out var amount)) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.InvalidArguments")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.InvalidArguments")); return; } @@ -101,8 +101,8 @@ public class CommandGiveall : ICommand await player.SendPacket(new PacketPlayerSyncScNotify(items)); - await arg.SendMsg(I18nManager.Translate("Game.Command.GiveAll.GiveAllItems", - I18nManager.Translate("Word.Equipment"), amount.ToString())); + await arg.SendMsg(I18NManager.Translate("Game.Command.GiveAll.GiveAllItems", + I18NManager.Translate("Word.Equipment"), amount.ToString())); } [CommandMethod("0 material")] @@ -111,7 +111,7 @@ public class CommandGiveall : ICommand var player = arg.Target?.Player; if (player == null) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.PlayerNotFound")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.PlayerNotFound")); return; } @@ -119,7 +119,7 @@ public class CommandGiveall : ICommand amountStr ??= "1"; if (!int.TryParse(amountStr, out var amount)) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.InvalidArguments")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.InvalidArguments")); return; } @@ -134,8 +134,8 @@ public class CommandGiveall : ICommand }); await player.InventoryManager!.AddItems(items, false); - await arg.SendMsg(I18nManager.Translate("Game.Command.GiveAll.GiveAllItems", - I18nManager.Translate("Word.Material"), amount.ToString())); + await arg.SendMsg(I18NManager.Translate("Game.Command.GiveAll.GiveAllItems", + I18NManager.Translate("Word.Material"), amount.ToString())); } [CommandMethod("0 relic")] @@ -144,7 +144,7 @@ public class CommandGiveall : ICommand var player = arg.Target?.Player; if (player == null) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.PlayerNotFound")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.PlayerNotFound")); return; } @@ -152,7 +152,7 @@ public class CommandGiveall : ICommand levelStr ??= "1"; if (!int.TryParse(levelStr, out var level)) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.InvalidArguments")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.InvalidArguments")); return; } @@ -160,7 +160,7 @@ public class CommandGiveall : ICommand amountStr ??= "1"; if (!int.TryParse(amountStr, out var amount)) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.InvalidArguments")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.InvalidArguments")); return; } @@ -179,8 +179,8 @@ public class CommandGiveall : ICommand await player.SendPacket(new PacketPlayerSyncScNotify(items)); - await arg.SendMsg(I18nManager.Translate("Game.Command.GiveAll.GiveAllItems", - I18nManager.Translate("Word.Relic"), amount.ToString())); + await arg.SendMsg(I18NManager.Translate("Game.Command.GiveAll.GiveAllItems", + I18NManager.Translate("Word.Relic"), amount.ToString())); } [CommandMethod("0 unlock")] @@ -189,7 +189,7 @@ public class CommandGiveall : ICommand var player = arg.Target?.Player; if (player == null) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.PlayerNotFound")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.PlayerNotFound")); return; } @@ -201,8 +201,8 @@ public class CommandGiveall : ICommand material.ItemSubType == ItemSubTypeEnum.ChatBubble) await player.InventoryManager!.AddItem(material.ID, 1, false); - await arg.SendMsg(I18nManager.Translate("Game.Command.GiveAll.GiveAllItems", - I18nManager.Translate("Word.Unlock"), "1")); + await arg.SendMsg(I18NManager.Translate("Game.Command.GiveAll.GiveAllItems", + I18NManager.Translate("Word.Unlock"), "1")); } [CommandMethod("0 path")] @@ -211,7 +211,7 @@ public class CommandGiveall : ICommand var player = arg.Target?.Player; if (player == null) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.PlayerNotFound")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.PlayerNotFound")); return; } @@ -236,8 +236,8 @@ public class CommandGiveall : ICommand await player.SendPacket(new PacketPlayerSyncScNotify(player.AvatarManager!.AvatarData.Avatars)); - await arg.SendMsg(I18nManager.Translate("Game.Command.GiveAll.GiveAllItems", - I18nManager.Translate("Word.Avatar"), + await arg.SendMsg(I18NManager.Translate("Game.Command.GiveAll.GiveAllItems", + I18NManager.Translate("Word.Avatar"), "1")); } } \ No newline at end of file diff --git a/Command/Command/Cmd/CommandHelp.cs b/Command/Command/Cmd/CommandHelp.cs index 0d933ff3..003cd11e 100644 --- a/Command/Command/Cmd/CommandHelp.cs +++ b/Command/Command/Cmd/CommandHelp.cs @@ -1,8 +1,9 @@ using EggLink.DanhengServer.Internationalization; +using EggLink.DanhengServer.Util; namespace EggLink.DanhengServer.Command.Command.Cmd; -[CommandInfo("help", "Game.Command.Help.Desc", "Game.Command.Help.Usage")] +[CommandInfo("help", "Game.Command.Help.Desc", "Game.Command.Help.Usage", ["h"])] public class CommandHelp : ICommand { [CommandDefault] @@ -14,28 +15,35 @@ public class CommandHelp : ICommand var cmd = arg.Args[0]; if (commands == null || !commands.TryGetValue(cmd, out var command)) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Help.CommandNotFound")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Help.CommandNotFound")); return; } var msg = - $"/{command.Name} - {I18nManager.Translate(command.Description)}\n\n{I18nManager.Translate(command.Usage)}"; + $"/{command.Name} - {I18NManager.Translate(command.Description)}\n\n{I18NManager.Translate(command.Usage)}"; + if (command.Alias.Length > 0) + msg += + $"\n\n{I18NManager.Translate("Game.Command.Help.CommandAlias")} {command.Alias.ToList().ToArrayString()}"; if (command.Permission != "") - msg += $"\n\n{I18nManager.Translate("Game.Command.Help.CommandPermission")} {command.Permission}"; + msg += $"\n\n{I18NManager.Translate("Game.Command.Help.CommandPermission")} {command.Permission}"; await arg.SendMsg(msg); return; } - await arg.SendMsg(I18nManager.Translate("Game.Command.Help.Commands")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Help.Commands")); if (commands == null) return; foreach (var command in commands.Values) { var msg = - $"/{command.Name} - {I18nManager.Translate(command.Description)}\n\n{I18nManager.Translate(command.Usage)}"; + $"/{command.Name} - {I18NManager.Translate(command.Description)}\n\n{I18NManager.Translate(command.Usage)}"; + if (command.Alias.Length > 0) + msg += + $"\n\n{I18NManager.Translate("Game.Command.Help.CommandAlias")} {command.Alias.ToList().ToArrayString()}"; + if (command.Permission != "") - msg += $"\n\n{I18nManager.Translate("Game.Command.Help.CommandPermission")} {command.Permission}"; + msg += $"\n\n{I18NManager.Translate("Game.Command.Help.CommandPermission")} {command.Permission}"; await arg.SendMsg(msg); } } diff --git a/Command/Command/Cmd/CommandHero.cs b/Command/Command/Cmd/CommandHero.cs index fec51714..1d8ca8f3 100644 --- a/Command/Command/Cmd/CommandHero.cs +++ b/Command/Command/Cmd/CommandHero.cs @@ -13,20 +13,20 @@ public class CommandHero : ICommand { if (arg.Target == null) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.PlayerNotFound")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.PlayerNotFound")); return; } if (arg.BasicArgs.Count < 1) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.InvalidArguments")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.InvalidArguments")); return; } var gender = (Gender)arg.GetInt(0); if (gender == Gender.None) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Hero.GenderNotSpecified")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Hero.GenderNotSpecified")); return; } @@ -35,7 +35,7 @@ public class CommandHero : ICommand await player.ChangeAvatarPathType(8001, MultiPathAvatarTypeEnum.Warrior); await player.SendPacket(new PacketGetMultiPathAvatarInfoScRsp(player)); - await arg.SendMsg(I18nManager.Translate("Game.Command.Hero.GenderChanged")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Hero.GenderChanged")); } [CommandMethod("0 type")] @@ -43,26 +43,26 @@ public class CommandHero : ICommand { if (arg.Target == null) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.PlayerNotFound")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.PlayerNotFound")); return; } if (arg.BasicArgs.Count < 1) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.InvalidArguments")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.InvalidArguments")); return; } var gender = (MultiPathAvatarTypeEnum)arg.GetInt(0); if (gender == 0) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Hero.HeroTypeNotSpecified")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Hero.HeroTypeNotSpecified")); return; } var player = arg.Target!.Player!; await player.ChangeAvatarPathType(8001, gender); - await arg.SendMsg(I18nManager.Translate("Game.Command.Hero.HeroTypeChanged")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Hero.HeroTypeChanged")); } } \ No newline at end of file diff --git a/Command/Command/Cmd/CommandKick.cs b/Command/Command/Cmd/CommandKick.cs index 100bb56b..c478d3fe 100644 --- a/Command/Command/Cmd/CommandKick.cs +++ b/Command/Command/Cmd/CommandKick.cs @@ -11,12 +11,12 @@ public class CommandKick : ICommand { if (arg.Target == null) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.PlayerNotFound")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.PlayerNotFound")); return; } await arg.Target.SendPacket(new PacketPlayerKickOutScNotify()); - await arg.SendMsg(I18nManager.Translate("Game.Command.Kick.PlayerKicked", arg.Target.Player!.Data.Name!)); + await arg.SendMsg(I18NManager.Translate("Game.Command.Kick.PlayerKicked", arg.Target.Player!.Data.Name!)); arg.Target.Stop(); } } \ No newline at end of file diff --git a/Command/Command/Cmd/CommandLineup.cs b/Command/Command/Cmd/CommandLineup.cs index 19f6f49d..e5d2aa3d 100644 --- a/Command/Command/Cmd/CommandLineup.cs +++ b/Command/Command/Cmd/CommandLineup.cs @@ -11,13 +11,13 @@ public class CommandLineup : ICommand { if (arg.Target == null) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.PlayerNotFound")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.PlayerNotFound")); return; } var count = arg.GetInt(0); await arg.Target.Player!.LineupManager!.GainMp(count == 0 ? 2 : count); - await arg.SendMsg(I18nManager.Translate("Game.Command.Lineup.PlayerGainedMp", Math.Min(count, 2).ToString())); + await arg.SendMsg(I18NManager.Translate("Game.Command.Lineup.PlayerGainedMp", count.ToString())); } [CommandMethod("0 heal")] @@ -25,13 +25,13 @@ public class CommandLineup : ICommand { if (arg.Target == null) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.PlayerNotFound")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.PlayerNotFound")); return; } var player = arg.Target.Player!; foreach (var avatar in player.LineupManager!.GetCurLineup()!.AvatarData!.Avatars) avatar.CurrentHp = 10000; await player.SendPacket(new PacketSyncLineupNotify(player.LineupManager.GetCurLineup()!)); - await arg.SendMsg(I18nManager.Translate("Game.Command.Lineup.HealedAllAvatars")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Lineup.HealedAllAvatars")); } } \ No newline at end of file diff --git a/Command/Command/Cmd/CommandMail.cs b/Command/Command/Cmd/CommandMail.cs index 2a435add..f90920f5 100644 --- a/Command/Command/Cmd/CommandMail.cs +++ b/Command/Command/Cmd/CommandMail.cs @@ -2,7 +2,7 @@ namespace EggLink.DanhengServer.Command.Command.Cmd; -[CommandInfo("mail", "Game.Command.Mail.Desc", "Game.Command.Mail.Usage", permission: "")] +[CommandInfo("mail", "Game.Command.Mail.Desc", "Game.Command.Mail.Usage", permission: "egglink.manage")] public class CommandMail : ICommand { [CommandDefault] @@ -10,19 +10,19 @@ public class CommandMail : ICommand { if (arg.Target == null) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.PlayerNotFound")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.PlayerNotFound")); return; } if (arg.Args.Count < 7) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.InvalidArguments")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.InvalidArguments")); return; } if (!(arg.Args.Contains("_TITLE") && arg.Args.Contains("_CONTENT"))) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.InvalidArguments")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.InvalidArguments")); return; } @@ -37,16 +37,14 @@ public class CommandMail : ICommand var flagContent = false; foreach (var text in arg.Args) { - if (text == "_TITLE") + switch (text) { - flagTitle = true; - continue; - } - - if (text == "_CONTENT") - { - flagContent = true; - continue; + case "_TITLE": + flagTitle = true; + continue; + case "_CONTENT": + flagContent = true; + continue; } if (flagTitle && !flagContent) title += text + " "; @@ -60,6 +58,6 @@ public class CommandMail : ICommand await arg.Target.Player!.MailManager!.SendMail(sender, title, content, templateId, expiredDay); - await arg.SendMsg(I18nManager.Translate("Game.Command.Mail.MailSent")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Mail.MailSent")); } } \ No newline at end of file diff --git a/Command/Command/Cmd/CommandMission.cs b/Command/Command/Cmd/CommandMission.cs index 9cb56c14..4132de84 100644 --- a/Command/Command/Cmd/CommandMission.cs +++ b/Command/Command/Cmd/CommandMission.cs @@ -4,7 +4,7 @@ using EggLink.DanhengServer.Internationalization; namespace EggLink.DanhengServer.Command.Command.Cmd; -[CommandInfo("mission", "Game.Command.Mission.Desc", "Game.Command.Mission.Usage")] +[CommandInfo("mission", "Game.Command.Mission.Desc", "Game.Command.Mission.Usage", ["m"])] public class CommandMission : ICommand { [CommandMethod("0 pass")] @@ -12,14 +12,14 @@ public class CommandMission : ICommand { if (arg.Target == null) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.PlayerNotFound")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.PlayerNotFound")); return; } var mission = arg.Target!.Player!.MissionManager!; var count = mission.GetRunningSubMissionIdList().Count; foreach (var id in mission.GetRunningSubMissionIdList()) await mission.FinishSubMission(id); - await arg.SendMsg(I18nManager.Translate("Game.Command.Mission.AllRunningMissionsFinished", count.ToString())); + await arg.SendMsg(I18NManager.Translate("Game.Command.Mission.AllRunningMissionsFinished", count.ToString())); } [CommandMethod("0 finish")] @@ -27,25 +27,25 @@ public class CommandMission : ICommand { if (arg.Target == null) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.PlayerNotFound")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.PlayerNotFound")); return; } if (arg.BasicArgs.Count < 1) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.InvalidArguments")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.InvalidArguments")); return; } if (!int.TryParse(arg.BasicArgs[0], out var missionId)) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Mission.InvalidMissionId")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Mission.InvalidMissionId")); return; } var mission = arg.Target!.Player!.MissionManager!; await mission.FinishSubMission(missionId); - await arg.SendMsg(I18nManager.Translate("Game.Command.Mission.MissionFinished", missionId.ToString())); + await arg.SendMsg(I18NManager.Translate("Game.Command.Mission.MissionFinished", missionId.ToString())); } [CommandMethod("0 running")] @@ -53,7 +53,7 @@ public class CommandMission : ICommand { if (arg.Target == null) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.PlayerNotFound")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.PlayerNotFound")); return; } @@ -61,11 +61,11 @@ public class CommandMission : ICommand var runningMissions = mission.GetRunningSubMissionList(); if (runningMissions.Count == 0) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Mission.NoRunningMissions")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Mission.NoRunningMissions")); return; } - await arg.SendMsg(I18nManager.Translate("Game.Command.Mission.RunningMissions")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Mission.RunningMissions")); Dictionary> missionMap = []; foreach (var m in runningMissions) @@ -84,7 +84,7 @@ public class CommandMission : ICommand foreach (var list in missionMap) { - await arg.SendMsg($"{I18nManager.Translate("Game.Command.Mission.MainMission")} {list.Key}:"); + await arg.SendMsg($"{I18NManager.Translate("Game.Command.Mission.MainMission")} {list.Key}:"); var sb = new StringBuilder(); foreach (var id in list.Value) { @@ -104,7 +104,7 @@ public class CommandMission : ICommand if (morePossibleStuckIds.Count > 0) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Mission.PossibleStuckMissions")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Mission.PossibleStuckMissions")); var sb = new StringBuilder(); foreach (var id in morePossibleStuckIds) sb.Append($"{id}、"); @@ -115,7 +115,7 @@ public class CommandMission : ICommand } else if (possibleStuckIds.Count > 0) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Mission.PossibleStuckMissions")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Mission.PossibleStuckMissions")); var sb = new StringBuilder(); foreach (var id in possibleStuckIds) sb.Append($"{id}、"); @@ -133,25 +133,25 @@ public class CommandMission : ICommand { if (arg.Target == null) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.PlayerNotFound")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.PlayerNotFound")); return; } if (arg.BasicArgs.Count < 1) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.InvalidArguments")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.InvalidArguments")); return; } if (!int.TryParse(arg.BasicArgs[0], out var missionId)) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Mission.InvalidMissionId")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Mission.InvalidMissionId")); return; } var mission = arg.Target!.Player!.MissionManager!; await mission.ReAcceptMainMission(missionId); - await arg.SendMsg(I18nManager.Translate("Game.Command.Mission.MissionReAccepted", missionId.ToString())); + await arg.SendMsg(I18NManager.Translate("Game.Command.Mission.MissionReAccepted", missionId.ToString())); } [CommandMethod("0 finishmain")] @@ -159,24 +159,24 @@ public class CommandMission : ICommand { if (arg.Target == null) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.PlayerNotFound")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.PlayerNotFound")); return; } if (arg.BasicArgs.Count < 1) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.InvalidArguments")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.InvalidArguments")); return; } if (!int.TryParse(arg.BasicArgs[0], out var missionId)) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Mission.InvalidMissionId")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Mission.InvalidMissionId")); return; } var mission = arg.Target!.Player!.MissionManager!; await mission.FinishMainMission(missionId); - await arg.SendMsg(I18nManager.Translate("Game.Command.Mission.MissionFinished", missionId.ToString())); + await arg.SendMsg(I18NManager.Translate("Game.Command.Mission.MissionFinished", missionId.ToString())); } } \ No newline at end of file diff --git a/Command/Command/Cmd/CommandRaid.cs b/Command/Command/Cmd/CommandRaid.cs index efd4160f..0ed01925 100644 --- a/Command/Command/Cmd/CommandRaid.cs +++ b/Command/Command/Cmd/CommandRaid.cs @@ -10,12 +10,12 @@ public class CommandRaid : ICommand { if (arg.Target == null) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.PlayerNotFound")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.PlayerNotFound")); return; } await arg.Target.Player!.RaidManager!.LeaveRaid(false); - await arg.SendMsg(I18nManager.Translate("Game.Command.Raid.Leaved")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Raid.Leaved")); } } \ No newline at end of file diff --git a/Command/Command/Cmd/CommandRelic.cs b/Command/Command/Cmd/CommandRelic.cs index b057cdbe..9a50e719 100644 --- a/Command/Command/Cmd/CommandRelic.cs +++ b/Command/Command/Cmd/CommandRelic.cs @@ -14,13 +14,13 @@ public class CommandRelic : ICommand var player = arg.Target?.Player; if (player == null) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.PlayerNotFound")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.PlayerNotFound")); return; } if (arg.BasicArgs.Count < 3) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.InvalidArguments")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.InvalidArguments")); return; } @@ -30,7 +30,7 @@ public class CommandRelic : ICommand levelStr ??= "1"; if (!int.TryParse(str, out var amount) || !int.TryParse(levelStr, out var level)) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.InvalidArguments")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.InvalidArguments")); return; } @@ -38,7 +38,7 @@ public class CommandRelic : ICommand GameData.ItemConfigData.TryGetValue(int.Parse(arg.BasicArgs[0]), out var itemConfigExcel); if (itemConfig == null || itemConfigExcel == null) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Relic.RelicNotFound")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Relic.RelicNotFound")); return; } @@ -46,7 +46,7 @@ public class CommandRelic : ICommand GameData.RelicMainAffixData.TryGetValue(itemConfig.MainAffixGroup, out var mainAffixConfig); if (subAffixConfig == null || mainAffixConfig == null) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Relic.RelicNotFound")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Relic.RelicNotFound")); return; } @@ -62,7 +62,7 @@ public class CommandRelic : ICommand mainAffixId = int.Parse(arg.BasicArgs[1]); if (!mainAffixConfig.ContainsKey(mainAffixId)) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Relic.InvalidMainAffixId")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Relic.InvalidMainAffixId")); return; } @@ -77,13 +77,13 @@ public class CommandRelic : ICommand if (subAffix.Length != 2 || !int.TryParse(subAffix[0], out var subId) || !int.TryParse(subAffix[1], out var subLevel)) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.InvalidArguments")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.InvalidArguments")); return; } if (!subAffixConfig.ContainsKey(subId)) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Relic.InvalidSubAffixId")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Relic.InvalidSubAffixId")); return; } @@ -133,7 +133,7 @@ public class CommandRelic : ICommand for (var i = 0; i < amount; i++) await player.InventoryManager!.AddItem(itemData, false); - await arg.SendMsg(I18nManager.Translate("Game.Command.Relic.RelicGiven", player.Uid.ToString(), + await arg.SendMsg(I18NManager.Translate("Game.Command.Relic.RelicGiven", player.Uid.ToString(), amount.ToString(), itemConfigExcel.Name ?? itemData.ItemId.ToString(), itemData.MainAffix.ToString())); } } \ No newline at end of file diff --git a/Command/Command/Cmd/CommandReload.cs b/Command/Command/Cmd/CommandReload.cs index a88cdf6d..04dee26e 100644 --- a/Command/Command/Cmd/CommandReload.cs +++ b/Command/Command/Cmd/CommandReload.cs @@ -13,8 +13,8 @@ public class CommandReload : ICommand // Reload the banners GameData.BannersConfig = ResourceManager.LoadCustomFile("Banner", "Banners") ?? new BannersConfig(); - await arg.SendMsg(I18nManager.Translate("Game.Command.Reload.ConfigReloaded", - I18nManager.Translate("Word.Banner"))); + await arg.SendMsg(I18NManager.Translate("Game.Command.Reload.ConfigReloaded", + I18NManager.Translate("Word.Banner"))); } [CommandMethod("0 activity")] @@ -23,7 +23,7 @@ public class CommandReload : ICommand // Reload the activities GameData.ActivityConfig = ResourceManager.LoadCustomFile("Activity", "ActivityConfig") ?? new ActivityConfig(); - await arg.SendMsg(I18nManager.Translate("Game.Command.Reload.ConfigReloaded", - I18nManager.Translate("Word.Activity"))); + await arg.SendMsg(I18NManager.Translate("Game.Command.Reload.ConfigReloaded", + I18NManager.Translate("Word.Activity"))); } } \ No newline at end of file diff --git a/Command/Command/Cmd/CommandRogue.cs b/Command/Command/Cmd/CommandRogue.cs index 819cd1c0..35a7de9d 100644 --- a/Command/Command/Cmd/CommandRogue.cs +++ b/Command/Command/Cmd/CommandRogue.cs @@ -1,11 +1,10 @@ using EggLink.DanhengServer.Data; -using EggLink.DanhengServer.Data.Excel; using EggLink.DanhengServer.GameServer.Game.Rogue.Scene.Entity; using EggLink.DanhengServer.Internationalization; namespace EggLink.DanhengServer.Command.Command.Cmd; -[CommandInfo("rogue", "Game.Command.Rogue.Desc", "Game.Command.Rogue.Usage")] +[CommandInfo("rogue", "Game.Command.Rogue.Desc", "Game.Command.Rogue.Usage", ["r"])] public class CommandRogue : ICommand { [CommandMethod("0 money")] @@ -13,7 +12,7 @@ public class CommandRogue : ICommand { if (arg.Target == null) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.PlayerNotFound")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.PlayerNotFound")); return; } @@ -21,12 +20,12 @@ public class CommandRogue : ICommand var instance = arg.Target.Player!.RogueManager?.GetRogueInstance(); if (instance == null) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Rogue.PlayerNotInRogue")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Rogue.PlayerNotInRogue")); return; } await instance.GainMoney(count); - await arg.SendMsg(I18nManager.Translate("Game.Command.Rogue.PlayerGainedMoney", count.ToString())); + await arg.SendMsg(I18NManager.Translate("Game.Command.Rogue.PlayerGainedMoney", count.ToString())); } [CommandMethod("0 buff")] @@ -34,14 +33,14 @@ public class CommandRogue : ICommand { if (arg.Target == null) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.PlayerNotFound")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.PlayerNotFound")); return; } var instance = arg.Target.Player!.RogueManager?.GetRogueInstance(); if (instance == null) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Rogue.PlayerNotInRogue")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Rogue.PlayerNotInRogue")); return; } @@ -49,32 +48,28 @@ public class CommandRogue : ICommand if (id == -1) { - var buffList = new List(); - foreach (var buff in GameData.RogueBuffData.Values) - { - if (buff.IsAeonBuff || buff.MazeBuffLevel == 2) continue; - buffList.Add(buff); - } + var buffList = GameData.RogueBuffData.Values.Where(buff => !buff.IsAeonBuff && buff.MazeBuffLevel != 2) + .ToList(); await instance.AddBuffList(buffList); - await arg.SendMsg(I18nManager.Translate("Game.Command.Rogue.PlayerGainedAllItems", - I18nManager.Translate("Word.Buff"))); + await arg.SendMsg(I18NManager.Translate("Game.Command.Rogue.PlayerGainedAllItems", + I18NManager.Translate("Word.Buff"))); } else { GameData.RogueMazeBuffData.TryGetValue(id, out var buff); if (buff == null) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Rogue.ItemNotFound", - I18nManager.Translate("Word.Buff"))); + await arg.SendMsg(I18NManager.Translate("Game.Command.Rogue.ItemNotFound", + I18NManager.Translate("Word.Buff"))); return; } await instance.AddBuff(buff.ID, buff.Lv); - await arg.SendMsg(I18nManager.Translate("Game.Command.Rogue.PlayerGainedItem", - I18nManager.Translate("Word.Buff"), buff.Name ?? id.ToString())); + await arg.SendMsg(I18NManager.Translate("Game.Command.Rogue.PlayerGainedItem", + I18NManager.Translate("Word.Buff"), buff.Name ?? id.ToString())); } } @@ -83,14 +78,14 @@ public class CommandRogue : ICommand { if (arg.Target == null) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.PlayerNotFound")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.PlayerNotFound")); return; } var instance = arg.Target.Player!.RogueManager?.GetRogueInstance(); if (instance == null) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Rogue.PlayerNotInRogue")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Rogue.PlayerNotInRogue")); return; } @@ -99,14 +94,14 @@ public class CommandRogue : ICommand GameData.RogueMiracleData.TryGetValue(id, out var miracle); if (miracle == null) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Rogue.ItemNotFound", - I18nManager.Translate("Word.Miracle"))); + await arg.SendMsg(I18NManager.Translate("Game.Command.Rogue.ItemNotFound", + I18NManager.Translate("Word.Miracle"))); return; } await instance.AddMiracle(id); - await arg.SendMsg(I18nManager.Translate("Game.Command.Rogue.PlayerGainedItem", - I18nManager.Translate("Word.Miracle"), miracle.Name ?? id.ToString())); + await arg.SendMsg(I18NManager.Translate("Game.Command.Rogue.PlayerGainedItem", + I18NManager.Translate("Word.Miracle"), miracle.Name ?? id.ToString())); } [CommandMethod("0 enhance")] @@ -114,14 +109,14 @@ public class CommandRogue : ICommand { if (arg.Target == null) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.PlayerNotFound")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.PlayerNotFound")); return; } var instance = arg.Target.Player!.RogueManager?.GetRogueInstance(); if (instance == null) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Rogue.PlayerNotInRogue")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Rogue.PlayerNotInRogue")); return; } @@ -129,21 +124,21 @@ public class CommandRogue : ICommand if (id == -1) { foreach (var enhance in GameData.RogueBuffData.Values) await instance.EnhanceBuff(enhance.MazeBuffID); - await arg.SendMsg(I18nManager.Translate("Game.Command.Rogue.PlayerEnhancedAllBuffs")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Rogue.PlayerEnhancedAllBuffs")); } else { GameData.RogueMazeBuffData.TryGetValue(id, out var buff); if (buff == null) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Rogue.ItemNotFound", - I18nManager.Translate("Word.Buff"))); + await arg.SendMsg(I18NManager.Translate("Game.Command.Rogue.ItemNotFound", + I18NManager.Translate("Word.Buff"))); return; } await instance.EnhanceBuff(buff.ID); await arg.SendMsg( - I18nManager.Translate("Game.Command.Rogue.PlayerEnhancedBuff", buff.Name ?? id.ToString())); + I18NManager.Translate("Game.Command.Rogue.PlayerEnhancedBuff", buff.Name ?? id.ToString())); } } @@ -152,15 +147,15 @@ public class CommandRogue : ICommand { if (arg.Target == null) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.PlayerNotFound")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.PlayerNotFound")); return; } var player = arg.Target.Player!; foreach (var npc in player.SceneInstance!.Entities.Values) - if (npc is RogueNpc rNpc && rNpc.RogueNpcId > 0) + if (npc is RogueNpc { RogueNpcId: > 0 } rNpc) await player.SceneInstance!.RemoveEntity(rNpc); - await arg.SendMsg(I18nManager.Translate("Game.Command.Rogue.PlayerUnstuck")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Rogue.PlayerUnstuck")); } } \ No newline at end of file diff --git a/Command/Command/Cmd/CommandScene.cs b/Command/Command/Cmd/CommandScene.cs index 7dc31b9e..9fda947e 100644 --- a/Command/Command/Cmd/CommandScene.cs +++ b/Command/Command/Cmd/CommandScene.cs @@ -12,7 +12,7 @@ public class CommandScene : ICommand { if (arg.Target == null) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.PlayerNotFound")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.PlayerNotFound")); return; } @@ -21,7 +21,7 @@ public class CommandScene : ICommand foreach (var group in scene.Entities) if (!loadedGroup.Contains(group.Value.GroupID)) loadedGroup.Add(group.Value.GroupID); - await arg.SendMsg(I18nManager.Translate("Game.Command.Scene.LoadedGroups", string.Join(", ", loadedGroup))); + await arg.SendMsg(I18NManager.Translate("Game.Command.Scene.LoadedGroups", string.Join(", ", loadedGroup))); } [CommandMethod("0 prop")] @@ -29,7 +29,7 @@ public class CommandScene : ICommand { if (arg.Target == null) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.PlayerNotFound")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.PlayerNotFound")); return; } @@ -44,12 +44,12 @@ public class CommandScene : ICommand if (prop == null) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Scene.PropNotFound")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Scene.PropNotFound")); return; } await prop.SetState((PropStateEnum)arg.GetInt(2)); - await arg.SendMsg(I18nManager.Translate("Game.Command.Scene.PropStateChanged", prop.PropInfo.ID.ToString(), + await arg.SendMsg(I18NManager.Translate("Game.Command.Scene.PropStateChanged", prop.PropInfo.ID.ToString(), prop.State.ToString())); } @@ -58,7 +58,7 @@ public class CommandScene : ICommand { if (arg.Target == null) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.PlayerNotFound")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.PlayerNotFound")); return; } @@ -66,12 +66,12 @@ public class CommandScene : ICommand scene.Entities.TryGetValue(arg.GetInt(0), out var entity); if (entity == null) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Scene.EntityNotFound")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Scene.EntityNotFound")); return; } await scene.RemoveEntity(entity); - await arg.SendMsg(I18nManager.Translate("Game.Command.Scene.EntityRemoved", entity.EntityID.ToString())); + await arg.SendMsg(I18NManager.Translate("Game.Command.Scene.EntityRemoved", entity.EntityID.ToString())); } [CommandMethod("0 unlockall")] @@ -79,7 +79,7 @@ public class CommandScene : ICommand { if (arg.Target == null) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.PlayerNotFound")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.PlayerNotFound")); return; } @@ -88,7 +88,7 @@ public class CommandScene : ICommand if (entity is EntityProp prop) if (prop.Excel.PropStateList.Contains(PropStateEnum.Open)) await prop.SetState(PropStateEnum.Open); - await arg.SendMsg(I18nManager.Translate("Game.Command.Scene.AllPropsUnlocked")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Scene.AllPropsUnlocked")); } [CommandMethod("0 change")] @@ -96,19 +96,19 @@ public class CommandScene : ICommand { if (arg.Target == null) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.PlayerNotFound")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.PlayerNotFound")); return; } if (arg.GetInt(0) == 0) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.InvalidArguments")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.InvalidArguments")); return; } var player = arg.Target!.Player!; await player.EnterScene(arg.GetInt(0), 0, true); - await arg.SendMsg(I18nManager.Translate("Game.Command.Scene.SceneChanged", arg.GetInt(0).ToString())); + await arg.SendMsg(I18NManager.Translate("Game.Command.Scene.SceneChanged", arg.GetInt(0).ToString())); } [CommandMethod("0 reload")] @@ -116,13 +116,13 @@ public class CommandScene : ICommand { if (arg.Target == null) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.PlayerNotFound")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.PlayerNotFound")); return; } var player = arg.Target!.Player!; await player.EnterScene(player.Data.EntryId, 0, true); - await arg.SendMsg(I18nManager.Translate("Game.Command.Scene.SceneReloaded")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Scene.SceneReloaded")); } [CommandMethod("0 reset")] @@ -130,14 +130,14 @@ public class CommandScene : ICommand { if (arg.Target == null) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.PlayerNotFound")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.PlayerNotFound")); return; } var floorId = arg.GetInt(0); if (floorId == 0) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.InvalidArguments")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.InvalidArguments")); return; } @@ -148,7 +148,7 @@ public class CommandScene : ICommand if (player.SceneData?.FloorSavedData.TryGetValue(floorId, out _) == true) player.SceneData.FloorSavedData[floorId] = []; - await arg.SendMsg(I18nManager.Translate("Game.Command.Scene.SceneReset", floorId.ToString())); + await arg.SendMsg(I18NManager.Translate("Game.Command.Scene.SceneReset", floorId.ToString())); } [CommandMethod("0 cur")] @@ -156,11 +156,12 @@ public class CommandScene : ICommand { if (arg.Target == null) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.PlayerNotFound")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.PlayerNotFound")); return; } var player = arg.Target!.Player!; - await arg.SendMsg(I18nManager.Translate("Game.Command.Scene.CurrentScene", player.Data.EntryId.ToString(), player.Data.PlaneId.ToString(), player.Data.FloorId.ToString())); + await arg.SendMsg(I18NManager.Translate("Game.Command.Scene.CurrentScene", player.Data.EntryId.ToString(), + player.Data.PlaneId.ToString(), player.Data.FloorId.ToString())); } } \ No newline at end of file diff --git a/Command/Command/Cmd/CommandSetlevel.cs b/Command/Command/Cmd/CommandSetlevel.cs index 2bc32fb3..05a28029 100644 --- a/Command/Command/Cmd/CommandSetlevel.cs +++ b/Command/Command/Cmd/CommandSetlevel.cs @@ -13,13 +13,13 @@ public class CommandSetlevel : ICommand { if (arg.Target == null) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.PlayerNotFound")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.PlayerNotFound")); return; } if (arg.Args.Count < 1) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.InvalidArguments")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.InvalidArguments")); return; } @@ -31,6 +31,6 @@ public class CommandSetlevel : ICommand player.Data.Exp = GameData.GetPlayerExpRequired(level); await player.SendPacket(new PacketPlayerSyncScNotify(player.ToProto())); - await arg.SendMsg(I18nManager.Translate("Game.Command.Setlevel.SetlevelSuccess")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Setlevel.SetlevelSuccess")); } } \ No newline at end of file diff --git a/Command/Command/Cmd/CommandUnlockAll.cs b/Command/Command/Cmd/CommandUnlockAll.cs index e066d214..a6cb0b00 100644 --- a/Command/Command/Cmd/CommandUnlockAll.cs +++ b/Command/Command/Cmd/CommandUnlockAll.cs @@ -6,7 +6,7 @@ using EggLink.DanhengServer.Proto; namespace EggLink.DanhengServer.Command.Command.Cmd; -[CommandInfo("unlockall", "Game.Command.UnlockAll.Desc", "Game.Command.UnlockAll.Usage")] +[CommandInfo("unlockall", "Game.Command.UnlockAll.Desc", "Game.Command.UnlockAll.Usage", ["ua"])] public class CommandUnlockAll : ICommand { [CommandMethod("0 mission")] @@ -14,7 +14,7 @@ public class CommandUnlockAll : ICommand { if (arg.Target == null) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.PlayerNotFound")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.PlayerNotFound")); return; } @@ -39,7 +39,7 @@ public class CommandUnlockAll : ICommand player.AvatarManager!.GetHero()!.PathId = 8002; } - await arg.SendMsg(I18nManager.Translate("Game.Command.UnlockAll.AllMissionsUnlocked")); + await arg.SendMsg(I18NManager.Translate("Game.Command.UnlockAll.AllMissionsUnlocked")); await arg.Target!.Player!.SendPacket(new PacketPlayerKickOutScNotify()); arg.Target!.Stop(); } diff --git a/Command/Command/Cmd/CommandUnstuck.cs b/Command/Command/Cmd/CommandUnstuck.cs index dd3610c8..65ec7098 100644 --- a/Command/Command/Cmd/CommandUnstuck.cs +++ b/Command/Command/Cmd/CommandUnstuck.cs @@ -13,13 +13,13 @@ public class CommandUnstuck : ICommand { if (arg.Target != null) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Unstuck.PlayerIsOnline")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Unstuck.PlayerIsOnline")); return; } if (arg.BasicArgs.Count == 0) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.InvalidArguments")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.InvalidArguments")); return; } @@ -32,11 +32,11 @@ public class CommandUnstuck : ICommand playerData.PlaneId = 20001; playerData.FloorId = 20001001; playerData.EntryId = 2000101; - await arg.SendMsg(I18nManager.Translate("Game.Command.Unstuck.UnstuckSuccess")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Unstuck.UnstuckSuccess")); } else { - await arg.SendMsg(I18nManager.Translate("Game.Command.Unstuck.UidNotExist")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Unstuck.UidNotExist")); } } diff --git a/Command/Command/Cmd/CommandWindy.cs b/Command/Command/Cmd/CommandWindy.cs index 97618b42..8a1f9246 100644 --- a/Command/Command/Cmd/CommandWindy.cs +++ b/Command/Command/Cmd/CommandWindy.cs @@ -11,7 +11,7 @@ public class CommandWindy : ICommand { if (arg.Target == null) { - await arg.SendMsg(I18nManager.Translate("Game.Command.Notice.PlayerNotFound")); + await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.PlayerNotFound")); return; } diff --git a/Command/Command/CommandArg.cs b/Command/Command/CommandArg.cs index f4f7a7cf..51fd57d9 100644 --- a/Command/Command/CommandArg.cs +++ b/Command/Command/CommandArg.cs @@ -38,10 +38,10 @@ public class CommandArg if (con != null) Target = con; CharacterArgs.TryGetValue("@", out var target); - if (target != null) - if (DanhengListener.Connections.Values.ToList() - .Find(item => (item as Connection)?.Player?.Uid.ToString() == target) is Connection connection) - Target = connection; + if (target == null) return; + if (DanhengListener.Connections.Values.ToList() + .Find(item => (item as Connection)?.Player?.Uid.ToString() == target) is Connection connection) + Target = connection; } public string Raw { get; } diff --git a/Command/Command/CommandManager.cs b/Command/Command/CommandManager.cs index 3bedbe3f..c172f521 100644 --- a/Command/Command/CommandManager.cs +++ b/Command/Command/CommandManager.cs @@ -15,7 +15,8 @@ public class CommandManager private int _historyIndex = -1; public static CommandManager? Instance { get; private set; } public Dictionary Commands { get; } = []; - public Dictionary CommandInfo { get; } = []; + public Dictionary CommandInfo { get; } = []; + public Dictionary CommandAlias { get; } = []; // alias -> command public Logger Logger { get; } = new("CommandManager"); public Connection? Target { get; set; } @@ -24,20 +25,20 @@ public class CommandManager Instance = this; foreach (var type in Assembly.GetExecutingAssembly().GetTypes()) { - var attr = type.GetCustomAttribute(); - if (attr != null) - { - var instance = Activator.CreateInstance(type); - if (instance is ICommand command) - { - Commands.Add(attr.Name, command); - CommandInfo.Add(attr.Name, attr); - } - } + var attr = type.GetCustomAttribute(); + if (attr == null) continue; + var instance = Activator.CreateInstance(type); + if (instance is not ICommand command) continue; + Commands.Add(attr.Name, command); + CommandInfo.Add(attr.Name, attr); + + // register alias + foreach (var alias in attr.Alias) // add alias + CommandAlias.Add(alias, attr.Name); } - Logger.Info(I18nManager.Translate("Server.ServerInfo.RegisterItem", Commands.Count.ToString(), - I18nManager.Translate("Word.Command"))); + Logger.Info(I18NManager.Translate("Server.ServerInfo.RegisterItem", Commands.Count.ToString(), + I18NManager.Translate("Word.Command"))); } public void Start() @@ -49,7 +50,7 @@ public class CommandManager if (string.IsNullOrEmpty(input)) continue; - if (input.StartsWith("/")) input = input.Substring(1); + if (input.StartsWith("/")) input = input[1..]; if (_commandHistory.Count >= MaxCommandHistory) _commandHistory.RemoveAt(0); @@ -59,19 +60,19 @@ public class CommandManager } catch { - Logger.Error(I18nManager.Translate("Game.Command.Notice.InternalError")); + Logger.Error(I18NManager.Translate("Game.Command.Notice.InternalError")); } + // ReSharper disable once FunctionNeverReturns } private string ReadCommand() { var input = new List(); - ConsoleKeyInfo keyInfo; AnsiConsole.Markup("[yellow]> [/]"); while (true) { - keyInfo = Console.ReadKey(true); + var keyInfo = Console.ReadKey(true); if (keyInfo.Key == ConsoleKey.Enter) { @@ -79,46 +80,54 @@ public class CommandManager break; } - if (keyInfo.Key == ConsoleKey.Backspace) + switch (keyInfo.Key) { - if (input.Count > 0) + case ConsoleKey.Backspace: { - input.RemoveAt(input.Count - 1); - Console.Write("\b \b"); + if (input.Count > 0) + { + input.RemoveAt(input.Count - 1); + Console.Write("\b \b"); + } + + break; } - } - else if (keyInfo.Key == ConsoleKey.UpArrow) - { - if (_historyIndex > 0) + case ConsoleKey.UpArrow: { - _historyIndex--; - ReplaceInput(input, _commandHistory[_historyIndex]); + if (_historyIndex > 0) + { + _historyIndex--; + ReplaceInput(input, _commandHistory[_historyIndex]); + } + + break; } - } - else if (keyInfo.Key == ConsoleKey.DownArrow) - { - if (_historyIndex < _commandHistory.Count - 1) - { + case ConsoleKey.DownArrow when _historyIndex < _commandHistory.Count - 1: _historyIndex++; ReplaceInput(input, _commandHistory[_historyIndex]); - } - else if (_historyIndex == _commandHistory.Count - 1) + break; + case ConsoleKey.DownArrow: { - _historyIndex++; - ReplaceInput(input, string.Empty); + if (_historyIndex == _commandHistory.Count - 1) + { + _historyIndex++; + ReplaceInput(input, string.Empty); + } + + break; } - } - else // known issue: Ctrl + (Any Key but C) or other control key will cause display error - { - input.Add(keyInfo.KeyChar); - Console.Write(keyInfo.KeyChar); + // known issue: Ctrl + (Any Key but C) or other control key will cause display error + default: + input.Add(keyInfo.KeyChar); + Console.Write(keyInfo.KeyChar); + break; } } return new string(input.ToArray()); } - private void ReplaceInput(List input, string newText) + private static void ReplaceInput(List input, string newText) { while (input.Count > 0) { @@ -146,13 +155,13 @@ public class CommandManager .Find(item => (item as Connection)?.Player?.Uid.ToString() == target) is Connection con) { Target = con; - sender.SendMsg(I18nManager.Translate("Game.Command.Notice.TargetFound", target, + sender.SendMsg(I18NManager.Translate("Game.Command.Notice.TargetFound", target, con.Player!.Data.Name!)); } else { // offline or not exist - sender.SendMsg(I18nManager.Translate("Game.Command.Notice.TargetNotFound", target)); + sender.SendMsg(I18NManager.Translate("Game.Command.Notice.TargetNotFound", target)); } return; @@ -164,19 +173,22 @@ public class CommandManager tempTarget = Listener.GetActiveConnection(sender.GetSender()); if (tempTarget == null) { - sender.SendMsg(I18nManager.Translate("Game.Command.Notice.TargetNotFound", + sender.SendMsg(I18NManager.Translate("Game.Command.Notice.TargetNotFound", sender.GetSender().ToString())); return; } } - if (tempTarget != null && !tempTarget.IsOnline) + if (tempTarget is { IsOnline: false }) { - sender.SendMsg(I18nManager.Translate("Game.Command.Notice.TargetOffline", + sender.SendMsg(I18NManager.Translate("Game.Command.Notice.TargetOffline", tempTarget.Player!.Uid.ToString(), tempTarget.Player!.Data.Name!)); tempTarget = null; } + // find the command + if (CommandAlias.TryGetValue(cmd, out var realCmd)) cmd = realCmd; + if (Commands.TryGetValue(cmd, out var command)) { var split = input.Split(' ').ToList(); @@ -187,81 +199,66 @@ public class CommandManager // judge permission if (arg.Target?.Player?.Uid != sender.GetSender() && !sender.HasPermission("command.others")) { - sender.SendMsg(I18nManager.Translate("Game.Command.Notice.NoPermission")); + sender.SendMsg(I18NManager.Translate("Game.Command.Notice.NoPermission")); return; } - // find the proper method with attribute CommandMethod + // find the proper method with attribute CommandMethodAttribute var isFound = false; var info = CommandInfo[cmd]; if (!sender.HasPermission(info.Permission)) { - sender.SendMsg(I18nManager.Translate("Game.Command.Notice.NoPermission")); + sender.SendMsg(I18NManager.Translate("Game.Command.Notice.NoPermission")); return; } foreach (var method in command.GetType().GetMethods()) { - var attr = method.GetCustomAttribute(); - if (attr != null) + var attr = method.GetCustomAttribute(); + if (attr == null) continue; + var canRun = true; + foreach (var condition in attr.Conditions) { - var canRun = true; - foreach (var condition in attr.Conditions) + if (split.Count <= condition.Index) { - if (split.Count <= condition.Index) - { - canRun = false; - break; - } - - if (!split[condition.Index].Equals(condition.ShouldBe)) - { - canRun = false; - break; - } - } - - if (canRun) - { - isFound = true; - method.Invoke(command, [arg]); + canRun = false; break; } + + if (split[condition.Index].Equals(condition.ShouldBe)) continue; + canRun = false; + break; } + + if (!canRun) continue; + isFound = true; + method.Invoke(command, [arg]); + break; } - if (!isFound) + if (isFound) return; + // find the default method with attribute CommandDefaultAttribute + foreach (var method in command.GetType().GetMethods()) { - // find the default method with attribute CommandDefault - foreach (var method in command.GetType().GetMethods()) - { - var attr = method.GetCustomAttribute(); - if (attr != null) - { - isFound = true; - method.Invoke(command, [arg]); - break; - } - } - - if (!isFound) - { - if (info != null) - sender.SendMsg(I18nManager.Translate(info.Usage)); - else - sender.SendMsg(I18nManager.Translate("Game.Command.Notice.CommandNotFound")); - } + var attr = method.GetCustomAttribute(); + if (attr == null) continue; + isFound = true; + method.Invoke(command, [arg]); + break; } + + if (isFound) return; + sender.SendMsg(I18NManager.Translate(info.Usage)); } else { - sender.SendMsg(I18nManager.Translate("Game.Command.Notice.CommandNotFound")); + sender.SendMsg(I18NManager.Translate("Game.Command.Notice.CommandNotFound")); } } catch { - sender.SendMsg(I18nManager.Translate("Game.Command.Notice.InternalError")); + sender.SendMsg(I18NManager.Translate("Game.Command.Notice.InternalError")); } } } \ No newline at end of file diff --git a/Common/Command/CommandInfo.cs b/Common/Command/CommandInfoAttribute.cs similarity index 65% rename from Common/Command/CommandInfo.cs rename to Common/Command/CommandInfoAttribute.cs index f20e6209..fdc4cdc8 100644 --- a/Common/Command/CommandInfo.cs +++ b/Common/Command/CommandInfoAttribute.cs @@ -1,10 +1,15 @@ namespace EggLink.DanhengServer.Command; [AttributeUsage(AttributeTargets.Class)] -public class CommandInfo(string name, string description, string usage, string keyword = "", string permission = "") +public class CommandInfoAttribute( + string name, + string description, + string usage, + string keyword = "", + string permission = "") : Attribute { - public CommandInfo(string name, string description, string usage, string[] alias, string keyword = "", + public CommandInfoAttribute(string name, string description, string usage, string[] alias, string keyword = "", string permission = "") : this(name, description, usage, keyword, permission) { Alias = alias; @@ -19,23 +24,23 @@ public class CommandInfo(string name, string description, string usage, string k } [AttributeUsage(AttributeTargets.Method)] -public class CommandMethod(CommandCondition conditions) : Attribute +public class CommandMethodAttribute(CommandCondition conditions) : Attribute { - public CommandMethod(string condition) : this(new CommandCondition()) + public CommandMethodAttribute(string condition) : this(new CommandCondition()) { var index = 0; var conditions = condition.Split(' '); foreach (var c in conditions) if (int.TryParse(c, out var i)) Conditions[index].Index = i; - else if (c is string s) Conditions[index++].ShouldBe = s; + else Conditions[index++].ShouldBe = c; } public List Conditions { get; } = [conditions]; } [AttributeUsage(AttributeTargets.Method)] -public class CommandDefault : Attribute +public class CommandDefaultAttribute : Attribute { } diff --git a/Common/Command/ICommand.cs b/Common/Command/ICommand.cs index bb8f44b2..f92536f1 100644 --- a/Common/Command/ICommand.cs +++ b/Common/Command/ICommand.cs @@ -1,5 +1,3 @@ namespace EggLink.DanhengServer.Command; -public interface ICommand -{ -} \ No newline at end of file +public interface ICommand; \ No newline at end of file diff --git a/Common/Common.csproj b/Common/Common.csproj index 388b9c84..c0a66cbb 100644 --- a/Common/Common.csproj +++ b/Common/Common.csproj @@ -17,7 +17,7 @@ - + diff --git a/Common/Data/Config/Rogue/RogueDialogueBaseConfigInfo.cs b/Common/Data/Config/Rogue/RogueDialogueBaseConfigInfo.cs index ef507652..193a4639 100644 --- a/Common/Data/Config/Rogue/RogueDialogueBaseConfigInfo.cs +++ b/Common/Data/Config/Rogue/RogueDialogueBaseConfigInfo.cs @@ -32,8 +32,8 @@ public class RogueDialogueBaseConfigInfo catch (Exception ex) { logger.Error( - I18nManager.Translate("Server.ServerInfo.FailedToReadItem", file.Name, - I18nManager.Translate("Word.Error")), ex); + I18NManager.Translate("Server.ServerInfo.FailedToReadItem", file.Name, + I18NManager.Translate("Word.Error")), ex); } } @@ -54,8 +54,8 @@ public class RogueDialogueBaseConfigInfo catch (Exception ex) { logger.Error( - I18nManager.Translate("Server.ServerInfo.FailedToReadItem", file.Name, - I18nManager.Translate("Word.Error")), ex); + I18NManager.Translate("Server.ServerInfo.FailedToReadItem", file.Name, + I18NManager.Translate("Word.Error")), ex); } } } diff --git a/Common/Data/Excel/RogueTournAreaExcel.cs b/Common/Data/Excel/RogueTournAreaExcel.cs index 62c737c3..9f335ac7 100644 --- a/Common/Data/Excel/RogueTournAreaExcel.cs +++ b/Common/Data/Excel/RogueTournAreaExcel.cs @@ -15,6 +15,7 @@ public class RogueTournAreaExcel : ExcelResource [JsonConverter(typeof(StringEnumConverter))] public RogueTournDifficultyTypeEnum Difficulty { get; set; } + public int ExpScoreID { get; set; } public int UnlockID { get; set; } public int AreaID { get; set; } diff --git a/Common/Data/Excel/RogueTournBuffExcel.cs b/Common/Data/Excel/RogueTournBuffExcel.cs index 3820ffce..17261bea 100644 --- a/Common/Data/Excel/RogueTournBuffExcel.cs +++ b/Common/Data/Excel/RogueTournBuffExcel.cs @@ -10,8 +10,10 @@ public class RogueTournBuffExcel : ExcelResource public int MazeBuffID { get; set; } public int MazeBuffLevel { get; set; } public int RogueBuffType { get; set; } + [JsonConverter(typeof(StringEnumConverter))] public RogueBuffCategoryEnum RogueBuffCategory { get; set; } + public int RogueBuffTag { get; set; } public bool IsInHandbook { get; set; } diff --git a/Common/Data/Excel/RogueTournDifficultyCompExcel.cs b/Common/Data/Excel/RogueTournDifficultyCompExcel.cs index fbeec287..74616a85 100644 --- a/Common/Data/Excel/RogueTournDifficultyCompExcel.cs +++ b/Common/Data/Excel/RogueTournDifficultyCompExcel.cs @@ -15,4 +15,4 @@ public class RogueTournDifficultyCompExcel : ExcelResource { GameData.RogueTournDifficultyCompData.TryAdd(DifficultyCompID, this); } -} +} \ No newline at end of file diff --git a/Common/Data/Excel/RogueTournFormulaExcel.cs b/Common/Data/Excel/RogueTournFormulaExcel.cs index 45ed4cc2..2a5f95c9 100644 --- a/Common/Data/Excel/RogueTournFormulaExcel.cs +++ b/Common/Data/Excel/RogueTournFormulaExcel.cs @@ -7,7 +7,7 @@ namespace EggLink.DanhengServer.Data.Excel; [ResourceEntity("RogueTournFormula.json")] public class RogueTournFormulaExcel : ExcelResource { - public string FormulaIcon{ get; set; } + public string FormulaIcon { get; set; } public string UltraFormulaIcon { get; set; } public string FormulaSubIcon { get; set; } public string FormulaStoryJson { get; set; } @@ -16,10 +16,12 @@ public class RogueTournFormulaExcel : ExcelResource [JsonConverter(typeof(StringEnumConverter))] public RogueTournModeEnum TournMode { get; set; } + public int UnlockDisplayID { get; set; } [JsonConverter(typeof(StringEnumConverter))] public RogueFormulaCategoryEnum FormulaCategory { get; set; } + public bool IsInHandbook { get; set; } public int MainBuffTypeID { get; set; } public int FormulaDisplayID { get; set; } diff --git a/Common/Data/GameData.cs b/Common/Data/GameData.cs index 852b7a0f..a5bc3ef3 100644 --- a/Common/Data/GameData.cs +++ b/Common/Data/GameData.cs @@ -213,11 +213,23 @@ public static class GameData public static Dictionary RogueTournBuffData { get; private set; } = []; public static Dictionary RogueTournFormulaData { get; private set; } = []; public static Dictionary RogueTournBuffGroupData { get; private set; } = []; - public static Dictionary RogueTournHexAvatarBaseTypeData { get; private set; } = []; + + public static Dictionary RogueTournHexAvatarBaseTypeData + { + get; + private set; + } = []; + public static Dictionary RogueTournHandBookEventData { get; private set; } = []; - public static Dictionary RogueTournHandbookMiracleData { get; private set; } = []; - public static Dictionary RogueTournDifficultyCompData { get; private set; } = []; - public static Dictionary RogueTournPermanentTalentData { get; private set; } = []; + + public static Dictionary RogueTournHandbookMiracleData { get; private set; } = + []; + + public static Dictionary RogueTournDifficultyCompData { get; private set; } = + []; + + public static Dictionary RogueTournPermanentTalentData { get; private set; } = + []; #endregion diff --git a/Common/Data/ResourceManager.cs b/Common/Data/ResourceManager.cs index 5fb7b687..b72402b9 100644 --- a/Common/Data/ResourceManager.cs +++ b/Common/Data/ResourceManager.cs @@ -55,8 +55,8 @@ public class ResourceManager var file = new FileInfo(path); if (!file.Exists) { - Logger.Error(I18nManager.Translate("Server.ServerInfo.FailedToReadItem", fileName, - I18nManager.Translate("Word.NotFound"))); + Logger.Error(I18NManager.Translate("Server.ServerInfo.FailedToReadItem", fileName, + I18NManager.Translate("Word.NotFound"))); continue; } @@ -121,11 +121,11 @@ public class ResourceManager catch (Exception ex) { Logger.Error( - I18nManager.Translate("Server.ServerInfo.FailedToReadItem", fileName, - I18nManager.Translate("Word.Error")), ex); + I18NManager.Translate("Server.ServerInfo.FailedToReadItem", fileName, + I18NManager.Translate("Word.Error")), ex); } - Logger.Info(I18nManager.Translate("Server.ServerInfo.LoadedItems", count.ToString(), cls.Name)); + Logger.Info(I18NManager.Translate("Server.ServerInfo.LoadedItems", count.ToString(), cls.Name)); } foreach (var cls in resList) cls.AfterAllDone(); @@ -133,16 +133,16 @@ public class ResourceManager public static void LoadFloorInfo() { - Logger.Info(I18nManager.Translate("Server.ServerInfo.LoadingItem", I18nManager.Translate("Word.FloorInfo"))); + Logger.Info(I18NManager.Translate("Server.ServerInfo.LoadingItem", I18NManager.Translate("Word.FloorInfo"))); DirectoryInfo directory = new(ConfigManager.Config.Path.ResourcePath + "/Config/LevelOutput/RuntimeFloor/"); var missingGroupInfos = false; if (!directory.Exists) { - Logger.Warn(I18nManager.Translate("Server.ServerInfo.ConfigMissing", - I18nManager.Translate("Word.FloorInfo"), + Logger.Warn(I18NManager.Translate("Server.ServerInfo.ConfigMissing", + I18NManager.Translate("Word.FloorInfo"), $"{ConfigManager.Config.Path.ResourcePath}/Config/LevelOutput/RuntimeFloor", - I18nManager.Translate("Word.FloorMissingResult"))); + I18NManager.Translate("Word.FloorMissingResult"))); return; } @@ -160,8 +160,8 @@ public class ResourceManager catch (Exception ex) { Logger.Error( - I18nManager.Translate("Server.ServerInfo.FailedToReadItem", file.Name, - I18nManager.Translate("Word.Error")), ex); + I18NManager.Translate("Server.ServerInfo.FailedToReadItem", file.Name, + I18NManager.Translate("Word.Error")), ex); } foreach (var info in GameData.FloorInfoData.Values) @@ -200,8 +200,8 @@ public class ResourceManager catch (Exception ex) { Logger.Error( - I18nManager.Translate("Server.ServerInfo.FailedToReadItem", file.Name, - I18nManager.Translate("Word.Error")), ex); + I18NManager.Translate("Server.ServerInfo.FailedToReadItem", file.Name, + I18NManager.Translate("Word.Error")), ex); } if (info.Groups.Count == 0) missingGroupInfos = true; @@ -211,25 +211,25 @@ public class ResourceManager } if (missingGroupInfos) - Logger.Warn(I18nManager.Translate("Server.ServerInfo.ConfigMissing", - I18nManager.Translate("Word.FloorGroupInfo"), + Logger.Warn(I18NManager.Translate("Server.ServerInfo.ConfigMissing", + I18NManager.Translate("Word.FloorGroupInfo"), $"{ConfigManager.Config.Path.ResourcePath}/Config/LevelOutput/SharedRuntimeGroup", - I18nManager.Translate("Word.FloorGroupMissingResult"))); + I18NManager.Translate("Word.FloorGroupMissingResult"))); - Logger.Info(I18nManager.Translate("Server.ServerInfo.LoadedItems", GameData.FloorInfoData.Count.ToString(), - I18nManager.Translate("Word.FloorInfo"))); + Logger.Info(I18NManager.Translate("Server.ServerInfo.LoadedItems", GameData.FloorInfoData.Count.ToString(), + I18NManager.Translate("Word.FloorInfo"))); } public static void LoadMissionInfo() { - Logger.Info(I18nManager.Translate("Server.ServerInfo.LoadingItem", I18nManager.Translate("Word.MissionInfo"))); + Logger.Info(I18NManager.Translate("Server.ServerInfo.LoadingItem", I18NManager.Translate("Word.MissionInfo"))); DirectoryInfo directory = new(ConfigManager.Config.Path.ResourcePath + "/Config/Level/Mission"); if (!directory.Exists) { - Logger.Warn(I18nManager.Translate("Server.ServerInfo.ConfigMissing", - I18nManager.Translate("Word.MissionInfo"), + Logger.Warn(I18NManager.Translate("Server.ServerInfo.ConfigMissing", + I18NManager.Translate("Word.MissionInfo"), $"{ConfigManager.Config.Path.ResourcePath}/Config/Level/Mission", - I18nManager.Translate("Word.Mission"))); + I18NManager.Translate("Word.Mission"))); return; } @@ -259,22 +259,22 @@ public class ResourceManager } if (missingMissionInfos) - Logger.Warn(I18nManager.Translate("Server.ServerInfo.ConfigMissing", - I18nManager.Translate("Word.MissionInfo"), + Logger.Warn(I18NManager.Translate("Server.ServerInfo.ConfigMissing", + I18NManager.Translate("Word.MissionInfo"), $"{ConfigManager.Config.Path.ResourcePath}/Config/Level/Mission", - I18nManager.Translate("Word.Mission"))); - Logger.Info(I18nManager.Translate("Server.ServerInfo.LoadedItems", count.ToString(), - I18nManager.Translate("Word.MissionInfo"))); + I18NManager.Translate("Word.Mission"))); + Logger.Info(I18NManager.Translate("Server.ServerInfo.LoadedItems", count.ToString(), + I18NManager.Translate("Word.MissionInfo"))); } public static T? LoadCustomFile(string filetype, string filename) { - Logger.Info(I18nManager.Translate("Server.ServerInfo.LoadingItem", filetype)); + Logger.Info(I18NManager.Translate("Server.ServerInfo.LoadingItem", filetype)); FileInfo file = new(ConfigManager.Config.Path.ConfigPath + $"/{filename}.json"); T? customFile = default; if (!file.Exists) { - Logger.Warn(I18nManager.Translate("Server.ServerInfo.ConfigMissing", filetype, + Logger.Warn(I18NManager.Translate("Server.ServerInfo.ConfigMissing", filetype, $"{ConfigManager.Config.Path.ConfigPath}/{filename}.json", filetype)); return customFile; } @@ -295,23 +295,25 @@ public class ResourceManager switch (customFile) { case Dictionary d: - Logger.Info(I18nManager.Translate("Server.ServerInfo.LoadedItems", d.Count.ToString(), filetype)); + Logger.Info(I18NManager.Translate("Server.ServerInfo.LoadedItems", d.Count.ToString(), filetype)); break; case Dictionary> di: - Logger.Info(I18nManager.Translate("Server.ServerInfo.LoadedItems", di.Count.ToString(), filetype)); + Logger.Info(I18NManager.Translate("Server.ServerInfo.LoadedItems", di.Count.ToString(), filetype)); break; case BannersConfig c: - Logger.Info(I18nManager.Translate("Server.ServerInfo.LoadedItems", c.Banners.Count.ToString(), filetype)); + Logger.Info( + I18NManager.Translate("Server.ServerInfo.LoadedItems", c.Banners.Count.ToString(), filetype)); break; case RogueMiracleEffectConfig r: - Logger.Info(I18nManager.Translate("Server.ServerInfo.LoadedItems", r.Miracles.Count.ToString(), filetype)); + Logger.Info(I18NManager.Translate("Server.ServerInfo.LoadedItems", r.Miracles.Count.ToString(), + filetype)); break; case ActivityConfig a: - Logger.Info(I18nManager.Translate("Server.ServerInfo.LoadedItems", a.ScheduleData.Count.ToString(), + Logger.Info(I18NManager.Translate("Server.ServerInfo.LoadedItems", a.ScheduleData.Count.ToString(), filetype)); break; default: - Logger.Info(I18nManager.Translate("Server.ServerInfo.LoadedItem", filetype)); + Logger.Info(I18NManager.Translate("Server.ServerInfo.LoadedItem", filetype)); break; } @@ -320,8 +322,8 @@ public class ResourceManager public static void LoadMazeSkill() { - Logger.Info(I18nManager.Translate("Server.ServerInfo.LoadingItem", - I18nManager.Translate("Word.MazeSkillInfo"))); + Logger.Info(I18NManager.Translate("Server.ServerInfo.LoadingItem", + I18NManager.Translate("Word.MazeSkillInfo"))); var count = 0; foreach (var adventure in GameData.AdventurePlayerData.Values) { @@ -343,24 +345,24 @@ public class ResourceManager catch (Exception ex) { Logger.Error( - I18nManager.Translate("Server.ServerInfo.FailedToReadItem", adventurePath, - I18nManager.Translate("Word.Error")), ex); + I18NManager.Translate("Server.ServerInfo.FailedToReadItem", adventurePath, + I18NManager.Translate("Word.Error")), ex); } } if (count < GameData.AdventurePlayerData.Count) - Logger.Warn(I18nManager.Translate("Server.ServerInfo.ConfigMissing", - I18nManager.Translate("Word.MazeSkillInfo"), + Logger.Warn(I18NManager.Translate("Server.ServerInfo.ConfigMissing", + I18NManager.Translate("Word.MazeSkillInfo"), $"{ConfigManager.Config.Path.ResourcePath}/Config/Level/AdventureAbility", - I18nManager.Translate("Word.MazeSkill"))); + I18NManager.Translate("Word.MazeSkill"))); - Logger.Info(I18nManager.Translate("Server.ServerInfo.LoadedItems", count.ToString(), - I18nManager.Translate("Word.MazeSkillInfo"))); + Logger.Info(I18NManager.Translate("Server.ServerInfo.LoadedItems", count.ToString(), + I18NManager.Translate("Word.MazeSkillInfo"))); } public static void LoadDialogueInfo() { - Logger.Info(I18nManager.Translate("Server.ServerInfo.LoadingItem", I18nManager.Translate("Word.DialogueInfo"))); + Logger.Info(I18NManager.Translate("Server.ServerInfo.LoadingItem", I18NManager.Translate("Word.DialogueInfo"))); var count = 0; foreach (var dialogue in GameData.RogueNPCData) { @@ -383,25 +385,25 @@ public class ResourceManager catch (Exception ex) { Logger.Error( - I18nManager.Translate("Server.ServerInfo.FailedToReadItem", file.Name, - I18nManager.Translate("Word.Error")), ex); + I18NManager.Translate("Server.ServerInfo.FailedToReadItem", file.Name, + I18NManager.Translate("Word.Error")), ex); } } if (count < GameData.RogueNPCData.Count) - Logger.Warn(I18nManager.Translate("Server.ServerInfo.ConfigMissing", - I18nManager.Translate("Word.DialogueInfo"), + Logger.Warn(I18NManager.Translate("Server.ServerInfo.ConfigMissing", + I18NManager.Translate("Word.DialogueInfo"), $"{ConfigManager.Config.Path.ResourcePath}/Config/Level/Rogue/Dialogue", - I18nManager.Translate("Word.Dialogue"))); + I18NManager.Translate("Word.Dialogue"))); - Logger.Info(I18nManager.Translate("Server.ServerInfo.LoadedItems", count.ToString(), - I18nManager.Translate("Word.DialogueInfo"))); + Logger.Info(I18NManager.Translate("Server.ServerInfo.LoadedItems", count.ToString(), + I18NManager.Translate("Word.DialogueInfo"))); } public static void LoadPerformanceInfo() { - Logger.Info(I18nManager.Translate("Server.ServerInfo.LoadingItem", - I18nManager.Translate("Word.PerformanceInfo"))); + Logger.Info(I18NManager.Translate("Server.ServerInfo.LoadingItem", + I18NManager.Translate("Word.PerformanceInfo"))); var count = 0; foreach (var performance in GameData.PerformanceEData.Values) { @@ -427,8 +429,8 @@ public class ResourceManager catch (Exception ex) { Logger.Error( - I18nManager.Translate("Server.ServerInfo.FailedToReadItem", file.Name, - I18nManager.Translate("Word.Error")), ex); + I18NManager.Translate("Server.ServerInfo.FailedToReadItem", file.Name, + I18NManager.Translate("Word.Error")), ex); } } @@ -456,8 +458,8 @@ public class ResourceManager catch (Exception ex) { Logger.Error( - I18nManager.Translate("Server.ServerInfo.FailedToReadItem", file.Name, - I18nManager.Translate("Word.Error")), ex); + I18NManager.Translate("Server.ServerInfo.FailedToReadItem", file.Name, + I18NManager.Translate("Word.Error")), ex); } } @@ -467,14 +469,14 @@ public class ResourceManager //Logger.Warn("Performance infos are missing, please check your resources folder: " + ConfigManager.Config.Path.ResourcePath + "/Config/Level/Mission/*/Act. Performances may not work!"); } - Logger.Info(I18nManager.Translate("Server.ServerInfo.LoadedItems", count.ToString(), - I18nManager.Translate("Word.PerformanceInfo"))); + Logger.Info(I18NManager.Translate("Server.ServerInfo.LoadedItems", count.ToString(), + I18NManager.Translate("Word.PerformanceInfo"))); } public static void LoadSubMissionInfo() { Logger.Info( - I18nManager.Translate("Server.ServerInfo.LoadingItem", I18nManager.Translate("Word.SubMissionInfo"))); + I18NManager.Translate("Server.ServerInfo.LoadingItem", I18NManager.Translate("Word.SubMissionInfo"))); var count = 0; foreach (var subMission in GameData.SubMissionData.Values) { @@ -496,8 +498,8 @@ public class ResourceManager catch (Exception ex) { Logger.Error( - I18nManager.Translate("Server.ServerInfo.FailedToReadItem", file.Name, - I18nManager.Translate("Word.Error")), ex); + I18NManager.Translate("Server.ServerInfo.FailedToReadItem", file.Name, + I18NManager.Translate("Word.Error")), ex); } } @@ -506,14 +508,14 @@ public class ResourceManager //Logger.Warn("Performance infos are missing, please check your resources folder: " + ConfigManager.Config.Path.ResourcePath + "/Config/Level/Mission/*/Act. Performances may not work!"); } - Logger.Info(I18nManager.Translate("Server.ServerInfo.LoadedItems", count.ToString(), - I18nManager.Translate("Word.SubMissionInfo"))); + Logger.Info(I18NManager.Translate("Server.ServerInfo.LoadedItems", count.ToString(), + I18NManager.Translate("Word.SubMissionInfo"))); } public static void LoadRogueChestMapInfo() { - Logger.Info(I18nManager.Translate("Server.ServerInfo.LoadingItem", - I18nManager.Translate("Word.RogueChestMapInfo"))); + Logger.Info(I18NManager.Translate("Server.ServerInfo.LoadingItem", + I18NManager.Translate("Word.RogueChestMapInfo"))); var count = 0; var boardList = new List(); foreach (var nousMap in GameData.RogueNousChessBoardData.Values) boardList.AddRange(nousMap); @@ -547,35 +549,35 @@ public class ResourceManager catch (Exception ex) { Logger.Error( - I18nManager.Translate("Server.ServerInfo.FailedToReadItem", file.Name, - I18nManager.Translate("Word.Error")), ex); + I18NManager.Translate("Server.ServerInfo.FailedToReadItem", file.Name, + I18NManager.Translate("Word.Error")), ex); } } if (count < boardList.Count) - Logger.Warn(I18nManager.Translate("Server.ServerInfo.ConfigMissing", - I18nManager.Translate("Word.RogueChestMapInfo"), + Logger.Warn(I18NManager.Translate("Server.ServerInfo.ConfigMissing", + I18NManager.Translate("Word.RogueChestMapInfo"), $"{ConfigManager.Config.Path.ResourcePath}/Config/Gameplays/RogueDLC", - I18nManager.Translate("Word.RogueChestMap"))); + I18NManager.Translate("Word.RogueChestMap"))); - Logger.Info(I18nManager.Translate("Server.ServerInfo.LoadedItems", count.ToString(), - I18nManager.Translate("Word.RogueChestMapInfo"))); + Logger.Info(I18NManager.Translate("Server.ServerInfo.LoadedItems", count.ToString(), + I18NManager.Translate("Word.RogueChestMapInfo"))); } public static void LoadChessRogueRoomData() { - Logger.Info(I18nManager.Translate("Server.ServerInfo.LoadingItem", - I18nManager.Translate("Word.ChessRogueRoomInfo"))); + Logger.Info(I18NManager.Translate("Server.ServerInfo.LoadingItem", + I18NManager.Translate("Word.ChessRogueRoomInfo"))); var count = 0; FileInfo file = new(ConfigManager.Config.Path.ConfigPath + "/ChessRogueRoomGen.json"); List? customFile; if (!file.Exists) { - Logger.Warn(I18nManager.Translate("Server.ServerInfo.ConfigMissing", - I18nManager.Translate("Word.ChessRogueRoomInfo"), + Logger.Warn(I18NManager.Translate("Server.ServerInfo.ConfigMissing", + I18NManager.Translate("Word.ChessRogueRoomInfo"), $"{ConfigManager.Config.Path.ConfigPath}/ChessRogueRoomGen.json", - I18nManager.Translate("Word.ChessRogueRoom"))); + I18NManager.Translate("Word.ChessRogueRoom"))); return; } @@ -627,8 +629,8 @@ public class ResourceManager Logger.Error("Error in reading " + file.Name, ex); } - Logger.Info(I18nManager.Translate("Server.ServerInfo.LoadedItems", count.ToString(), - I18nManager.Translate("Word.ChessRogueRoomInfo"))); + Logger.Info(I18NManager.Translate("Server.ServerInfo.LoadedItems", count.ToString(), + I18NManager.Translate("Word.ChessRogueRoomInfo"))); } public static void AddRoomToGameData(RogueDLCBlockTypeEnum type, ChessRogueRoomConfig room) diff --git a/Common/Database/DatabaseHelper.cs b/Common/Database/DatabaseHelper.cs index 3a1d4cc7..7c35ff6a 100644 --- a/Common/Database/DatabaseHelper.cs +++ b/Common/Database/DatabaseHelper.cs @@ -23,7 +23,7 @@ public class DatabaseHelper public void Initialize() { - logger.Info(I18nManager.Translate("Server.ServerInfo.LoadingItem", I18nManager.Translate("Word.Database"))); + logger.Info(I18NManager.Translate("Server.ServerInfo.LoadingItem", I18NManager.Translate("Word.Database"))); var config = ConfigManager.Config; DbType type; string connectionString; @@ -271,7 +271,7 @@ public class DatabaseHelper } } - logger.Info(I18nManager.Translate("Server.ServerInfo.SaveDatabase", + logger.Info(I18NManager.Translate("Server.ServerInfo.SaveDatabase", (DateTime.Now - prev).TotalSeconds.ToString()[..4])); ToSaveUidList.Clear(); diff --git a/Common/Internationalization/I18nManager.cs b/Common/Internationalization/I18nManager.cs index 4fcab72d..763b26d9 100644 --- a/Common/Internationalization/I18nManager.cs +++ b/Common/Internationalization/I18nManager.cs @@ -3,7 +3,7 @@ using EggLink.DanhengServer.Util; namespace EggLink.DanhengServer.Internationalization; -public static class I18nManager +public static class I18NManager { public static Logger Logger = new("I18nManager"); diff --git a/Common/Internationalization/Message/LanguageCHS.cs b/Common/Internationalization/Message/LanguageCHS.cs index 785d41d2..506ace6b 100644 --- a/Common/Internationalization/Message/LanguageCHS.cs +++ b/Common/Internationalization/Message/LanguageCHS.cs @@ -264,6 +264,7 @@ public class HelpTextCHS public string Usage => "用法:/help\n\n用法:/help [命令]"; public string Commands => "命令:"; public string CommandPermission => "所需权限: "; + public string CommandAlias => "命令别名:"; } /// diff --git a/Common/Internationalization/Message/LanguageCHT.cs b/Common/Internationalization/Message/LanguageCHT.cs index 0e491388..227433e4 100644 --- a/Common/Internationalization/Message/LanguageCHT.cs +++ b/Common/Internationalization/Message/LanguageCHT.cs @@ -264,6 +264,7 @@ public class HelpTextCHT public string Usage => "用法:/help\n\n用法:/help [命令]"; public string Commands => "命令:"; public string CommandPermission => "所需權限: "; + public string CommandAlias => "命令彆名:"; } /// diff --git a/Common/Internationalization/Message/LanguageEN.cs b/Common/Internationalization/Message/LanguageEN.cs index a21b5c4e..39f74b9b 100644 --- a/Common/Internationalization/Message/LanguageEN.cs +++ b/Common/Internationalization/Message/LanguageEN.cs @@ -272,6 +272,7 @@ public class HelpTextEN public string Commands => "Commands:"; public string CommandUsage => "Usage: "; public string CommandPermission => "Need Permission: "; + public string CommandAlias => "Command Alias:"; } /// diff --git a/Common/Util/Extensions.cs b/Common/Util/Extensions.cs index f9c1921d..7af7f8df 100644 --- a/Common/Util/Extensions.cs +++ b/Common/Util/Extensions.cs @@ -52,12 +52,12 @@ public static class Extensions return DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(); } - public static string ToArrayString(this List list) + public static string ToArrayString(this List list) { return list.JoinFormat(", ", ""); } - public static string ToJsonString(this Dictionary dic) + public static string ToJsonString(this Dictionary dic) where TK : notnull { return JsonConvert.SerializeObject(dic); } diff --git a/DanhengKcpSharp/DanhengListener.cs b/DanhengKcpSharp/DanhengListener.cs index 038ee2ba..69293cd4 100644 --- a/DanhengKcpSharp/DanhengListener.cs +++ b/DanhengKcpSharp/DanhengListener.cs @@ -43,7 +43,7 @@ public class DanhengListener if (UDPListener == null) return; KCPTransport = KcpSocketTransport.CreateMultiplexConnection(UDPClient, 1400); KCPTransport.Start(); - Logger.Info(I18nManager.Translate("Server.ServerInfo.ServerRunning", I18nManager.Translate("Word.Game"), + Logger.Info(I18NManager.Translate("Server.ServerInfo.ServerRunning", I18NManager.Translate("Word.Game"), ConfigManager.Config.GameServer.GetDisplayAddress())); } diff --git a/GameServer/Game/Lineup/LineupManager.cs b/GameServer/Game/Lineup/LineupManager.cs index e6ec64fa..d1b52771 100644 --- a/GameServer/Game/Lineup/LineupManager.cs +++ b/GameServer/Game/Lineup/LineupManager.cs @@ -68,12 +68,12 @@ public class LineupManager : BasePlayerManager var avatarStorage = DatabaseHelper.Instance?.GetInstance(avatar.AssistUid); avatarType = AvatarType.AvatarAssistType; if (avatarStorage == null) continue; - foreach (var avatarData in avatarStorage.Avatars!) - if (avatarData.AvatarId == avatar.BaseAvatarId) - { - avatarInfo = avatarData; - break; - } + foreach (var avatarData in avatarStorage.Avatars.Where(avatarData => + avatarData.AvatarId == avatar.BaseAvatarId)) + { + avatarInfo = avatarData; + break; + } } else { @@ -307,10 +307,10 @@ public class LineupManager : BasePlayerManager LineupInfo lineup; if (LineupData.CurExtraLineup != -1) lineup = LineupData.Lineups[LineupData.CurExtraLineup]; // Extra lineup - else if (lineupIndex < 0 || !LineupData.Lineups.ContainsKey(lineupIndex)) + else if (lineupIndex < 0 || !LineupData.Lineups.TryGetValue(lineupIndex, out var dataLineup)) return; else - lineup = LineupData.Lineups[lineupIndex]; + lineup = dataLineup; lineup.BaseAvatars = []; var index = lineup.LineupType == 0 ? lineupIndex : LineupData.GetCurLineupIndex(); foreach (var avatar in lineupSlotList) await AddAvatar(index, avatar, false); @@ -330,7 +330,7 @@ public class LineupManager : BasePlayerManager LineupInfo lineup; if (LineupData.CurExtraLineup != -1) lineup = LineupData.Lineups[LineupData.CurExtraLineup]; // Extra lineup - else if (req.Index < 0 || !LineupData.Lineups.ContainsKey((int)req.Index)) + else if (!LineupData.Lineups.ContainsKey((int)req.Index)) return; else lineup = LineupData.Lineups[(int)req.Index]; diff --git a/GameServer/Game/RogueTourn/RogueTournManager.cs b/GameServer/Game/RogueTourn/RogueTournManager.cs index cf9d69be..bcb76b00 100644 --- a/GameServer/Game/RogueTourn/RogueTournManager.cs +++ b/GameServer/Game/RogueTourn/RogueTournManager.cs @@ -45,11 +45,14 @@ public class RogueTournManager(PlayerInstance player) : BasePlayerManager(player { TalentInfoList = new RogueTalentInfoList { - TalentInfo = { GameData.RogueTournPermanentTalentData.Values.Select(x => new RogueTalentInfo + TalentInfo = { - TalentId = (uint)x.TalentID, - Status = RogueTalentStatus.Enable - }) } + GameData.RogueTournPermanentTalentData.Values.Select(x => new RogueTalentInfo + { + TalentId = (uint)x.TalentID, + Status = RogueTalentStatus.Enable + }) + } } }; } @@ -99,30 +102,18 @@ public class RogueTournManager(PlayerInstance player) : BasePlayerManager(player }; foreach (var hexAvatar in GameData.RogueTournHexAvatarBaseTypeData.Keys) - { proto.HandbookAvatarBaseList.Add((uint)hexAvatar); - } foreach (var buff in GameData.RogueTournBuffData.Values) - { if (buff.IsInHandbook) proto.HandbookBuffList.Add((uint)buff.MazeBuffID); - } - foreach (var formulaId in GameData.RogueTournFormulaData.Keys) - { - proto.HandbookFormulaList.Add((uint)formulaId); - } + foreach (var formulaId in GameData.RogueTournFormulaData.Keys) proto.HandbookFormulaList.Add((uint)formulaId); foreach (var miracleId in GameData.RogueTournHandbookMiracleData.Keys) - { proto.HandbookMiracleList.Add((uint)miracleId); - } - foreach (var eventId in GameData.RogueTournHandBookEventData.Keys) - { - proto.HandbookEventList.Add((uint)eventId); - } + foreach (var eventId in GameData.RogueTournHandBookEventData.Keys) proto.HandbookEventList.Add((uint)eventId); return proto; } diff --git a/GameServer/Game/Scene/SceneEntityLoader.cs b/GameServer/Game/Scene/SceneEntityLoader.cs index 50e46f6d..bcaef18d 100644 --- a/GameServer/Game/Scene/SceneEntityLoader.cs +++ b/GameServer/Game/Scene/SceneEntityLoader.cs @@ -21,10 +21,10 @@ public class SceneEntityLoader(SceneInstance scene) if (dimInfo == null) return; LoadGroups.AddRange(dimInfo.GroupIDList); - foreach (var group in from @group in Scene.FloorInfo?.Groups.Values! where @group.LoadSide != GroupLoadSideEnum.Client where !@group.GroupName.Contains("TrainVisitor") select @group) - { - await LoadGroup(group); - } + foreach (var group in from @group in Scene.FloorInfo?.Groups.Values! + where @group.LoadSide != GroupLoadSideEnum.Client + where !@group.GroupName.Contains("TrainVisitor") + select @group) await LoadGroup(group); Scene.IsLoaded = true; } @@ -39,8 +39,8 @@ public class SceneEntityLoader(SceneInstance scene) var removeList = new List(); var addList = new List(); - foreach (var group in Scene.FloorInfo!.Groups.Values.Where(group => group.LoadSide != GroupLoadSideEnum.Client).Where(group => !group.GroupName.Contains("TrainVisitor"))) - { + foreach (var group in Scene.FloorInfo!.Groups.Values.Where(group => group.LoadSide != GroupLoadSideEnum.Client) + .Where(group => !group.GroupName.Contains("TrainVisitor"))) if (oldGroupId.Contains(group.Id)) // check if it should be unloaded { if (group.ForceUnloadCondition.IsTrue(Scene.Player.MissionManager!.Data, false) || @@ -75,7 +75,6 @@ public class SceneEntityLoader(SceneInstance scene) refreshed = groupList != null || refreshed; addList.AddRange(groupList ?? []); } - } if (refreshed && (addList.Count > 0 || removeList.Count > 0)) await Scene.Player.SendPacket(new PacketSceneGroupRefreshScNotify(addList, removeList)); @@ -109,11 +108,9 @@ public class SceneEntityLoader(SceneInstance scene) break; } - if (info.SystemUnlockCondition.Operation == OperationEnum.Not && part) - { - result = false; - break; - } + if (info.SystemUnlockCondition.Operation != OperationEnum.Not || !part) continue; + result = false; + break; } if (!result) return null; @@ -142,28 +139,31 @@ public class SceneEntityLoader(SceneInstance scene) foreach (var npc in info.NPCList) try { - if (await LoadNpc(npc, info) is EntityNpc entity) entityList.Add(entity); + if (await LoadNpc(npc, info) is { } entity) entityList.Add(entity); } catch { + // ignored } foreach (var monster in info.MonsterList) try { - if (await LoadMonster(monster, info) is EntityMonster entity) entityList.Add(entity); + if (await LoadMonster(monster, info) is { } entity) entityList.Add(entity); } catch { + // ignored } foreach (var prop in info.PropList) try { - if (await LoadProp(prop, info) is EntityProp entity) entityList.Add(entity); + if (await LoadProp(prop, info) is { } entity) entityList.Add(entity); } catch { + // ignored } return entityList; @@ -175,7 +175,7 @@ public class SceneEntityLoader(SceneInstance scene) if (group == null) return null; var entities = await LoadGroup(group, true); - if (sendPacket && entities != null && entities.Count > 0) + if (sendPacket && entities is { Count: > 0 }) await Scene.Player.SendPacket(new PacketSceneGroupRefreshScNotify(entities)); return entities; @@ -252,17 +252,10 @@ public class SceneEntityLoader(SceneInstance scene) else { if (Scene.Excel.PlaneType == PlaneTypeEnum.Raid) - { prop.State = info.State; - } else - { // elevator - if (prop.Excel.PropType == PropTypeEnum.PROP_ELEVATOR) - prop.State = PropStateEnum.Elevator1; - else - prop.State = info.State; - } + prop.State = prop.Excel.PropType == PropTypeEnum.PROP_ELEVATOR ? PropStateEnum.Elevator1 : info.State; } if (group.GroupName.Contains("Machine")) @@ -277,11 +270,9 @@ public class SceneEntityLoader(SceneInstance scene) if (prop.PropInfo.PropID == 1003) { - if (prop.PropInfo.MappingInfoID == 2220) - { - await prop.SetState(PropStateEnum.Open); - await Scene.AddEntity(prop, sendPacket); - } + if (prop.PropInfo.MappingInfoID != 2220) return prop; + await prop.SetState(PropStateEnum.Open); + await Scene.AddEntity(prop, sendPacket); } else { diff --git a/GameServer/GameServer.csproj b/GameServer/GameServer.csproj index d6ba3194..6e77e7cb 100644 --- a/GameServer/GameServer.csproj +++ b/GameServer/GameServer.csproj @@ -37,14 +37,4 @@ - - - - - - - - - - diff --git a/GameServer/Plugin/PluginManager.cs b/GameServer/Plugin/PluginManager.cs index 4ecb3b8b..e192aff6 100644 --- a/GameServer/Plugin/PluginManager.cs +++ b/GameServer/Plugin/PluginManager.cs @@ -2,7 +2,6 @@ using EggLink.DanhengServer.GameServer.Plugin.Constructor; using EggLink.DanhengServer.Internationalization; using EggLink.DanhengServer.Util; -using McMaster.NETCore.Plugins; namespace EggLink.DanhengServer.GameServer.Plugin; @@ -127,7 +126,7 @@ public class PluginManager { foreach (var plugin in Plugins.Keys) UnloadPlugin(plugin); - logger.Info(I18nManager.Translate("Server.ServerInfo.UnloadedItems", I18nManager.Translate("Word.Plugin"))); + logger.Info(I18NManager.Translate("Server.ServerInfo.UnloadedItems", I18NManager.Translate("Word.Plugin"))); } #endregion diff --git a/GameServer/Server/Connection.cs b/GameServer/Server/Connection.cs index a08663bd..8e5c78d5 100644 --- a/GameServer/Server/Connection.cs +++ b/GameServer/Server/Connection.cs @@ -151,8 +151,8 @@ public class Connection : DanhengConnection var packetName = LogMap.GetValueOrDefault(opcode); if (packetName == null) return false; - var respName = packetName.Replace("Cs", "Sc").Replace("Req", "Rsp"); // Get the response packet name - var respOpcode = LogMap.FirstOrDefault(x => x.Value == respName).Key; // Get the response opcode + var respName = packetName.Replace("Cs", "Sc").Replace("Req", "Rsp"); // Get the response packet name + var respOpcode = LogMap.FirstOrDefault(x => x.Value == respName).Key; // Get the response opcode // Send Rsp await SendPacket(respOpcode); diff --git a/Program/Handbook/HandbookGenerator.cs b/Program/Handbook/HandbookGenerator.cs index d9bb1a90..8a6167bf 100644 --- a/Program/Handbook/HandbookGenerator.cs +++ b/Program/Handbook/HandbookGenerator.cs @@ -17,8 +17,8 @@ public static class HandbookGenerator var textMapPath = config.Path.ResourcePath + "/TextMap/TextMap" + config.ServerOption.Language + ".json"; if (!File.Exists(textMapPath)) { - Logger.GetByClassName().Error(I18nManager.Translate("Server.ServerInfo.FailedToReadItem", textMapPath, - I18nManager.Translate("Word.NotFound"))); + Logger.GetByClassName().Error(I18NManager.Translate("Server.ServerInfo.FailedToReadItem", textMapPath, + I18NManager.Translate("Word.NotFound"))); return; } @@ -26,8 +26,8 @@ public static class HandbookGenerator if (textMap == null) { - Logger.GetByClassName().Error(I18nManager.Translate("Server.ServerInfo.FailedToReadItem", textMapPath, - I18nManager.Translate("Word.Error"))); + Logger.GetByClassName().Error(I18NManager.Translate("Server.ServerInfo.FailedToReadItem", textMapPath, + I18NManager.Translate("Word.Error"))); return; } @@ -79,7 +79,7 @@ public static class HandbookGenerator WriteToFile(builder.ToString()); Logger.GetByClassName() - .Info(I18nManager.Translate("Server.ServerInfo.GeneratedItem", I18nManager.Translate("Word.Handbook"))); + .Info(I18NManager.Translate("Server.ServerInfo.GeneratedItem", I18NManager.Translate("Word.Handbook"))); } public static void GenerateCmd(StringBuilder builder) @@ -87,7 +87,7 @@ public static class HandbookGenerator foreach (var cmd in EntryPoint.CommandManager.CommandInfo) { builder.Append("\t" + cmd.Key); - var desc = I18nManager.Translate(cmd.Value.Description).Replace("\n", "\n\t\t"); + var desc = I18NManager.Translate(cmd.Value.Description).Replace("\n", "\n\t\t"); builder.AppendLine(": " + desc); } } diff --git a/Program/Program/EntryPoint.cs b/Program/Program/EntryPoint.cs index e4ce99f3..229ddff3 100644 --- a/Program/Program/EntryPoint.cs +++ b/Program/Program/EntryPoint.cs @@ -29,12 +29,12 @@ public class EntryPoint { AppDomain.CurrentDomain.ProcessExit += (_, _) => { - Logger.Info(I18nManager.Translate("Server.ServerInfo.Shutdown")); + Logger.Info(I18NManager.Translate("Server.ServerInfo.Shutdown")); PerformCleanup(); }; Console.CancelKeyPress += (_, eventArgs) => { - Logger.Info(I18nManager.Translate("Server.ServerInfo.CancelKeyPressed")); + Logger.Info(I18NManager.Translate("Server.ServerInfo.CancelKeyPressed")); eventArgs.Cancel = true; Environment.Exit(0); }; @@ -52,10 +52,10 @@ public class EntryPoint Logger.SetLogFile(file); // Starting the server - Logger.Info(I18nManager.Translate("Server.ServerInfo.StartingServer")); + Logger.Info(I18NManager.Translate("Server.ServerInfo.StartingServer")); // Load the config - Logger.Info(I18nManager.Translate("Server.ServerInfo.LoadingItem", I18nManager.Translate("Word.Config"))); + Logger.Info(I18NManager.Translate("Server.ServerInfo.LoadingItem", I18NManager.Translate("Word.Config"))); try { ConfigManager.LoadConfig(); @@ -63,27 +63,27 @@ public class EntryPoint catch (Exception e) { Logger.Error( - I18nManager.Translate("Server.ServerInfo.FailedToLoadItem", I18nManager.Translate("Word.Config")), e); + I18NManager.Translate("Server.ServerInfo.FailedToLoadItem", I18NManager.Translate("Word.Config")), e); Console.ReadLine(); return; } // Load the language - Logger.Info(I18nManager.Translate("Server.ServerInfo.LoadingItem", I18nManager.Translate("Word.Language"))); + Logger.Info(I18NManager.Translate("Server.ServerInfo.LoadingItem", I18NManager.Translate("Word.Language"))); try { - I18nManager.LoadLanguage(); + I18NManager.LoadLanguage(); } catch (Exception e) { Logger.Error( - I18nManager.Translate("Server.ServerInfo.FailedToLoadItem", I18nManager.Translate("Word.Language")), e); + I18NManager.Translate("Server.ServerInfo.FailedToLoadItem", I18NManager.Translate("Word.Language")), e); Console.ReadLine(); return; } // Load the game data - Logger.Info(I18nManager.Translate("Server.ServerInfo.LoadingItem", I18nManager.Translate("Word.GameData"))); + Logger.Info(I18NManager.Translate("Server.ServerInfo.LoadingItem", I18NManager.Translate("Word.GameData"))); try { ResourceManager.LoadGameData(); @@ -91,7 +91,7 @@ public class EntryPoint catch (Exception e) { Logger.Error( - I18nManager.Translate("Server.ServerInfo.FailedToLoadItem", I18nManager.Translate("Word.GameData")), e); + I18NManager.Translate("Server.ServerInfo.FailedToLoadItem", I18NManager.Translate("Word.GameData")), e); Console.ReadLine(); return; } @@ -108,7 +108,7 @@ public class EntryPoint catch (Exception e) { Logger.Error( - I18nManager.Translate("Server.ServerInfo.FailedToLoadItem", I18nManager.Translate("Word.Database")), e); + I18NManager.Translate("Server.ServerInfo.FailedToLoadItem", I18NManager.Translate("Word.Database")), e); Console.ReadLine(); return; } @@ -121,14 +121,14 @@ public class EntryPoint catch (Exception e) { Logger.Error( - I18nManager.Translate("Server.ServerInfo.FailedToInitializeItem", - I18nManager.Translate("Word.Command")), e); + I18NManager.Translate("Server.ServerInfo.FailedToInitializeItem", + I18NManager.Translate("Word.Command")), e); Console.ReadLine(); return; } // Load the plugins - Logger.Info(I18nManager.Translate("Server.ServerInfo.LoadingItem", I18nManager.Translate("Word.Plugin"))); + Logger.Info(I18NManager.Translate("Server.ServerInfo.LoadingItem", I18NManager.Translate("Word.Plugin"))); try { PluginManager.LoadPlugins(); @@ -136,7 +136,7 @@ public class EntryPoint catch (Exception e) { Logger.Error( - I18nManager.Translate("Server.ServerInfo.FailedToLoadItem", I18nManager.Translate("Word.Plugin")), e); + I18NManager.Translate("Server.ServerInfo.FailedToLoadItem", I18NManager.Translate("Word.Plugin")), e); Console.ReadLine(); return; } @@ -203,20 +203,20 @@ public class EntryPoint HandlerManager.Init(); WebProgram.Main([], GetConfig().HttpServer.Port, GetConfig().HttpServer.GetBindDisplayAddress()); - Logger.Info(I18nManager.Translate("Server.ServerInfo.ServerRunning", I18nManager.Translate("Word.Dispatch"), + Logger.Info(I18NManager.Translate("Server.ServerInfo.ServerRunning", I18NManager.Translate("Word.Dispatch"), GetConfig().HttpServer.GetDisplayAddress())); DanhengListener.BaseConnection = typeof(Connection); DanhengListener.StartListener(); var elapsed = DateTime.Now - time; - Logger.Info(I18nManager.Translate("Server.ServerInfo.ServerStarted", + Logger.Info(I18NManager.Translate("Server.ServerInfo.ServerStarted", elapsed.TotalSeconds.ToString(CultureInfo.InvariantCulture)[..4])); GenerateLogMap(); if (GetConfig().ServerOption.EnableMission) - Logger.Warn(I18nManager.Translate("Server.ServerInfo.MissionEnabled")); + Logger.Warn(I18NManager.Translate("Server.ServerInfo.MissionEnabled")); CommandManager.Start(); }