コード例 #1
0
        public async Task <bool> OnHandle(MessageContext context, CWhisperChatMessageReqMessage message)
        {
            var session = context.GetSession <Session>();
            var plr     = session.Player;
            var toPlr   = _playerManager.GetByNickname(message.ToNickname);

            // TODO Is there an answer for this case?
            if (toPlr == null)
            {
                session.Send(new SChatMessageAckMessage(ChatType.Channel, session.Player.Account.Id,
                                                        "SYSTEM", $"{message.ToNickname} is not online"));
                return(true);
            }

            // TODO Is there an answer for this case?
            if (toPlr.Ignore.Contains(session.Player.Account.Id))
            {
                session.Send(new SChatMessageAckMessage(ChatType.Channel, session.Player.Account.Id,
                                                        "SYSTEM", $"{message.ToNickname} is ignoring you"));
                return(true);
            }

            toPlr.Session.Send(
                new SWhisperChatMessageAckMessage(
                    0,
                    toPlr.Account.Nickname,
                    plr.Account.Id,
                    plr.Account.Nickname,
                    message.Message
                    )
                );
            return(true);
        }
コード例 #2
0
        public void CWhisperChatMessageReq(ChatSession session, CWhisperChatMessageReqMessage message)
        {
            var toPlr = GameServer.Instance.PlayerManager.Get(message.ToNickname);

            // ToDo Is there an answer for this case?
            if (toPlr == null)
            {
                session.Player.ChatSession.SendAsync(new SChatMessageAckMessage(ChatType.Channel, session.Player.Account.Id, "SYSTEM", $"{message.ToNickname} is not online"));
                return;
            }

            // ToDo Is there an answer for this case?
            if (toPlr.DenyManager.Contains(session.Player.Account.Id))
            {
                session.Player.ChatSession.SendAsync(new SChatMessageAckMessage(ChatType.Channel, session.Player.Account.Id, "SYSTEM", $"{message.ToNickname} is ignoring you"));
                return;
            }

            toPlr.ChatSession.SendAsync(new SWhisperChatMessageAckMessage(0, toPlr.Account.Nickname,
                                                                          session.Player.Account.Id, session.Player.Account.Nickname, message.Message));
        }
コード例 #3
0
        public void CWhisperChatMessageReq(ChatSession session, CWhisperChatMessageReqMessage message)
        {
            var toPlr = GameServer.Instance.PlayerManager.Get(message.ToNickname);

            toPlr?.ChatSession.Send(new SWhisperChatMessageAckMessage(0, toPlr.Account.Nickname, session.Player.Account.Id, session.Player.Account.Nickname, message.Message));
        }