account delete command

This commit is contained in:
Kei-Luna
2026-05-15 14:12:40 +09:00
parent 3ffb7ebf29
commit 30c52b6aa8
4 changed files with 61 additions and 3 deletions

View File

@@ -2,6 +2,7 @@ using MikuSB.Database;
using MikuSB.Database.Account;
using MikuSB.Enums.Player;
using MikuSB.Internationalization;
using MikuSB.GameServer.Server;
using System.Text;
namespace MikuSB.GameServer.Command.Commands;
@@ -37,6 +38,42 @@ public class CommandAccount : ICommands
}
}
[CommandMethod("delete")]
public async ValueTask Delete(CommandArg arg)
{
if (!await arg.CheckArgCnt(1))
return;
var identifier = arg.Args[0].Trim();
var account = int.TryParse(identifier, out var uid) && uid > 0
? AccountData.GetAccountByUid(uid)
: AccountData.GetAccountByUserName(identifier);
if (account == null)
{
await arg.SendMsg(I18NManager.Translate("Game.Command.Account.NotFound", identifier));
return;
}
try
{
if (Listener.GetActiveConnection(account.Uid) != null)
{
await arg.SendMsg(I18NManager.Translate("Game.Command.Account.DeleteOnline", account.Username,
account.Uid.ToString()));
return;
}
AccountData.DeleteAccount(account.Uid);
await arg.SendMsg(I18NManager.Translate("Game.Command.Account.Deleted", account.Username,
account.Uid.ToString()));
}
catch (Exception ex)
{
await arg.SendMsg(I18NManager.Translate("Game.Command.Account.DeleteFailed", ex.Message));
}
}
[CommandMethod("list")]
public async ValueTask List(CommandArg arg)
{