Files
2025-05-01 07:20:41 +09:00

70 lines
1.9 KiB
C#

using Amazon.OpenSearchService.Model.Internal.MarshallTransformations;
using Amazon.Runtime.Internal.Transform;
using GameServer.PacketHandler;
using RabbitMQ.Client;
using ServerCommon;
using ServerCore; using ServerBase;
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using META_ID = System.UInt32;
namespace GameServer
{
public class StateAction : EntityActionBase
{
public StateAction(Player owner)
: base(owner)
{
}
public override async Task<Result> onInit()
{
await Task.CompletedTask;
var result = new Result();
return result;
}
public override void onClear()
{
return;
}
public async Task<Result> ChangeState(PlayerStateType playerStateType)
{
var result = new Result();
var player = getOwner() as Player;
NullReferenceCheckHelper.throwIfNull(player, () => $"player is null !!!");
var server_logic = GameServerApp.getServerLogic();
NullReferenceCheckHelper.throwIfNull(server_logic, () => $"server_logic is null !!! - {player.toBasicString()}");
var login_cache_request = new LoginCacheRequest(player, server_logic.getRedisConnector());
result = await login_cache_request.fetchLogin();
if (result.isFail())
{
return result;
}
var login_cache = login_cache_request.getLoginCache();
NullReferenceCheckHelper.throwIfNull(login_cache, () => $"login_cache is null !!! - {player.toBasicString()}");
login_cache.State = playerStateType;
result = await login_cache_request.upsertLogin();
if (result.isFail())
{
return result;
}
return result;
}
}
}