mirror of
https://github.com/rafi1212122/PemukulPaku
synced 2025-12-13 16:14:34 +01:00
51 lines
1.9 KiB
C#
51 lines
1.9 KiB
C#
using Common.Resources.Proto;
|
|
using Common.Database;
|
|
using Common;
|
|
|
|
namespace PemukulPaku.GameServer.Handlers
|
|
{
|
|
[PacketCmdId(CmdId.GetPlayerTokenReq)]
|
|
internal class GetPlayerTokenReqHandler : IPacketHandler
|
|
{
|
|
public void Handle(Session session, Packet _packet)
|
|
{
|
|
GetPlayerTokenReq Packet = _packet.GetDecodedBody<GetPlayerTokenReq>();
|
|
GetPlayerTokenRsp Rsp = new () { };
|
|
UserScheme? CurrentUser = User.FromToken(Packet.AccountToken);
|
|
|
|
if (CurrentUser is null || CurrentUser.Uid != uint.Parse(Packet.AccountUid))
|
|
{
|
|
Rsp.retcode = GetPlayerTokenRsp.Retcode.AccountVerifyError;
|
|
Rsp.Msg = "Account verification failed, please re-login!";
|
|
}
|
|
else
|
|
{
|
|
session.Player = new Game.Player(CurrentUser);
|
|
|
|
if(session.Player.User.IsFirstLogin)
|
|
{
|
|
AvatarScheme avatar = Common.Database.Avatar.Create(101, session.Player.User.Uid, session.Player.Equipment);
|
|
session.Player.AvatarList = session.Player.AvatarList.Append(avatar).ToArray();
|
|
if ((int)Global.config.VerboseLevel > 0)
|
|
session.c.Log($"Automatically created avatar with id: {avatar.AvatarId}");
|
|
}
|
|
|
|
Rsp = new()
|
|
{
|
|
retcode = GetPlayerTokenRsp.Retcode.Succ,
|
|
Uid = CurrentUser.Uid,
|
|
Token = CurrentUser.Token,
|
|
AccountType = Packet.AccountType,
|
|
AccountUid = Packet.AccountUid,
|
|
UserType = 4,
|
|
HoyolabAccountUid = Packet.AccountUid,
|
|
FightserverIp = 0,
|
|
FightserverPort = 0
|
|
};
|
|
}
|
|
|
|
session.Send(GameServer.Packet.FromProto(Rsp, CmdId.GetPlayerTokenRsp));
|
|
}
|
|
}
|
|
}
|