using System; using System.Collections.Generic; using System.Linq; using System.Text; using Blizzard.HabboHotel.Users; using Blizzard.HabboHotel.Rooms; using Blizzard.HabboHotel.Catalog; using Blizzard.HabboHotel.Music; namespace Blizzard.Connections { partial class RequestMessages { internal delegate void RequestPackets(); internal RequestPackets[] RequestPacket; private int ConnectionId; private Habbo RHabbo; private HabboConsole RConsole; private Navigator RNavigator; private Catalog RCatalog; private Room RRoom; private JukeBox RJukeBox; internal RequestMessages(int ActualGame) { this.ConnectionId = ActualGame; RequestPacket = new RequestPackets[99999]; // Get All } internal void GetClasses(Habbo ActualHabbo) { this.RHabbo = ActualHabbo; this.RConsole = new HabboConsole(ActualHabbo); this.RNavigator = new Navigator(ActualHabbo); this.RCatalog = new Catalog(ActualHabbo); this.RRoom = new Room(ActualHabbo); this.RJukeBox = new JukeBox(ActualHabbo); RHabbo.LastConnect = DateTime.Now; this.DefineUsers(); this.DefineCatalog(); this.DefineRooms(); } internal void ProcessPackets(string Packet) { ClientMessage Mess = new ClientMessage(Packet); BlizzardSystem.WriteServerLines("[" + RHabbo.GameId + "] REQUESTED: " + Packet); try { RHabbo.LastConnect = DateTime.Now; string[] ParchedPackets = { "F_", "FG", "@]" }; if (RHabbo.ActualPacket != "" && Packet.Substring(0, 2) == RHabbo.ActualPacket.Substring(0, 2)) { string PacketToBlock = Packet.Substring(0, 2); if (ParchedPackets.Contains(PacketToBlock)) { RHabbo.DisconnectMe(); return; } } if (RequestPacket[HabboEncode.decodeB64(Packet.Substring(0, 2))] == null) { BlizzardSystem.WriteServerLine(" [UNREGISTERED!]"); //Console.WriteLine("¡Packete sin catalogar registrado!"); // This packet are so strange form me D: /* if (Client.Packets.ContainsKey(Packet.Substring(0, 2))) { string sPacket = Client.Packets[Packet.Substring(0, 2)]; string Content = sPacket.Substring(2); Content = Content.Replace("%id%", RHabbo.Id.ToString()); Content = Content.Replace("%name%", RHabbo.UserName); Content = Content.Replace("{2}", Convert.ToChar(2).ToString()); ServerMessage Message = new ServerMessage(sPacket.Substring(0, 2)); Message.AddString(Content); RHabbo.SendMessage(Message); }*/ } else { // Is valid packet, GOOD! BlizzardSystem.WriteServerLine(""); RHabbo.ActualClientMessage = Mess; RHabbo.ActualPacket = Packet; // Give the ActualPacket string to the user, ¡sso rules! RequestPacket[HabboEncode.decodeB64(Packet.Substring(0, 2))].Invoke(); // Invoke this now! } } catch (Exception e) { BlizzardSystem.WriteLine("iEmulator ha encontrado un error en el código: " + e.ToString()); } } } }