Files
caliverse_server/GameServer/Contents/UserBlock/Helper/UserBlockNotifyHelper.cs
2025-05-01 07:20:41 +09:00

63 lines
1.9 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Google.Protobuf.WellKnownTypes;
using ServerCore; using ServerBase;
using ServerCommon;
namespace GameServer;
public static class UserBlockNotifyHelper
{
public static async Task send_GS2C_NTF_BLOCK_USERS(this Player player)
{
var server_logic = GameServerApp.getServerLogic();
var ntf_packet = new ClientToGame();
ntf_packet.Message = new();
ntf_packet.Message.BlockListNoti = new();
var block_agent_action = player.getEntityAction<BlockUserAgentAction>();
var block_users = block_agent_action.getBlockUsers();
foreach (var block_user in block_users.Values)
{
BlockInfo info = new();
var block_user_attribute = block_user.getEntityAttribute<BlockUserAttribute>();
NullReferenceCheckHelper.throwIfNull(block_user_attribute, () => $"block_user_attribute is null !!! - {player.toBasicString()}");
info.Guid = block_user_attribute.BlockGuid;
info.CreateTime = Timestamp.FromDateTime(block_user_attribute.CreateTime);
info.IsNew = block_user_attribute.IsNew;
(var result, var nickname_attrib) = await NicknameDoc.findNicknameFromGuid(block_user_attribute.BlockGuid);
if (result.isFail())
{
Log.getLogger().error($"{block_user_attribute.BlockGuid} user not exitst Nickname");
info.NickName = string.Empty;
}
else
{
NullReferenceCheckHelper.throwIfNull(nickname_attrib, () => $"nickname_attrib is null !!! - {player.toBasicString()}");
info.NickName = nickname_attrib.Nickname;
}
ntf_packet.Message.BlockListNoti.BlockList.Add(info);
}
server_logic.onSendPacket(player, ntf_packet);
}
}