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 onInit() { await Task.CompletedTask; var result = new Result(); return result; } public override void onClear() { return; } public async Task 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; } } }