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.GS2GS_NTF_CRAFT_HELP), typeof(NtfCraftHelpMQPacketHandler), typeof(RabbitMQ4Game))] internal class NtfCraftHelpMQPacketHandler : PacketRecvHandler { public override async Task onProcessPacket(ISession session, IMessage recvMessage) { var msg = recvMessage as ServerMessage; ArgumentNullException.ThrowIfNull(msg); var server_logic = GameServerApp.getServerLogic(); var player_manager = server_logic.getPlayerManager(); ArgumentNullException.ThrowIfNull(player_manager); if (player_manager.tryGetUserByPrimaryKey(msg.NtfCraftHelp.OwnerGuid, out var player) == true) { var craft_action = player.getEntityAction(); ArgumentNullException.ThrowIfNull(craft_action); craft_action.setUpdateCraft(true); CraftNotifyHelper.send_S2C_NTF_CRAFT_HELPED(player, msg.NtfCraftHelp.OwnerHelpedCount, msg.NtfCraftHelp.HelpUserName); } InstanceRoomManager.Instance.ExchangeCraft(msg.NtfCraftHelp.RoomId, msg.NtfCraftHelp.AnchorGuid, msg.NtfCraftHelp.CraftFinishTime); return await Task.FromResult(new Result()); } }