Files
KianaBH3/GameServer/Command/Commands/CommandElf.cs
2025-06-17 09:24:55 +08:00

41 lines
1.4 KiB
C#

using KianaBH.Data;
using KianaBH.Enums.Player;
using KianaBH.Internationalization;
namespace KianaBH.GameServer.Command.Commands;
[CommandInfo("elf", "Game.Command.Elf.Desc", "Game.Command.Elf.Usage", ["e"], [PermEnum.Admin, PermEnum.Support])]
public class CommandElf : ICommands
{
[CommandMethod("add")]
public async ValueTask GetElf(CommandArg arg)
{
if (!await arg.CheckOnlineTarget()) return;
var elfId = arg.GetInt(0);
if (await arg.GetOption('l') is not int level) return;
if (await arg.GetOption('s') is not int star) return;
level = Math.Clamp(level, 1, 80);
star = Math.Clamp(star, 1, 7);
if (elfId == -1)
{
// add all
foreach (var config in GameData.ElfAstraMateData.Values)
await arg.Target!.Player!.ElfManager!.AddElf(config.ElfID, level, config.MaxRarity, sync:false);
await arg.SendMsg(I18NManager.Translate("Game.Command.Elf.ElfAddedAll"));
await arg.Target!.Player!.SyncElf();
}
else
{
var elf = await arg.Target!.Player!.ElfManager!.AddElf(elfId, level, star);
if (elf == null)
{
await arg.SendMsg(I18NManager.Translate("Game.Command.Elf.ElfNotFound"));
return;
}
await arg.SendMsg(I18NManager.Translate("Game.Command.Elf.ElfAdded",elfId.ToString()));
}
}
}