mirror of
https://github.com/rafi1212122/PemukulPaku
synced 2025-12-13 19:24:35 +01:00
50 lines
1.8 KiB
C#
50 lines
1.8 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 == 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);
|
|
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 = 186782306,
|
|
FightserverPort = 2096693423
|
|
};
|
|
}
|
|
|
|
session.Send(GameServer.Packet.FromProto(Rsp, CmdId.GetPlayerTokenRsp));
|
|
}
|
|
}
|
|
}
|