150 lines
5.7 KiB
C#
150 lines
5.7 KiB
C#
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<MyhomeAgentAction>();
|
|
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<MyhomeAttribute>();
|
|
NullReferenceCheckHelper.throwIfNull(myhome_attribute, () => $"myhome_attribute is null !!!");
|
|
|
|
ntf_packet.Message.MyHomeInfoNoti.SelectedMyhomeGuid = myhome_attribute.MyhomeGuid;
|
|
}
|
|
|
|
var user_contents_setting_attribute = player.getEntityAttribute<UserContentsSettingAttribute>();
|
|
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<MyhomeAgentAction>();
|
|
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<MyhomeAction>();
|
|
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;
|
|
}
|
|
}
|
|
}
|