using Google.Protobuf; using Google.Protobuf.WellKnownTypes; using ServerCore; using ServerBase; using ServerCommon; using ServerCommon.BusinessLogDomain; using MetaAssets; namespace GameServer.PacketHandler; [PacketHandler("", typeof(ServerMessage.Types.GS2MQS_NTF_BEACON_COMPACT_SYNC), typeof(NtfBeaconCompactSyncMQPacketHandler), typeof(RabbitMQ4Game))] public class NtfBeaconCompactSyncMQPacketHandler : PacketRecvHandler { public override async Task onProcessPacket(ISession session, IMessage recvMessage) { var result = new Result(); var msg = recvMessage as ServerMessage; ArgumentNullException.ThrowIfNull(msg, $"msg is null !!!"); var ntf_msg_beacon_compact_sync = msg.NtfBeaconCompactSync; ArgumentNullException.ThrowIfNull(ntf_msg_beacon_compact_sync, $"ntf_msg_beacon_compact_sync is null !!!"); var server_logic = GameServerApp.getServerLogic(); var player_manager = server_logic.getPlayerManager(); ArgumentNullException.ThrowIfNull(server_logic, $"server_logic is null !!!"); ArgumentNullException.ThrowIfNull(player_manager, $"player_manager is null !!!"); var user_guid = ntf_msg_beacon_compact_sync.UserGuid; if (player_manager.tryGetUserByPrimaryKey(user_guid, out var found_user) == false) { var err_msg = $"Failed to tryGetUserByPrimaryKey() !!!, Not found Player !!! : UserGuid:{user_guid}"; result.setFail(ServerErrorCode.UserNotLogin, err_msg); Log.getLogger().info(result.toBasicString()); return result; } var player_action = found_user.getEntityAction(); ArgumentNullException.ThrowIfNull(player_action, $"player_action is null !!! - {found_user.toBasicString()}"); var ugc_npc_compact = ntf_msg_beacon_compact_sync.UgcNpcCompact; ArgumentNullException.ThrowIfNull(ugc_npc_compact, $"ugc_npc_compact is null !!! - {found_user.toBasicString()}"); var had_ugc_npcs = player_action.getHadUgcNpcs(); ArgumentNullException.ThrowIfNull(had_ugc_npcs, $"had_ugc_npcs is null !!! - {found_user.toBasicString()}"); var ugc_npc_meta_guid = ugc_npc_compact.UgcNpcMetaGuid; if (false == had_ugc_npcs.TryGetValue(ugc_npc_meta_guid, out var found_ugc_npc)) { var err_msg = $"Not found UgcNpc !!! : ugcNpcMetaGuid:{ugc_npc_meta_guid} - {found_user.toBasicString()}"; result.setFail(ServerErrorCode.UgcNpcNotFound, err_msg); Log.getLogger().info(result.toBasicString()); return result; } var ugc_npc_action = found_ugc_npc.getEntityAction(); ArgumentNullException.ThrowIfNull(ugc_npc_action, $"ugc_npc_action is null !!! - {found_user.toBasicString()}"); ugc_npc_action.updateUgcNpcCompact(ntf_msg_beacon_compact_sync); UgcNpcNotifyHelper.send_GS2C_NTF_BEACON_COMPACT_UPDATE(found_user, found_ugc_npc, ugc_npc_compact); return await Task.FromResult(result); } }