초기커밋
This commit is contained in:
@@ -0,0 +1,116 @@
|
||||
using Newtonsoft.Json;
|
||||
using Google.Protobuf;
|
||||
using Google.Protobuf.WellKnownTypes;
|
||||
|
||||
|
||||
using ServerCore;
|
||||
using ServerBase;
|
||||
using ServerCommon;
|
||||
using ServerCommon.BusinessLogDomain;
|
||||
using MetaAssets;
|
||||
|
||||
|
||||
|
||||
namespace GameServer;
|
||||
|
||||
|
||||
public class RabbitNoticeChatHandler
|
||||
{
|
||||
public void MOS2GS_noticeChatSend(ServerMessage.Types.MOS2GS_NTF_NOTICE_CHAT chatMsg)
|
||||
{
|
||||
//OperationSystemNoticeChatType
|
||||
|
||||
Log.getLogger().debug("MOS2GS_noticeChatSend call start");
|
||||
// 1. 메시지 체크
|
||||
if (chatMsg == null)
|
||||
{
|
||||
var err_msg = $"chatMsg is null !!! : {nameof(ServerMessage.Types.MOS2GS_NTF_NOTICE_CHAT)}";
|
||||
Log.getLogger().error(err_msg);
|
||||
return;
|
||||
}
|
||||
//await server_logic.getNoticeChatManager().LoadDB();
|
||||
var notice_type = chatMsg.NoticeType.ToString();
|
||||
var chat_msgs = chatMsg.ChatMessage;
|
||||
var senders = chatMsg.Sender;
|
||||
|
||||
Dictionary<int, string> dic_msg_by_lang = new();
|
||||
Dictionary<int, string> dic_sender_by_lang = new();
|
||||
foreach(var chat_msg in chat_msgs)
|
||||
{
|
||||
var txt = StringRuleHelper.convertStringFromBase64(chat_msg.Text);
|
||||
dic_msg_by_lang.Add((int)chat_msg.LanguageType, txt);
|
||||
}
|
||||
|
||||
foreach(var sender in senders)
|
||||
{
|
||||
var sender_txt = StringRuleHelper.convertStringFromBase64(sender.Text);
|
||||
dic_sender_by_lang.Add((int)sender.LanguageType, sender_txt);
|
||||
}
|
||||
|
||||
|
||||
var server_logic = GameServerApp.getServerLogic();
|
||||
var player_manager = server_logic.getPlayerManager();
|
||||
// if (notice_type.Equals(OperationSystemNoticeChatType.CHATTING.ToString()))
|
||||
// {
|
||||
|
||||
//일단 채팅이든 토스트든 전부 notice로 전달한다.
|
||||
var users = player_manager.getUsers();
|
||||
foreach (var user in users)
|
||||
{
|
||||
var player = user.Value;
|
||||
var account_attribute = player.getEntityAttribute<AccountAttribute>();
|
||||
if(account_attribute == null) continue;
|
||||
|
||||
if(dic_msg_by_lang.TryGetValue((int)account_attribute.LanguageType, out var chat_msg) == false)
|
||||
{
|
||||
var err_msg = $"dic_msg_by_lang error accountid : {account_attribute.AccountId}, langtype : {account_attribute.LanguageType}, {JsonConvert.SerializeObject(dic_msg_by_lang)}";
|
||||
Log.getLogger().error(err_msg);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (dic_sender_by_lang.TryGetValue((int)account_attribute.LanguageType, out var sender) == false)
|
||||
{
|
||||
var err_msg = $"dic_sender_by_lang error accountid : {account_attribute.AccountId}, langtype : {account_attribute.LanguageType}, {JsonConvert.SerializeObject(dic_sender_by_lang)}";
|
||||
Log.getLogger().error(err_msg);
|
||||
continue;
|
||||
}
|
||||
ChatNotifyHelper.send_S2C_NTF_CHAT(player, ChatType.Notice, sender, player.getUserNickname(), PlayerStateType.None, chat_msg);
|
||||
}
|
||||
|
||||
Log.getLogger().debug($"MOS2GS_noticeChatSend call end userCount = {users.Count}, lang_msg : {JsonConvert.SerializeObject(dic_msg_by_lang)}, sender_msg : {JsonConvert.SerializeObject(dic_sender_by_lang)}");
|
||||
|
||||
// }
|
||||
// else if (notice_type.Equals(OperationSystemNoticeChatType.CHATTING_TOAST.ToString()))
|
||||
// {
|
||||
// var err_msg = $"CHATTING_TOAST not implement !!!";
|
||||
// return;
|
||||
// }
|
||||
|
||||
//메시지에 대한 필터링을 어떻게 해야하지?
|
||||
// 4. 채팅 처리
|
||||
// switch (chat_type)
|
||||
// {
|
||||
// case ChatType.Normal:
|
||||
// result = chat_action.NormalChat(request.Message);
|
||||
// break;
|
||||
// case ChatType.Channel:
|
||||
// result = chat_action.ChannelChat(request.Message);
|
||||
// break;
|
||||
// case ChatType.Notice:
|
||||
//result = chat_action.NoticeChat(request.Message);
|
||||
// break;
|
||||
// case ChatType.Whisper:
|
||||
// result = await chat_action.WhisperChat(request.ToNickName, request.Message);
|
||||
// break;
|
||||
// case ChatType.Party:
|
||||
// result = await chat_action.PartyChat(request.Message);
|
||||
// break;
|
||||
// if (result.isFail())
|
||||
// {
|
||||
// err_msg = $"Failed to trySendMail() !!! : {result.toBasicString()} - {entity_player.toBasicString()}";
|
||||
// Log.getLogger().error(err_msg);
|
||||
// return result;
|
||||
// }
|
||||
// return result;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user