using System; using System.Collections.Generic; using System.Linq; using System.Text; using Ion.Storage; using Holo.Virtual.Users; using Holo.Source.GameConnectionSystem; namespace Holo.Source.Socket_servers.Game_Socketsystem { public class messageHandler { private virtualUser EndUser; private string LastReceivedPacket; private delegate void Packet(); private Packet[] mPacket; private gameConnection Connector; public messageHandler(gameConnection _A) { mPacket = new Packet[99999]; Connector = _A; } internal void SetUser(virtualUser User) { this.EndUser = User; RegisterStandardPackets(); } internal void ProcessPacket(string Packet) { if (mPacket[Encoding.decodeB64(Packet.Substring(0, 2))] == null) { if (bool.Parse(Eucalypt.showPackets) == true) Out.WriteAlert("¡Paquete desconocido! [" + Packet + "]"); } else { if (bool.Parse(Eucalypt.showPackets) == true) Out.WriteLine("Paquete [" + Packet + "]", ConsoleColor.White); EndUser.currentPacket = Packet; LastReceivedPacket = Packet; mPacket[Encoding.decodeB64(Packet.Substring(0, 2))].Invoke(); } } internal string currentPacket { get { return LastReceivedPacket; } } #region Packet registry internal void RegisterStandardPackets() { mPacket[Encoding.decodeB64("CD")] = new Packet(EndUser.ProcessPacketCD21); mPacket[Encoding.decodeB64("CN")] = new Packet(EndUser.ProcessPacketCN); mPacket[Encoding.decodeB64("_R")] = new Packet(EndUser.ProcessPacket_R); mPacket[Encoding.decodeB64("@F")] = new Packet(EndUser.ProcessPacketapeF); mPacket[Encoding.decodeB64("RR")] = new Packet(EndUser.ProcessPacketRR); mPacket[Encoding.decodeB64("CL")] = new Packet(EndUser.ProcessPacketCL); } internal void DestroyStandardPackets() { mPacket[Encoding.decodeB64("CN")] = null; mPacket[Encoding.decodeB64("_R")] = null; mPacket[Encoding.decodeB64("RR")] = null; mPacket[Encoding.decodeB64("@F")] = null; mPacket[Encoding.decodeB64("CL")] = null; } internal void RegisterLoggedInPackets() { mPacket[Encoding.decodeB64("@q")] = new Packet(EndUser.ProcessPacketAGq); mPacket[Encoding.decodeB64("BA")] = new Packet(EndUser.ProcessPacketBA); mPacket[Encoding.decodeB64("@L")] = new Packet(EndUser.ProcessPacketAGL); mPacket[Encoding.decodeB64("@Z")] = new Packet(EndUser.ProcessPacketAGZ); mPacket[Encoding.decodeB64("@G")] = new Packet(EndUser.ProcessPacketAGG); mPacket[Encoding.decodeB64("@H")] = new Packet(EndUser.ProcessPacketAGH); mPacket[Encoding.decodeB64("B]")] = new Packet(EndUser.ProcessPacketBS9); mPacket[Encoding.decodeB64("Cd")] = new Packet(EndUser.ProcessPacketCd); mPacket[Encoding.decodeB64("Er")] = new Packet(EndUser.ProcessPacketEr); mPacket[Encoding.decodeB64("F^")] = new Packet(EndUser.ProcessPacketF893); mPacket[Encoding.decodeB64("F]")] = new Packet(EndUser.ProcessPacketF464); mPacket[Encoding.decodeB64(@"F\")] = new Packet(EndUser.ProcessPacketF873); mPacket[Encoding.decodeB64("@g")] = new Packet(EndUser.ProcessPacketAGg); mPacket[Encoding.decodeB64("@i")] = new Packet(EndUser.ProcessPacketAGi); mPacket[Encoding.decodeB64("@e")] = new Packet(EndUser.ProcessPacketAGe); mPacket[Encoding.decodeB64("@f")] = new Packet(EndUser.ProcessPacketAGf); mPacket[Encoding.decodeB64("@h")] = new Packet(EndUser.ProcessPacketAGh); mPacket[Encoding.decodeB64("@a")] = new Packet(EndUser.ProcessPacketAGa); mPacket[Encoding.decodeB64("@O")] = new Packet(EndUser.ProcessPacketAGO); mPacket[Encoding.decodeB64("DF")] = new Packet(EndUser.ProcessPacketDF); mPacket[Encoding.decodeB64("@b")] = new Packet(EndUser.ProcessPacketAGb); mPacket[Encoding.decodeB64("BV")] = new Packet(EndUser.ProcessPacketBV); mPacket[Encoding.decodeB64("BW")] = new Packet(EndUser.ProcessPacketBW); mPacket[Encoding.decodeB64("DH")] = new Packet(EndUser.ProcessPacketDH); mPacket[Encoding.decodeB64("@P")] = new Packet(EndUser.ProcessPacketAGP); mPacket[Encoding.decodeB64("@Q")] = new Packet(EndUser.ProcessPacketAGQ); mPacket[Encoding.decodeB64("@U")] = new Packet(EndUser.ProcessPacketAGU); mPacket[Encoding.decodeB64("@R")] = new Packet(EndUser.ProcessPacketAGR); mPacket[Encoding.decodeB64("@S")] = new Packet(EndUser.ProcessPacketAGS); mPacket[Encoding.decodeB64("@T")] = new Packet(EndUser.ProcessPacketAGT); mPacket[Encoding.decodeB64("EA")] = new Packet(EndUser.ProcessPacketEA); mPacket[Encoding.decodeB64("EY")] = new Packet(EndUser.ProcessPacketEY); mPacket[Encoding.decodeB64("D~")] = new Packet(EndUser.ProcessPacketDCA); mPacket[Encoding.decodeB64("D}")] = new Packet(EndUser.ProcessPacketDBL21); mPacket[Encoding.decodeB64("E^")] = new Packet(EndUser.ProcessPacketEUT); mPacket[Encoding.decodeB64("EZ")] = new Packet(EndUser.ProcessPacketEZ); mPacket[Encoding.decodeB64(@"E/")] = new Packet(EndUser.ProcessPacketESL); mPacket[Encoding.decodeB64("E[")] = new Packet(EndUser.ProcessPacketEPAR); mPacket[Encoding.decodeB64("@]")] = new Packet(EndUser.ProcessPacketAGPAR); mPacket[Encoding.decodeB64("@Y")] = new Packet(EndUser.ProcessPacketAGY); mPacket[Encoding.decodeB64("@X")] = new Packet(EndUser.ProcessPacketAGX); mPacket[Encoding.decodeB64("BX")] = new Packet(EndUser.ProcessPacketBX); mPacket[Encoding.decodeB64("BY")] = new Packet(EndUser.ProcessPacketBY); mPacket[Encoding.decodeB64("@W")] = new Packet(EndUser.ProcessPacketAGW); mPacket[Encoding.decodeB64("BZ")] = new Packet(EndUser.ProcessPacketBZ); mPacket[Encoding.decodeB64("@u")] = new Packet(EndUser.ProcessPacketAGu); mPacket[Encoding.decodeB64("Bv")] = new Packet(EndUser.ProcessPacketBv); mPacket[Encoding.decodeB64("@B")] = new Packet(EndUser.ProcessPacketAGB); mPacket[Encoding.decodeB64("@v")] = new Packet(EndUser.ProcessPacketAGv); mPacket[Encoding.decodeB64("@y")] = new Packet(EndUser.ProcessPacketAGy); mPacket[Encoding.decodeB64("Ab")] = new Packet(EndUser.ProcessPacketAb); mPacket[Encoding.decodeB64("@{")] = new Packet(EndUser.ProcessPacketAGBL); mPacket[Encoding.decodeB64("A~")] = new Packet(EndUser.ProcessPacketACA); mPacket[Encoding.decodeB64("@|")] = new Packet(EndUser.ProcessPacketAG0); mPacket[Encoding.decodeB64("@}")] = new Packet(EndUser.ProcessPacketAGBL2); mPacket[Encoding.decodeB64("@~")] = new Packet(EndUser.ProcessPacketAGCA); mPacket[Encoding.decodeB64("@")] = new Packet(EndUser.ProcessPacketAGWTF); mPacket[Encoding.decodeB64("A@")] = new Packet(EndUser.ProcessPacketAAG); mPacket[Encoding.decodeB64("CH")] = new Packet(EndUser.ProcessPacketCH); mPacket[Encoding.decodeB64("Cm")] = new Packet(EndUser.ProcessPacketCm); mPacket[Encoding.decodeB64("Cn")] = new Packet(EndUser.ProcessPacketCn); mPacket[Encoding.decodeB64("AV")] = new Packet(EndUser.ProcessPacketAV); mPacket[Encoding.decodeB64("CG")] = new Packet(EndUser.ProcessPacketCG); mPacket[Encoding.decodeB64("CF")] = new Packet(EndUser.ProcessPacketCF); mPacket[Encoding.decodeB64("@p")] = new Packet(EndUser.ProcessPacketAGp); mPacket[Encoding.decodeB64("EC")] = new Packet(EndUser.ProcessPacketEC); mPacket[Encoding.decodeB64("AO")] = new Packet(EndUser.ProcessPacketAO); mPacket[Encoding.decodeB64("AK")] = new Packet(EndUser.ProcessPacketAK); mPacket[Encoding.decodeB64("As")] = new Packet(EndUser.ProcessPacketAs); mPacket[Encoding.decodeB64("At")] = new Packet(EndUser.ProcessPacketAt); mPacket[Encoding.decodeB64("B^")] = new Packet(EndUser.ProcessPacketBUL); mPacket[Encoding.decodeB64("DG")] = new Packet(EndUser.ProcessPacketDG); mPacket[Encoding.decodeB64("Cg")] = new Packet(EndUser.ProcessPacketCg); mPacket[Encoding.decodeB64("A^")] = new Packet(EndUser.ProcessPacketAUL); mPacket[Encoding.decodeB64("A]")] = new Packet(EndUser.ProcessPacketAPAR); mPacket[Encoding.decodeB64("AP")] = new Packet(EndUser.ProcessPacketAP); mPacket[Encoding.decodeB64("Ah")] = new Packet(EndUser.ProcessPacketAh); mPacket[Encoding.decodeB64("@t")] = new Packet(EndUser.ProcessPacketAGw); mPacket[Encoding.decodeB64("@w")] = new Packet(EndUser.ProcessPacketAGw); mPacket[Encoding.decodeB64("@x")] = new Packet(EndUser.ProcessPacketAGx); mPacket[Encoding.decodeB64("D{")] = new Packet(EndUser.ProcessPacketDBL); mPacket[Encoding.decodeB64("A`")] = new Packet(EndUser.ProcessPacketATNG); mPacket[Encoding.decodeB64("Aa")] = new Packet(EndUser.ProcessPacketAa); mPacket[Encoding.decodeB64("A_")] = new Packet(EndUser.ProcessPacketA_); mPacket[Encoding.decodeB64("E@")] = new Packet(EndUser.ProcessPacketEAT); mPacket[Encoding.decodeB64("DE")] = new Packet(EndUser.ProcessPacketDE); mPacket[Encoding.decodeB64("Ae")] = new Packet(EndUser.ProcessPacketAe); mPacket[Encoding.decodeB64("Af")] = new Packet(EndUser.ProcessPacketAf); mPacket[Encoding.decodeB64("Ad")] = new Packet(EndUser.ProcessPacketAd); mPacket[Encoding.decodeB64("AA")] = new Packet(EndUser.ProcessPacketAA); mPacket[Encoding.decodeB64("LB")] = new Packet(EndUser.ProcessPacketLB); mPacket[Encoding.decodeB64("AB")] = new Packet(EndUser.ProcessPacketAB); mPacket[Encoding.decodeB64("AZ")] = new Packet(EndUser.ProcessPacketAZ); mPacket[Encoding.decodeB64("AC")] = new Packet(EndUser.ProcessPacketAC); mPacket[Encoding.decodeB64("AI")] = new Packet(EndUser.ProcessPacketAI); mPacket[Encoding.decodeB64("FH")] = new Packet(EndUser.ProcessPacketFH); mPacket[Encoding.decodeB64("AN")] = new Packet(EndUser.ProcessPacketAN); mPacket[Encoding.decodeB64("Bw")] = new Packet(EndUser.ProcessPacketBw); mPacket[Encoding.decodeB64("AM")] = new Packet(EndUser.ProcessPacketAM); mPacket[Encoding.decodeB64("AL")] = new Packet(EndUser.ProcessPacketAL); mPacket[Encoding.decodeB64("Cw")] = new Packet(EndUser.ProcessPacketCw); mPacket[Encoding.decodeB64("Dz")] = new Packet(EndUser.ProcessPacketDz); mPacket[Encoding.decodeB64("AS")] = new Packet(EndUser.ProcessPacketAS); mPacket[Encoding.decodeB64("AT")] = new Packet(EndUser.ProcessPacketAT); mPacket[Encoding.decodeB64("AU")] = new Packet(EndUser.ProcessPacketAU); mPacket[Encoding.decodeB64("Ct")] = new Packet(EndUser.ProcessPacketCt); mPacket[Encoding.decodeB64("Cu")] = new Packet(EndUser.ProcessPacketCu); mPacket[Encoding.decodeB64("C]")] = new Packet(EndUser.ProcessPacketCPAR); mPacket[Encoding.decodeB64("Cs")] = new Packet(EndUser.ProcessPacketCs); mPacket[Encoding.decodeB64("C~")] = new Packet(EndUser.ProcessPacketCCA); mPacket[Encoding.decodeB64("Cx")] = new Packet(EndUser.ProcessPacketCx); mPacket[Encoding.decodeB64("Co")] = new Packet(EndUser.ProcessPacketCo); mPacket[Encoding.decodeB64("C[")] = new Packet(EndUser.ProcessPacketCPAR21); mPacket[Encoding.decodeB64(@"C\")] = new Packet(EndUser.ProcessPacketCSL); mPacket[Encoding.decodeB64("Cp")] = new Packet(EndUser.ProcessPacketCp); mPacket[Encoding.decodeB64("Cq")] = new Packet(EndUser.ProcessPacketCq); mPacket[Encoding.decodeB64("Cr")] = new Packet(EndUser.ProcessPacketCr); mPacket[Encoding.decodeB64("AG")] = new Packet(EndUser.ProcessPacketAG); mPacket[Encoding.decodeB64("AH")] = new Packet(EndUser.ProcessPacketAH); mPacket[Encoding.decodeB64("AD")] = new Packet(EndUser.ProcessPacketAD); mPacket[Encoding.decodeB64("AE")] = new Packet(EndUser.ProcessPacketAE); mPacket[Encoding.decodeB64("AF")] = new Packet(EndUser.ProcessPacketAF); mPacket[Encoding.decodeB64("B_")] = new Packet(EndUser.ProcessPacketB__); mPacket[Encoding.decodeB64("EW")] = new Packet(EndUser.ProcessPacketEW); mPacket[Encoding.decodeB64("EU")] = new Packet(EndUser.ProcessPacketEU); mPacket[Encoding.decodeB64("EV")] = new Packet(EndUser.ProcessPacketEV); mPacket[Encoding.decodeB64("AW")] = new Packet(EndUser.ProcessPacketAW); mPacket[Encoding.decodeB64("Aj")] = new Packet(EndUser.ProcessPacketAj); mPacket[Encoding.decodeB64("Ak")] = new Packet(EndUser.ProcessPacketAk); mPacket[Encoding.decodeB64("Eu")] = new Packet(EndUser.ProcessPacketEu); mPacket[Encoding.decodeB64("Ev")] = new Packet(EndUser.ProcessPacketEv); mPacket[Encoding.decodeB64("Et")] = new Packet(EndUser.ProcessPacketEt); mPacket[Encoding.decodeB64("@o")] = new Packet(EndUser.ProcessPacketApeo); mPacket[Encoding.decodeB64("D")] = new Packet(EndUser.ProcessPacketDThingy); mPacket[Encoding.decodeB64("EB")] = new Packet(EndUser.ProcessPacketEB); mPacket[Encoding.decodeB64("FI")] = new Packet(EndUser.ProcessPacketFI); mPacket[Encoding.decodeB64("Ch")] = new Packet(EndUser.ProcessPacketFI); mPacket[Encoding.decodeB64("FS")] = new Packet(EndUser.ProcessPacketFS); mPacket[Encoding.decodeB64("FR")] = new Packet(EndUser.ProcessPacketFR); mPacket[Encoding.decodeB64("Es")] = new Packet(EndUser.ProcessPacketEs); mPacket[Encoding.decodeB64("Aq")] = new Packet(EndUser.ProcessPacketAq); mPacket[Encoding.decodeB64("Ao")] = new Packet(EndUser.ProcessPacketAo); mPacket[Encoding.decodeB64("Cl")] = new Packet(EndUser.ProcessPacketCl); mPacket[Encoding.decodeB64("Cj")] = new Packet(EndUser.ProcessPacketCj); mPacket[Encoding.decodeB64("Ch")] = new Packet(EndUser.ProcessPacketCh); #region Pets this.mPacket[Encoding.decodeB64("@j")] = new Packet(this.EndUser.ProcessPacketApeJ); this.mPacket[Encoding.decodeB64("nx")] = new Packet(this.EndUser.ProcessPacketnx); this.mPacket[Encoding.decodeB64("nz")] = new Packet(this.EndUser.ProcessPacketnz); this.mPacket[Encoding.decodeB64("ny")] = new Packet(this.EndUser.ProcessPacketny); this.mPacket[Encoding.decodeB64("B@")] = new Packet(this.EndUser.ProcessPacketBAG); #endregion } #endregion } }