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); }
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; } }
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; } }