From fe9146e6e4d286bd5726cf7f5591f869f082a304 Mon Sep 17 00:00:00 2001 From: Kyle Belanger Date: Tue, 28 Nov 2023 07:51:39 -0500 Subject: [PATCH] I have no clue if this works --- AscNet.GameServer/Commands/LevelCommand.cs | 37 ++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 AscNet.GameServer/Commands/LevelCommand.cs diff --git a/AscNet.GameServer/Commands/LevelCommand.cs b/AscNet.GameServer/Commands/LevelCommand.cs new file mode 100644 index 0000000..31f7931 --- /dev/null +++ b/AscNet.GameServer/Commands/LevelCommand.cs @@ -0,0 +1,37 @@ +using AscNet.Common.Util; +using AscNet.Table.V2.share.player; + +namespace AscNet.GameServer.Commands +{ + [CommandName("level")] + internal class LevelCommand : Command + { + public LevelCommand(Session session, string[] args, bool validate = true) : base(session, args, validate) { } + + public override string Help => "Command to change the Commandant level"; + + [Argument(0, @"^[0-9]+$|^max$", "The target level, value is number or 'max'")] + string Level { get; set; } = string.Empty; + + public override void Execute() + { + int maxLevel = TableReaderV2.Parse().Count; + int level = Miscs.ParseIntOr(Level); + + if (Level == "max") + { + session.player.PlayerData.Level = maxLevel; + session.ExpSanityCheck(); + } + else if (level > 0) + { + session.player.PlayerData.Level = level; + session.ExpSanityCheck(); + } + else + { + throw new ArgumentException("Invalid Level!"); + } + } + } +}