Ejemplo n.º 1
0
        public override void Handle(GameSession session, PacketReader packet)
        {
            ChatType type      = (ChatType)packet.ReadInt();
            string   message   = packet.ReadUnicodeString();
            string   recipient = packet.ReadUnicodeString();

            packet.ReadLong();

            GameCommandActions.Process(session, message);
            session.FieldManager.SendChat(session.Player, message, type);
        }
Ejemplo n.º 2
0
        public override void Handle(GameSession session, PacketReader packet)
        {
            ChatType type      = (ChatType)packet.ReadInt();
            string   message   = packet.ReadUnicodeString();
            string   recipient = packet.ReadUnicodeString();

            packet.ReadLong();

            GameCommandActions.Process(session, message);

            switch (type)
            {
            case ChatType.Channel:     //TODO: Send to all players on current channel
                break;

            case ChatType.Super:
            case ChatType.World:
                //Send to all players online
                MapleServer.BroadcastPacketAll(ChatPacket.Send(session.Player, message, type));
                break;

            case ChatType.GuildNotice:
            case ChatType.Guild:
                //TODO: Send to all in guild
                break;

            case ChatType.Party:
                Party party = GameServer.PartyManager.GetPartyById(session.Player.PartyId);
                if (party != null)
                {
                    party.BroadcastPacketParty(ChatPacket.Send(session.Player, message, type));
                }
                break;

            case ChatType.WhisperTo:
                Player recipientPlayer = GameServer.Storage.GetPlayerByName(recipient);

                if (recipientPlayer != null)
                {
                    recipientPlayer.Session.Send(ChatPacket.Send(session.Player, message, ChatType.WhisperFrom));
                    session.Send(ChatPacket.Send(recipientPlayer, message, ChatType.WhisperTo));
                }
                else
                {
                    session.Send(ChatPacket.Send(session.Player, "Player not found or they are not online.", ChatType.WhisperFail));
                }
                break;

            default:
                session.FieldManager.SendChat(session.Player, message, type);
                break;
            }
        }
Ejemplo n.º 3
0
        public override void Handle(GameSession session, PacketReader packet)
        {
            ChatType type      = (ChatType)packet.ReadInt();
            string   message   = packet.ReadUnicodeString();
            string   recipient = packet.ReadUnicodeString();
            long     clubId    = packet.ReadLong();

            if (message.Substring(0, 1).Equals("/"))
            {
                GameCommandActions.Process(session, message);
                return;
            }

            switch (type)
            {
            case ChatType.Channel:
                HandleChannelChat(/*session, message, type*/);
                break;

            case ChatType.Super:
                HandleSuperChat(session, message, type);
                break;

            case ChatType.World:
                HandleWorldChat(session, message, type);
                break;

            case ChatType.GuildAlert:
                HandleGuildAlert(session, message, type);
                break;

            case ChatType.Guild:
                HandleGuildChat(session, message, type);
                break;

            case ChatType.Party:
                HandlePartyChat(session, message, type);
                break;

            case ChatType.WhisperTo:
                HandleWhisperChat(session, recipient, message);
                break;

            case ChatType.Club:
                HandleClubChat(/*session, message, type, clubId*/);
                break;

            default:
                HandleChat(session, message, type);
                break;
            }
        }