public override void ProcessPacket(ChatCommandWhisperPacket packet, NebulaConnection conn)
        {
            if (IsClient)
            {
                WhisperCommandHandler.SendWhisperToLocalPlayer(packet.SenderUsername, packet.Message);
            }
            else
            {
                // two cases, simplest is that whisper is meant for host
                if (Multiplayer.Session.LocalPlayer.Data.Username == packet.RecipientUsername)
                {
                    WhisperCommandHandler.SendWhisperToLocalPlayer(packet.SenderUsername, packet.Message);
                    return;
                }

                // second case, relay message to recipient
                INebulaPlayer recipient = Multiplayer.Session.Network
                                          .PlayerManager.GetConnectedPlayerByUsername(packet.RecipientUsername);
                if (recipient == null)
                {
                    Log.Warn($"Recipient not found {packet.RecipientUsername}");
                    INebulaPlayer sender = Multiplayer.Session.Network.PlayerManager.GetPlayer(conn);
                    sender.SendPacket(new ChatCommandWhisperPacket("SYSTEM", packet.SenderUsername, $"User not found {packet.RecipientUsername}"));
                    return;
                }

                recipient.SendPacket(packet);
            }
        }
Exemple #2
0
        public ChatBot(BotSettings settings)
        {
            this._settings = settings;
            settings.Bot   = this;

            InitializeClient();
            InitializeTelegram();

            _whisperCommandHandler = new WhisperCommandHandler(_settings);
        }