using Google.Protobuf; using Google.Protobuf.WellKnownTypes; using ServerCore; using ServerBase; using ServerCommon; using ServerCommon.BusinessLogDomain; using MetaAssets; namespace GameServer.PacketHandler; using META_ID = System.UInt32; [PacketHandler("allgameserver", typeof(ServerMessage.Types.GS2GS_NTF_LAND_AUCTION_HIGHEST_BIDDER_CHANGE), typeof(NtfLandAuctionHighestBidderChangeMQPacketHandler), typeof(RabbitMQ4Game))] public class NtfLandAuctionHighestBidderChangeMQPacketHandler : 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_land_auction_highest_bidder_change = msg.NtfLandAuctionHighestBidderChange; ArgumentNullException.ThrowIfNull(ntf_land_auction_highest_bidder_change, $"ntf_land_auction_highest_bidder_change is null !!!"); var server_logic = GameServerApp.getServerLogic(); var player_manager = server_logic.getPlayerManager(); ArgumentNullException.ThrowIfNull(player_manager, $"player_manager is null !!!"); var receiver_user_guid = ntf_land_auction_highest_bidder_change.ReceiverUserGuid; if (player_manager.tryGetUserByPrimaryKey(receiver_user_guid, out var found_user) == false) { var err_msg = $"Failed to tryGetUserByPrimaryKey() !!!, Not found Player !!! : UserGuid:{receiver_user_guid}"; result.setFail(ServerErrorCode.UserNotLogin, err_msg); Log.getLogger().info(result.toBasicString()); return result; } var has_received_refund_mail = ntf_land_auction_highest_bidder_change.HasReceivedRefundMail; var land_meta_id = (META_ID)ntf_land_auction_highest_bidder_change.LandMetaId; var bid_currency_type = ntf_land_auction_highest_bidder_change.CurrencyType; var highest_bid_price = ntf_land_auction_highest_bidder_change.HighestBidPrice; var highest_bid_user_guid = ntf_land_auction_highest_bidder_change.HighestBidUserGuid; var highest_bid_user_nickname = ntf_land_auction_highest_bidder_change.HighestBidUserNickname; if (false == LandAuctionNotifyHelper.send_GS2C_NTF_LAND_AUCTION_HIGHEST_BIDDER_CHANGE( found_user , land_meta_id , bid_currency_type, highest_bid_price , highest_bid_user_guid, highest_bid_user_nickname ) ) { var err_msg = $"Failed to send_GS2C_NTF_LAND_AUCTION_HIGHEST_BIDDER_CHANGE() !!! : LandMetaId:{land_meta_id} - {found_user.toBasicString()}"; Log.getLogger().error(err_msg); } if ( BoolType.True == has_received_refund_mail ) { var mail_action = found_user.getEntityAction(); NullReferenceCheckHelper.throwIfNull(mail_action, () => $"mail_action is null !!!"); mail_action.NewReceivedMail(); } return await Task.FromResult(result); } }