/// <summary> /// The parse. /// </summary> /// <param name="client"> /// </param> /// <param name="packet"> /// </param> /// <param name="messageNumber"> /// </param> /// <returns> /// </returns> public bool Parse(Client client, byte[] packet, ushort messageNumber) { switch (messageNumber) { case 0: Authenticate.Read(client, ref packet); break; case 2: // Chat bot wants to authenticate AuthenticateBot.Read(client, packet); break; case 3: LoginCharacter.Read(client, packet); break; case 21: PlayerNameLookup.Read(client, packet); break; case 30: Tell.Read(client, packet); break; case 40: BuddyAdd.Read(client, packet); break; case 41: new BuddyRemove().Read(client, packet); break; case 42: new OnlineStatus().Read(client, packet); break; case 50: new PrivateGroupInvitePlayer().Read(client, packet); break; case 51: new PrivateGroupKickPlayer().Read(client, packet); break; case 52: new PrivateGroupJoin().Read(client, packet); break; case 53: new PrivateGroupLeave().Read(client, packet); break; case 54: // this packet should have no data to read PrivateGroupKickEveryone.Read(client, ref packet); break; case 57: new PrivateGroupMessage().Read(client, packet); break; case 64: new ChannelDataSet().Read(client, packet); break; case 65: ChannelMessage.Read(client, packet); break; case 66: new ChannelMode().Read(client, packet); break; case 70: case 71: // should never get these messages (ClimodeGet and ClimodeSet) break; case 100: // Ping client.Send(packet); break; case 110: break; case 120: new ChatCommand().Read(client, packet); break; default: client.Server.Warning(client, "Client sent unknown message {0}", messageNumber.ToString()); return(false); } return(true); }