using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using ServerCore; using ServerBase; using ServerCommon; using static ClientToGameMessage.Types; using static ServerMessage.Types; using META_ID = System.UInt32; using USER_GUID = System.String; using USER_NICKNAME = System.String; namespace GameServer { public static class LandAuctionNotifyHelper { public static bool send_GS2C_NTF_LAND_AUCTION_ALL_LOAD(Player player, List? landAuctionSummaries) { if(null == landAuctionSummaries) { return false; } var ntf_packet = new ClientToGame(); ntf_packet.Message = new(); var ntf_msg = new GS2C_NTF_LAND_AUCTION_ALL_LOAD(); ntf_packet.Message.NtfLandAuctionAllLoad = ntf_msg; ntf_msg.LandAuctionsSummaries.AddRange(landAuctionSummaries.ToList()); if (false == GameServerApp.getServerLogic().onSendPacket(player, ntf_packet)) { Log.getLogger().warn($"Failed to onSendPacket() !!! : {ntf_packet.toBasicString()} - {player.toBasicString()}"); return false; } return true; } public static bool broadcast_GS2C_NTF_LAND_AUCTION_SUMMARY(LandAuctionSummary landAuctionSummary) { var log_msg = $"call send_GS2C_NTF_LAND_AUCTION_SUMMARY() : {landAuctionSummary.LandAuctionInfo.toBasicString()}"; Log.getLogger().debug(log_msg); var server_logic = GameServerApp.getServerLogic(); var users = server_logic.getPlayerManager().getUsers(); if (0 >= users.Count) { return false; } var ntf_packet = new ClientToGame(); ntf_packet.Message = new(); var ntf_msg = new GS2C_NTF_LAND_AUCTION_SUMMARY(); ntf_packet.Message.NtfLandAuctionSummary = ntf_msg; ntf_msg.LandAuctionSummary = landAuctionSummary; var players = users.Values.ToArray(); if (false == GameServerApp.getServerLogic().onSendPacket(players, ntf_packet)) { Log.getLogger().warn($"Failed to onSendPacket() !!! : {ntf_packet.toBasicString()}"); return false; } return true; } public static bool broadcast_GS2GS_NTF_LAND_AUCTION_HIGHEST_BIDDER_CHANGE( USER_GUID receiverUserGuid, BoolType hasReceivedRefundMail , META_ID landMetaId , CurrencyType currencyType, double highestBidPrice , USER_GUID highestBidUserGuid, USER_NICKNAME highestBidUserNickname ) { var server_logic = GameServerApp.getServerLogic(); var message = new ServerMessage(); var ntf_msg = new GS2GS_NTF_LAND_AUCTION_HIGHEST_BIDDER_CHANGE(); message.NtfLandAuctionHighestBidderChange = ntf_msg; ntf_msg.ReceiverUserGuid = receiverUserGuid; ntf_msg.HasReceivedRefundMail = hasReceivedRefundMail; ntf_msg.LandMetaId = (Int32)landMetaId; ntf_msg.CurrencyType = currencyType; ntf_msg.HighestBidPrice = highestBidPrice; ntf_msg.HighestBidUserGuid = highestBidUserGuid; ntf_msg.HighestBidUserNickname = highestBidUserNickname; var rabbit_mq = server_logic.getRabbitMqConnector() as RabbitMQ4Game; NullReferenceCheckHelper.throwIfNull(rabbit_mq, () => $"rabbit_mq is null !!!"); rabbit_mq.sendMessageToExchangeAllGame(message); return true; } public static bool send_GS2C_NTF_LAND_AUCTION_HIGHEST_BIDDER_CHANGE( Player player , META_ID landMetaId , CurrencyType bidCurrencyType, double highestBidPrice , USER_GUID highestUserGuid, USER_NICKNAME highestUserNickname ) { var log_msg = $"call send_GS2C_NTF_LAND_AUCTION_HIGHEST_BIDDER_CHANGE !!! : landMetaId:{landMetaId}, highestBidPrice:{highestBidPrice}, highestUserNickname:{highestUserNickname}"; Log.getLogger().debug(log_msg); var ntf_packet = new ClientToGame(); ntf_packet.Message = new(); var ntf_msg = new GS2C_NTF_LAND_AUCTION_HIGHEST_BIDDER_CHANGE(); ntf_packet.Message.NtfLandAuctionHighestBidderChange = ntf_msg; ntf_msg.LandMetaId = (Int32)landMetaId; ntf_msg.CurrencyType = bidCurrencyType; ntf_msg.HighestBidPrice = highestBidPrice; ntf_msg.HighestBidUserGuid = highestUserGuid; ntf_msg.HighestBidUserNickname = highestUserNickname; if (false == GameServerApp.getServerLogic().onSendPacket(player, ntf_packet)) { Log.getLogger().warn($"Failed to onSendPacket() !!! : {ntf_packet.toBasicString()} - {player.toBasicString()}"); return false; } return true; } public static bool broadcast_GS2C_NTF_LAND_AUCTION_WINNING_BID(USER_NICKNAME winningUserNickname, META_ID landMetaId) { var log_msg = $"call broadcast_GS2C_NTF_LAND_AUCTION_WINNING_BID !!! : winningUserNickname:{winningUserNickname}, landMetaId:{landMetaId}"; Log.getLogger().debug(log_msg); var server_logic = GameServerApp.getServerLogic(); var users = server_logic.getPlayerManager().getUsers(); var players = users.Values.ToArray(); if (players.Length == 0) { return true; } var ntf_packet = new ClientToGame(); ntf_packet.Message = new ClientToGameMessage(); var ntf_msg = new GS2C_NTF_LAND_AUCTION_WINNING_BID(); ntf_packet.Message.NtfLandAuctionWinningBid = ntf_msg; ntf_msg.WinningUserNickname = winningUserNickname; ntf_msg.LandMetaId = (int)landMetaId; if (false == GameServerApp.getServerLogic().onSendPacket(players, ntf_packet)) { return false; } return true; } public static void broadcast_GS2GS_NTF_LAND_AUCTION_WINNING_BID( USER_GUID winningUserGuid, USER_NICKNAME winningUserNickname , META_ID landMetaId, List buildingMetaIds , BoolType isNewRecvMail = BoolType.True) { var server_logic = GameServerApp.getServerLogic(); var message = new ServerMessage(); var ntf_msg = new GS2GS_NTF_LAND_AUCTION_WINNING_BID(); message.NtfLandAuctionWinningBid = ntf_msg; ntf_msg.WinningUserGuid = winningUserGuid; ntf_msg.WinningUserNickname = winningUserNickname; ntf_msg.LandMetaId = (int)landMetaId; ntf_msg.BuildingMetaIds.AddRange( Array.ConvertAll(buildingMetaIds.ToArray(), Convert.ToInt32).ToList()); ntf_msg.IsNewRecvMail = isNewRecvMail; var rabbit_mq = server_logic.getRabbitMqConnector() as RabbitMQ4Game; NullReferenceCheckHelper.throwIfNull(rabbit_mq, () => $"rabbit_mq is null !!!"); rabbit_mq.sendMessageToExchangeAllGame(message); } public static void broadcast_GS2GS_NTF_LAND_AUCTION_RESERVATION(List toAddActivitings) { var server_logic = GameServerApp.getServerLogic(); var message = new ServerMessage(); var ntf_msg = new GS2GS_NTF_LAND_AUCTION_RESERVATION(); message.NtfLandAuctionReservation = ntf_msg; ntf_msg.ToAddActivitings.AddRange(Array.ConvertAll(toAddActivitings.ToArray(), Convert.ToInt32).ToList()); var rabbit_mq = server_logic.getRabbitMqConnector() as RabbitMQ4Game; NullReferenceCheckHelper.throwIfNull(rabbit_mq, () => $"rabbit_mq is null !!!"); rabbit_mq.sendMessageToExchangeAllGame(message); } } }