초기커밋
This commit is contained in:
81
GameServer/Contents/Chat/PacketHandler/ChatNotifyHelper.cs
Normal file
81
GameServer/Contents/Chat/PacketHandler/ChatNotifyHelper.cs
Normal file
@@ -0,0 +1,81 @@
|
||||
using ServerCore; using ServerBase;
|
||||
using static ServerMessage.Types;
|
||||
|
||||
namespace GameServer
|
||||
{
|
||||
public class ChatNotifyHelper
|
||||
{
|
||||
|
||||
public static ClientToGame makeChatMessage(ChatType chat_type, string sender_nickname, string receiver_nickname, PlayerStateType receiver_state, string message)
|
||||
{
|
||||
var noti_packet = new ClientToGame();
|
||||
noti_packet.Message = new();
|
||||
noti_packet.Message.Chat = new();
|
||||
|
||||
noti_packet.Message.Chat.Type = chat_type;
|
||||
noti_packet.Message.Chat.Sender = sender_nickname;
|
||||
noti_packet.Message.Chat.Receiver = receiver_nickname;
|
||||
noti_packet.Message.Chat.Receiverstate = receiver_state;
|
||||
noti_packet.Message.Chat.Message = message;
|
||||
|
||||
return noti_packet;
|
||||
}
|
||||
|
||||
public static bool send_S2C_NTF_CHAT(Player player, ChatType chat_type, string sender_nickname, string receiver_nickname, PlayerStateType receiver_state, string message)
|
||||
{
|
||||
var noti_packet = makeChatMessage(chat_type, sender_nickname, receiver_nickname, receiver_state, message);
|
||||
|
||||
if (false == GameServerApp.getServerLogic().onSendPacket(player, noti_packet))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public static bool send_S2C_NTF_CHAT_BROADCAST(Player player, ChatType chat_type, string sender_nickname, string receiver_nickname, PlayerStateType receiver_state, string message)
|
||||
{
|
||||
var noti_packet = makeChatMessage(chat_type, sender_nickname, receiver_nickname, receiver_state, message);
|
||||
|
||||
var game_zone_action = player.getEntityAction<GameZoneAction>();
|
||||
NullReferenceCheckHelper.throwIfNull(game_zone_action, () => $"game_zone_action is null !!!");
|
||||
game_zone_action.broadcast(player, noti_packet);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public static void send_S2C_NTF_MQ_CHAT(Chat chat)
|
||||
{
|
||||
var server_logic = GameServerApp.getServerLogic();
|
||||
var player_manager = server_logic.getPlayerManager();
|
||||
|
||||
switch (chat.Type)
|
||||
{
|
||||
case ChatType.Notice:
|
||||
{
|
||||
var players = player_manager.getUsers();
|
||||
foreach (var player in players)
|
||||
{
|
||||
ChatNotifyHelper.send_S2C_NTF_CHAT(player.Value, chat.Type, chat.SenderNickName, "", PlayerStateType.None, chat.Message);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case ChatType.Whisper:
|
||||
{
|
||||
if (player_manager.tryGetUserByPrimaryKey(chat.ReceiverGuid, out var found_user) == false) return;
|
||||
if (found_user == null) return;
|
||||
|
||||
ChatNotifyHelper.send_S2C_NTF_CHAT(found_user, chat.Type, chat.SenderNickName, found_user.getUserNickname(), PlayerStateType.None, chat.Message);
|
||||
break;
|
||||
}
|
||||
case ChatType.Party:
|
||||
{
|
||||
//await PartyManager.Instance.ChatBroadcast(chat.Receiver, clientToGame);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user