Files
KianaBH3/GameServer/Command/Commands/CommandValk.cs
2025-06-14 16:51:41 +08:00

42 lines
1.5 KiB
C#

using KianaBH.Data;
using KianaBH.Enums.Player;
using KianaBH.Internationalization;
namespace KianaBH.GameServer.Command.Commands;
[CommandInfo("valk", "Game.Command.Valk.Desc", "Game.Command.Valk.Usage", ["v"], [PermEnum.Admin, PermEnum.Support])]
public class CommandValk : ICommands
{
[CommandMethod("add")]
public async ValueTask GetRole(CommandArg arg)
{
if (!await arg.CheckOnlineTarget()) return;
var valkId = 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, 5);
if (valkId == -1)
{
// add all
foreach (var config in GameData.AvatarData.Values)
await arg.Target!.Player!.AvatarManager!.AddAvatar(config.AvatarID, level, star,false);
await arg.SendMsg(I18NManager.Translate("Game.Command.Valk.ValkAddedAll"));
await arg.Target!.Player!.SyncAll();
}
else
{
var valk = await arg.Target!.Player!.AvatarManager!.AddAvatar(valkId, level, star);
if (valk == null)
{
await arg.SendMsg(I18NManager.Translate("Game.Command.Valk.ValkNotFound"));
return;
}
await arg.SendMsg(I18NManager.Translate("Game.Command.Valk.ValkAdded",
valk!.FaceAnimationGroupName ?? valkId.ToString()));
}
}
}