mirror of
https://github.com/MikuLeaks/KianaBH3.git
synced 2025-12-14 05:44:34 +01:00
feat: add valk command
This commit is contained in:
42
GameServer/Command/Commands/CommandValk.cs
Normal file
42
GameServer/Command/Commands/CommandValk.cs
Normal file
@@ -0,0 +1,42 @@
|
||||
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()));
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user