using MongoDB.Bson.Serialization.Conventions; using ServerCommon; using ServerCore; using ServerBase; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using static ClientToGameMessage.Types; namespace GameServer { internal static class MyhomeNotifyHelper { public static bool send_S2C_MYHOME_INFO_NOTI(this Player player) { var ntf_packet = new ClientToGame(); ntf_packet.Message = new ClientToGameMessage(); ntf_packet.Message.MyHomeInfoNoti = new MyHomeInfoNoti(); var myhome_agent_action = player.getEntityAction(); NullReferenceCheckHelper.throwIfNull(myhome_agent_action, () => $"myhome_agent_action is null !!!"); if (myhome_agent_action.tryGetSelectedMyhome(out var select_myhome)) { var myhome_attribute = select_myhome.getEntityAttribute(); NullReferenceCheckHelper.throwIfNull(myhome_attribute, () => $"myhome_attribute is null !!!"); ntf_packet.Message.MyHomeInfoNoti.SelectedMyhomeGuid = myhome_attribute.MyhomeGuid; } var user_contents_setting_attribute = player.getEntityAttribute(); NullReferenceCheckHelper.throwIfNull(user_contents_setting_attribute, () => $"user_contents_setting_attribute is null !!!"); ntf_packet.Message.MyHomeInfoNoti.OpenSlotCount = user_contents_setting_attribute.MyhomeSlotOpenCount; if (false == GameServerApp.getServerLogic().onSendPacket(player, ntf_packet)) { return false; } return true; } public static bool send_S2C_NTF_MYHOME_INFO(this Player player) { var myhome_agent_action = player.getEntityAction(); NullReferenceCheckHelper.throwIfNull(myhome_agent_action, () => $"myhome_agent_action is null !!!"); var myhomes = myhome_agent_action.getMyHomes(); foreach (var myhome in myhomes) { var ntf_packet = new ClientToGame(); ntf_packet.Message = new ClientToGameMessage(); ntf_packet.Message.NtfMyhomeInfo = new GS2C_NTF_MYHOME_INFO(); var myhome_action = myhome.getEntityAction(); NullReferenceCheckHelper.throwIfNull(myhome_action, () => $"myhome_action is null !!!"); var myhome_info = myhome_action.toMyHomeInfo(); ntf_packet.Message.NtfMyhomeInfo.MyhomeInfo = myhome_info; if (false == GameServerApp.getServerLogic().onSendPacket(player, ntf_packet)) { return false; } } return true; } public static ClientToGame makeNtfMyHomeAddPacket(int myhome_meta_id) { var ntf_packet = new ClientToGame(); ntf_packet.Message = new ClientToGameMessage(); ntf_packet.Message.MyHomeAddNoti = new MyHomeAddNoti(); ntf_packet.Message.MyHomeAddNoti.MyHomeId = myhome_meta_id; return ntf_packet; } public static bool send_S2C_NTF_MYHOME_UGC_INFO(Player player, MyHomeInfo myhomeInfo) { var ntf_packet = new ClientToGame(); ntf_packet.Message = new ClientToGameMessage(); ntf_packet.Message.NtfMyhomeUgcInfo = new GS2C_NTF_MYHOME_UGC_INFO(); ntf_packet.Message.NtfMyhomeUgcInfo.MyhomeGuid = myhomeInfo.MyhomeGuid; ntf_packet.Message.NtfMyhomeUgcInfo.MyhomeUgcInfo = myhomeInfo.MyhomeUgcInfo; if (false == GameServerApp.getServerLogic().onSendPacket(player, ntf_packet)) { return false; } return true; } public static bool send_GS2GS_NTF_EXCHANGE_MYHOME(string destServer, string roomId, string myhomeGuid, MyHomeInfo myhomeInfo) { var message = new ServerMessage(); message.NtfExchangeMyhome = new(); message.NtfExchangeMyhome.RoomId = roomId; message.NtfExchangeMyhome.MyhomeGuid = myhomeGuid; message.NtfExchangeMyhome.MyhomeInfo = myhomeInfo; var server_logic = GameServerApp.getServerLogic(); var rabbit_mq = server_logic.getRabbitMqConnector() as RabbitMQ4Game; ArgumentNullException.ThrowIfNull(rabbit_mq); rabbit_mq.SendMessage(destServer, message); return true; } public static bool send_GS2C_NTF_MYHOME_HOST_ENTER_EDIT_ROOM(Player player) { var ntf_packet = new ClientToGame(); ntf_packet.Message = new ClientToGameMessage(); ntf_packet.Message.NtfMyhomeHostEnterEditRoom = new GS2C_NTF_MYHOME_HOST_ENTER_EDIT_ROOM(); if (false == GameServerApp.getServerLogic().onSendPacket(player, ntf_packet)) { return false; } return true; } public static bool send_GS2GS_NTF_MYHOME_HOST_ENTER_EDIT_ROOM(string destServer, string roomId, string exceptUserGuid) { var message = new ServerMessage(); message.NtfMyhomeHostEnterEditRoom = new(); message.NtfMyhomeHostEnterEditRoom.RoomId = roomId; message.NtfMyhomeHostEnterEditRoom.ExceptUserGuid = exceptUserGuid; var server_logic = GameServerApp.getServerLogic(); var rabbit_mq = server_logic.getRabbitMqConnector() as RabbitMQ4Game; ArgumentNullException.ThrowIfNull(rabbit_mq); rabbit_mq.SendMessage(destServer, message); return true; } } }