using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Blizzard { #region New Encryption class CryptoServerMessage { StringBuilder constructor; StringBuilder packet; public int CurrentHeader = 0; int CurrentLenght; // [0][0][0]Q[1][1][0][0][0][9][0][0][0][0][0][0][0][0][0][0][0][1][1][0][0][0][3][0][0][0][0][2][0][0][0][0][4][1][0][0][0][5][0][10]dd-MM-yyyy[0][0][0][7][0][0][0][0][8][0][15]http://hotel-us[0][0][0][9][0] public CryptoServerMessage(int[] Constructor) { packet = new StringBuilder(); constructor = new StringBuilder(); foreach (int i in Constructor) { constructor.Append((char)i); } } public CryptoServerMessage() { int[] Constructor = new int[] { 0, 0, 0 }; constructor = new StringBuilder(); packet = new StringBuilder(); foreach (int i in Constructor) { constructor.Append((char)i); } } public void inputHeader(int Header, int lenght) { CurrentLenght = lenght; CurrentHeader = Header; inputInt(Header); } public void inputInt(int input) { packet.Append((char)input); } public void inputLoop(int input, int times) { for (int i = 0; i < times; i++) { inputInt(input); } } public void makeBreaker() { inputLoop(255, 4); } public void inputCompleteString(object o) { packet.Append(o.ToString()); } public void inputString(object o, int zeros) { inputInt(o.ToString().Length); packet.Append(o.ToString()); inputLoop(0, zeros); } public override string ToString() { string result = ""; result += constructor.ToString(); result += (char)CurrentLenght; result += packet.ToString(); return result; } } #endregion #region Add Normal Packets public class ServerMessage { private StringBuilder Packet = new StringBuilder(); // Header internal ServerMessage(string P) { Packet.Append(P); } internal ServerMessage(int P) { Packet.Append(HabboEncode.encodeB64(P, 2)); } // Add Content internal void AddAnything(object o) { Packet.Append(o); } internal void AddLine(object o) { Packet.AppendLine(o.ToString()); // add o + char 13 ("\r\n") } internal void AppendLine(object o) { Packet.Append(o.ToString() + Convert.ToChar(13)); // add o + char 13 ("\r\n") } internal void AddBreak() { Packet.Append(Convert.ToChar(2)); } internal void AddDouble(double d) { Packet.Append(d); } internal void AddString(string s) { Packet.Append(s); } internal void AddStringWithBreak(string s) { Packet.Append(s + Convert.ToChar(2)); } internal void AddStringWithChar(string s, int c) { Packet.Append(s + Convert.ToChar(c)); } internal void AddChar(int c) { Packet.Append(Convert.ToChar(c)); } internal void AddInt(int i) { Packet.Append(HabboEncode.encodeVL64(i)); } internal void AddNormalInt(int i) { Packet.Append(i); // uint? } internal void AddUInt(uint i) { Packet.Append(i); } internal void AddBoolean(bool b) { if (b) { Packet.Append(HabboEncode.encodeVL64(1)); } else { Packet.Append(HabboEncode.encodeVL64(0)); } } internal void AddBase64(string o) { try { Packet.Append(HabboEncode.encodeB64(o)); } catch { } } internal void AddDecodeBase64(string o) { try { Packet.Append(HabboEncode.decodeB64(o)); } catch { } } internal void AddWired(object o) { try { Packet.Append(HabboEncode.encodeVL64(int.Parse(Convert.ToString(o)))); } catch { } } internal void AddMessage(ServerMessage Message) { Packet.Append(Message.ToString()); } public override string ToString() { return Packet.ToString(); } } #endregion #region Add a lot of Packets public class BuildMessage { internal StringBuilder AddPackets = new StringBuilder(); internal void AddPacket(ServerMessage Message) { AddPackets.Append(Message.ToString() + Convert.ToChar(1)); } internal void AddPacket(string message) { AddPackets.Append(message + Convert.ToChar(1)); } internal void AddBuilder(BuildMessage oB) { AddPackets.Append(oB.ToString()); } public override string ToString() { return AddPackets.ToString(); } } #endregion }