Changed to use a separate account for each email address.

This commit is contained in:
Kei-Luna
2026-05-13 08:15:33 +09:00
parent 5332d5fe1a
commit 41df375e21
7 changed files with 146 additions and 19 deletions

View File

@@ -0,0 +1,37 @@
using MikuSB.Database.Account;
using MikuSB.Enums.Player;
using MikuSB.Internationalization;
namespace MikuSB.GameServer.Command.Commands;
[CommandInfo("account", "Game.Command.Account.Desc", "Game.Command.Account.Usage", [], [PermEnum.Admin, PermEnum.Support])]
public class CommandAccount : ICommands
{
[CommandMethod("create")]
public async ValueTask Create(CommandArg arg)
{
if (!await arg.CheckArgCnt(2))
return;
var email = arg.Args[0].Trim();
if (!int.TryParse(arg.Args[1], out var uid) || uid <= 0)
{
await arg.SendMsg(I18NManager.Translate("Game.Command.Notice.InvalidArguments"));
return;
}
try
{
var account = AccountData.CreateAccount(email, uid, "");
await arg.SendMsg(I18NManager.Translate("Game.Command.Account.Created", account.Username, account.Uid.ToString()));
}
catch (InvalidOperationException ex)
{
await arg.SendMsg(I18NManager.Translate("Game.Command.Account.CreateFailed", ex.Message));
}
catch (ArgumentException ex)
{
await arg.SendMsg(I18NManager.Translate("Game.Command.Account.CreateFailed", ex.Message));
}
}
}

View File

@@ -21,11 +21,13 @@ public class HandlerReqLogin : Handler
public override async Task OnHandle(Connection connection, byte[] data, ushort seqNo)
{
var req = ReqLogin.Parser.ParseFrom(data);
var account = AccountData.GetAccountByUid(1);
var account = AccountData.GetAccountByComboToken(req.Token)
?? AccountData.GetAccountByDispatchToken(req.Token)
?? AccountData.GetAccountByUid(10001)
?? AccountData.GetAccountByUid(1);
if (account == null)
{
AccountData.CreateAccount("MIKU", 0, "");
account = AccountData.GetAccountByUid(1);
account = AccountData.CreateAccount("default@mikusb.local", 10001, "");
if (account == null)
{
await connection.SendPacket(CmdIds.NtfLogout);