예제 #1
0
        public override void Execute(string commandArgs)
        {
            var splittedCommand = commandArgs.Trim().Split(' ');

            if (splittedCommand.Length == 2)
            {
                var playerName = splittedCommand[0];
                var client     = ClientRetriever.GetAuthenticatedClients().FirstOrDefault(p => p.PlayerName == playerName);

                if (client != null)
                {
                    var newMessageData = new ChatPrivateMsgData
                    {
                        From = GeneralSettings.SettingsStore.ConsoleIdentifier,
                        To   = client.PlayerName,
                        Text = commandArgs.Substring(client.PlayerName.Length + 1)
                    };

                    MessageQueuer.SendToClient <ChatSrvMsg>(client, newMessageData);
                }
                else
                {
                    LunaLog.Normal("Player not found!");
                }
            }
        }
예제 #2
0
 public void HandlePrivateMessage(ClientStructure client, ChatPrivateMsgData message)
 {
     if (message.To != GeneralSettings.SettingsStore.ConsoleIdentifier)
     {
         var findClient = ClientRetriever.GetClientByName(message.To);
         if (findClient != null)
         {
             MessageQueuer.SendToClient <ChatSrvMsg>(client, message);     //Send it to the sender
             MessageQueuer.SendToClient <ChatSrvMsg>(findClient, message); //Send it to destination
             LunaLog.ChatMessage($"{message.From} -> @{message.To}: {message.Text}");
         }
         else
         {
             LunaLog.ChatMessage($"{message.From} -X-> @{message.To}: {message.Text}");
         }
     }
     else
     {
         //Send it to the sender only as we as server already received it
         MessageQueuer.SendToClient <ChatSrvMsg>(client, message);
         LunaLog.ChatMessage($"{message.From} -> @{message.To}: {message.Text}");
     }
 }