namespace Holo.Virtual.Users { using Holo; using Holo.Managers; using Holo.Socketservers; using Holo.Source.Managers; using Holo.Virtual.Rooms; using Holo.Virtual.Rooms.Games; using Holo.Virtual.Rooms.Items; using Holo.Virtual.Rooms.Pathfinding; using Holo.Virtual.Users.Items; using Holo.Virtual.Users.Messenger; using Ion.Storage; using System; using System.Collections; using System.Collections.Generic; using System.Data; using System.Globalization; using System.Net.Sockets; using System.Runtime.CompilerServices; using System.Text; using System.Threading; public class virtualUser { internal List _Badges = new List(); internal List _badgeSlotIDs = new List(); internal bool _clubMember; internal string _consoleMission; internal int _Credits; internal string _Figure; internal List _fuserights; internal int _groupID; internal int _groupMemberRank; private int _handPage; internal bool _hasRights; internal bool _hostsEvent; internal bool _inPublicroom; private bool _isDisconnected; public bool _isLoggedIn; internal bool _isMuted; internal bool _isOwner; internal string _Mission; internal byte _Rank; private bool _receivedSpriteIndex; internal bool _ROOMACCESS_PRIMARY_OK; internal bool _ROOMACCESS_SECONDARY_OK; internal int _roomID; internal char _Sex; internal int _teleporterID; internal int _Tickets; internal bool _tradeAccept; internal List _tradeItems = new List(); internal int _tradePartnerRoomUID = -1; internal int _tradePartnerUID = -1; internal string _Username; private Thread brbLooper; private int connectionID; private Socket connectionSocket; private byte[] dataBuffer = new byte[0x400]; internal Holo.Virtual.Rooms.Games.gamePlayer gamePlayer; internal virtualMessenger Messenger; internal bool pingOK; internal virtualRoom Room; internal virtualRoomUser roomUser; private virtualSongEditor songEditor; internal virtualRoomUserStatusManager statusManager; internal int userID; public virtualUser(int connectionID, Socket connectionSocket) { this.connectionID = connectionID; this.connectionSocket = connectionSocket; try { string str = userManager.getBanReason(this.connectionRemoteIP); if (str != "") { this.sendData("@c" + str); this.Disconnect(); } else { this.pingOK = true; this.sendData("@@"); connectionSocket.BeginReceive(this.dataBuffer, 0, this.dataBuffer.Length, SocketFlags.None, new AsyncCallback(this.dataArrival), null); } } catch { } } internal void abortTrade() { if (((this.Room != null) && this.Room.containsUser(this._tradePartnerRoomUID)) && (this.roomUser != null)) { virtualUser user = this.Room.getUser(this._tradePartnerRoomUID); this.sendData("An"); this.refreshHand("update"); user.sendData("An"); user.refreshHand("update"); this._tradePartnerRoomUID = -1; this._tradeAccept = false; this._tradeItems.Clear(); this.statusManager.removeStatus("trd"); this.roomUser.Refresh(); user._tradePartnerRoomUID = -1; user._tradeAccept = false; user._tradeItems.Clear(); user.statusManager.removeStatus("trd"); user.roomUser.Refresh(); } } private void dataArrival(IAsyncResult iAr) { try { int count = 0; try { count = this.connectionSocket.EndReceive(iAr); } catch { } string str = Encoding.Default.GetString(this.dataBuffer, 0, count); if ((((str == "") || str.Contains("\x0001")) || (str.Contains("\x0002") || str.Contains("\x0005"))) || str.Contains("\t")) { this.Disconnect(); } else { while (str != "") { int length = Encoding.decodeB64(str.Substring(1, 2)); this.processPacket(str.Substring(3, length)); str = str.Substring(length + 3); } try { this.connectionSocket.BeginReceive(this.dataBuffer, 0, this.dataBuffer.Length, SocketFlags.None, new AsyncCallback(this.dataArrival), null); } catch { this.Disconnect(); } } } catch (Exception exception) { Out.WriteDCError(exception.ToString()); this.sendData("BK Error! - Please contact Player Support."); this.Disconnect(0x3e8); } } private void delDisconnectTimed(int ms) { try { this.connectionSocket.Shutdown(SocketShutdown.Both); } catch { } Thread.Sleep(ms); this.Disconnect(); } internal void Disconnect() { if (!this._isDisconnected) { try { this.connectionSocket.Close(); } catch { } this.connectionSocket = null; if ((this.Room != null) && (this.roomUser != null)) { this.Room.removeUser(this.roomUser.roomUID, false, ""); } if (this.Messenger != null) { this.Messenger.Clear(); } userManager.removeUser(this.userID); gameSocketServer.freeConnection(this.connectionID); this._isDisconnected = true; } } internal void Disconnect(int ms) { new timedDisconnector(this.delDisconnectTimed).BeginInvoke(ms, null, null); } private bool isSpeechCommand(string Text) { string[] s = Text.Split(new char[] { ' ' }); try { DatabaseClient client; virtualUser user; string str; DataRow row; int num; string str2; int num2; int num3; switch (s[0].ToLower()) { case "informazioni": this.sendData("BKGoldX Server Emulator by vinnythebest \rRelase v26-27. Source by Live\rIl Mondo di Habbo Hotel perfetto lo offriamo noi! \r\r"); goto Label_128D; case "puliscimano": using (client = Eucalypt.dbManager.GetClient()) { client.runQuery("DELETE FROM furniture WHERE ownerid = '" + this.userID + "' AND roomid = '0'"); } this.refreshHand("update"); goto Label_128D; case "brb": if (this.brbLooper == null) { ThreadStart start = new ThreadStart(this.showBrb); this.brbLooper = new Thread(start); this.brbLooper.Priority = ThreadPriority.Lowest; this.brbLooper.Start(); } goto Label_128D; case "back": if (this.brbLooper != null) { this.brbLooper.Abort(); this.brbLooper = null; this.Room.sendShout(this.roomUser, "\n\n\n I'm back!\n\n\n "); } goto Label_128D; case "comandi": if (rankManager.containsRight(this._Rank, "fuse_administrator_access", this.userID)) { break; } return false; case "comandimod": if (rankManager.containsRight(this._Rank, "fuse_moderator_access", this.userID)) { goto Label_03CD; } return false; case "lista": this.sendData("BKCiao caro utente. Benvenuto nella lista dei comandi pubblici di questo Hotel !\rLista comandi , i comandi che potete usare voi utenti ;) !\r:dettagli (Serve per vedere tutti i dettagli del server)\r:informazioni (Serve per vedere le info del server in uso)\r:puliscimano (Serve per eliminare tutti i furni nella mano)\r"); goto Label_128D; case "personeonline": this.sendData(userManager.generateWhosOnline(rankManager.containsRight(this._Rank, "fuse_administrator_access", this.userID))); goto Label_128D; case "dettagli": this.sendData("BKInformazioni GoldX Server Emulator! \rOra corrente: " + DateTime.Now.ToString() + " (GMT)\r\r\rServer: GoldX Server Emulator !\rVersione: v26-27 Beta Version 2009/2010\rRevisione in hotel: v26 \rCreatore Server: vinnythebest! \r"); goto Label_128D; case "staff": this.sendData("BKIf you need to contact the Hotel Staff Please use the Call for help"); goto Label_128D; case "messaggio": if (rankManager.containsRight(this._Rank, "fuse_alert", this.userID)) { goto Label_047E; } return false; case "messaggiostanza": if (rankManager.containsRight(this._Rank, "fuse_room_alert", this.userID)) { goto Label_0514; } return false; case "caccia": if (rankManager.containsRight(this._Rank, "fuse_kick", this.userID)) { goto Label_0590; } return false; case "cacciastanza": if (rankManager.containsRight(this._Rank, "fuse_room_kick", this.userID)) { goto Label_066D; } return false; case "muta": if (rankManager.containsRight(this._Rank, "fuse_mute", this.userID)) { goto Label_06F4; } return false; case "parla": if (rankManager.containsRight(this._Rank, "fuse_mute", this.userID)) { goto Label_07D0; } return false; case "mutastanza": if (rankManager.containsRight(this._Rank, "fuse_room_mute", this.userID)) { goto Label_08A2; } return false; case "parlastanza": if (rankManager.containsRight(this._Rank, "fuse_room_mute", this.userID)) { goto Label_0929; } return false; case "ban": if (rankManager.containsRight(this._Rank, "fuse_ban", this.userID)) { goto Label_09A8; } return false; case "superban": if (rankManager.containsRight(this._Rank, "fuse_superban", this.userID)) { goto Label_0B6A; } return false; case "ha": case "hw": case "hotelalert": if (rankManager.containsRight(this._Rank, "fuse_administrator_access", this.userID)) { goto Label_0D21; } return false; case "chiudihotel": if (rankManager.containsRight(this._Rank, "fuse_administrator_access", this.userID)) { goto Label_0D91; } return false; case "ra": if (rankManager.containsRight(this._Rank, "fuse_alert", this.userID)) { goto Label_0E06; } return false; case "teletrasporto": if (rankManager.containsRight(this._Rank, "fuse_administrator_access", this.userID)) { goto Label_0E81; } return false; case "warp": if (rankManager.containsRight(this._Rank, "fuse_administrator_access", this.userID)) { goto Label_0ED0; } return false; case "ui": case "infoutente": if (rankManager.containsRight(this._Rank, "fuse_moderator_access", this.userID)) { goto Label_0FD1; } return false; case "cords": if (rankManager.containsRight(this._Rank, "fuse_administrator_access", this.userID)) { goto Label_101F; } return false; case "sendme": if (rankManager.containsRight(this._Rank, "fuse_administrator_access", this.userID)) { goto Label_10B6; } return false; case "refresh": if (rankManager.containsRight(this._Rank, "fuse_administrator_access", this.userID)) { goto Label_10EE; } return false; default: return false; } this.sendData("BKComandi del server GoldX Server Emulator ! \r\r:messaggio (Serve per inviare un messaggio ad un utente)\r:messaggiostanza (Serve per inviare un messaggio a tutta la stanza)\r:caccia (Serve per cacciare un utente)\r:cacciastanza (Serve per cacciare tutti gli utenti di una stanza residenti)\r:muta (Serve per mutare un utente)\r:parla (Serve per far parlare un utente)\r:mutastanza (Serve per mutare tutti gli utenti di una stanza redisenti)\r:parlastanza (Serve per far parlare gli utenti di una stanza residenti)\r:ban (Serve per bannare un utente)\r:superban (Serve per bannare totalmente un utente)\r:ha (Serve per inviare un messaggio a tutto l'hotel)\r:ra (Serve per inviare un messaggio solo ai membri dello staff)\r:teletrasporto (Serve per teletrasportarsi)\r:personeonline (Serve per vedere le persone online)\r:dettagli (Serve per vedere tutti i dettagli del server)\r:puliscimano (Serve per eliminare tutti i furni dalla mano)\r:warp X Y\r:position \r:transfer (Serve per trasferire un utente) \r:refresh (Serve per riavviare tutto) \r:find \r:coins \r:chiudihotel (Serve per chiudere l'hotel)\r:infoutente (Serve per vedere tutte le informazioni di un utente)\r"); goto Label_128D; Label_03CD: this.sendData("BKComandi moderatori del server GoldX Server Emulator ! \r\r:messaggio (Serve per inviare un messaggio ad un utente)\r:messaggiostanza (Serve per inviare un messaggio a tutta la stanza)\r:caccia (Serve per cacciare un utente)\r:cacciastanza (Serve per cacciare tutti gli utenti di una stanza residenti)\r:muta (Serve per mutare un utente)\r:parla (Serve per far parlare un utente)\r:mutastanza (Serve per mutare tutti gli utenti di una stanza redisenti)\r:parlastanza (Serve per far parlare gli utenti di una stanza residenti)\r:ban (Serve per bannare un utente)\r:puliscimano (Serve per eliminare tutti i furni dalla mano)\r:superban (Serve per bannare totalmente un utente)\r"); goto Label_128D; Label_047E: user = userManager.getUser(s[1]); user.sendData("B!" + stringManager.wrapParameters(s, 2) + Convert.ToChar(2)); this.sendData("BK" + stringManager.getString("scommand_success")); staffManager.addStaffMessage("alert", this.userID, user.userID, s[2], ""); goto Label_128D; Label_0514: str = Text.Substring(10); this.Room.sendData("B!" + str + Convert.ToChar(2)); staffManager.addStaffMessage("ralert", this.userID, this.Room.roomID, str, ""); goto Label_128D; Label_0590: user = userManager.getUser(s[1]); if (user._Rank < this._Rank) { str = ""; if (s.Length > 2) { str = stringManager.wrapParameters(s, 2); } user.Room.removeUser(user.roomUser.roomUID, true, str); this.sendData("BK" + stringManager.getString("scommand_success")); staffManager.addStaffMessage("kick", this.userID, user.userID, str, ""); } else { this.sendData("BK" + stringManager.getString("scommand_failed")); } goto Label_128D; Label_066D: str = stringManager.wrapParameters(s, 1); this.Room.kickUsers(this._Rank, str); this.sendData("BK" + stringManager.getString("scommand_success")); staffManager.addStaffMessage("rkick", this.userID, this.Room.roomID, str, ""); goto Label_128D; Label_06F4: user = userManager.getUser(s[1]); if (!((user._Rank >= this._Rank) || user._isMuted)) { str = stringManager.wrapParameters(s, 2); user._isMuted = true; user.sendData("BK" + stringManager.getString("scommand_muted") + "\r" + str); this.sendData("BK" + stringManager.getString("scommand_success")); staffManager.addStaffMessage("mute", this.userID, user.userID, str, ""); } else { this.sendData("BK" + stringManager.getString("scommand_failed")); } goto Label_128D; Label_07D0: user = userManager.getUser(s[1]); if ((user._Rank < this._Rank) && user._isMuted) { user._isMuted = false; user.sendData("BK" + stringManager.getString("scommand_unmuted")); this.sendData("BK" + stringManager.getString("scommand_success")); staffManager.addStaffMessage("unmute", this.userID, user.userID, "", ""); } else { this.sendData("BK" + stringManager.getString("scommand_failed")); } goto Label_128D; Label_08A2: str = stringManager.wrapParameters(s, 1); this.Room.muteUsers(this._Rank, str); this.sendData("BK" + stringManager.getString("scommand_success")); staffManager.addStaffMessage("rmute", this.userID, this.Room.roomID, str, ""); goto Label_128D; Label_0929: this.Room.unmuteUsers(this._Rank); this.sendData("BK" + stringManager.getString("scommand_success")); staffManager.addStaffMessage("runmute", this.userID, this.Room.roomID, "", ""); goto Label_128D; Label_09A8: using (client = Eucalypt.dbManager.GetClient()) { client.AddParamWithValue("name", s[1]); row = client.getRow("SELECT id,rank FROM users WHERE name = @name"); } if (row.Table.Rows.Count == 0) { this.sendData("BK" + stringManager.getString("modtool_actionfailed") + "\r" + stringManager.getString("modtool_usernotfound")); } else if (Convert.ToByte(row["rank"]) > this._Rank) { this.sendData("BK" + stringManager.getString("modtool_actionfailed") + "\r" + stringManager.getString("modtool_rankerror")); } else { num = int.Parse(s[2]); str2 = stringManager.wrapParameters(s, 3); if ((num == 0) || (str2 == "")) { this.sendData("BK" + stringManager.getString("scommand_failed")); } else { staffManager.addStaffMessage("ban", this.userID, Convert.ToInt32(row["id"]), str2, ""); userManager.setBan(Convert.ToInt32(row["id"]), num, str2); this.sendData("BK" + userManager.generateBanReport(Convert.ToInt32(row["id"]))); } } goto Label_128D; Label_0B6A: using (client = Eucalypt.dbManager.GetClient()) { client.AddParamWithValue("name", s[1]); row = client.getRow("SELECT id,rank,ipaddress_last FROM users WHERE name = @name"); } if (row.Table.Rows.Count == 0) { this.sendData("BK" + stringManager.getString("modtool_actionfailed") + "\r" + stringManager.getString("modtool_usernotfound")); } else if (Convert.ToByte(row["rank"]) > this._Rank) { this.sendData("BK" + stringManager.getString("modtool_actionfailed") + "\r" + stringManager.getString("modtool_rankerror")); } else { num = int.Parse(s[2]); str2 = stringManager.wrapParameters(s, 3); if ((num == 0) || (str2 == "")) { this.sendData("BK" + stringManager.getString("scommand_failed")); } else { string iP = Convert.ToString(row["ipaddress_last"]); staffManager.addStaffMessage("superban", this.userID, Convert.ToInt32(row["id"]), str2, ""); userManager.setBan(iP, num, str2); this.sendData("BK" + userManager.generateBanReport(iP)); } } goto Label_128D; Label_0D21: str = Text.Substring(3); userManager.sendData("BK" + stringManager.getString("scommand_hotelalert") + "\r" + str); staffManager.addStaffMessage("halert", this.userID, 0, str, ""); goto Label_128D; Label_0D91: num2 = int.Parse(s[1]); userManager.sendData("Dc" + Encoding.encodeVL64(num2)); staffManager.addStaffMessage("offline", this.userID, 0, "mm=" + num2, ""); goto Label_128D; Label_0E06: str = Text.Substring(3); userManager.sendToRank(this._Rank, false, "BK" + stringManager.getString("scommand_rankalert") + "\r" + str); staffManager.addStaffMessage("rankalert", this.userID, this._Rank, str, ""); goto Label_128D; Label_0E81: this.roomUser.SPECIAL_TELEPORTABLE = !this.roomUser.SPECIAL_TELEPORTABLE; this.refreshAppearance(false, false, true); goto Label_128D; Label_0ED0: num3 = int.Parse(s[1]); int num4 = int.Parse(s[2]); int[] numArray = this.Room.getMapBorders(); if ((((num3 <= numArray[0]) && (num4 <= numArray[1])) && (num3 >= 0)) && (num4 >= 0)) { this.Room.sqUNIT[num3, num4] = true; this.Room.sqUNIT[this.roomUser.X, this.roomUser.Y] = false; this.roomUser.X = num3; this.roomUser.Y = num4; this.roomUser.goalX = -1; this.Room.Refresh(this.roomUser); this.refreshAppearance(false, false, true); } else { this.sendData("BKInvalid teleport"); } goto Label_128D; Label_0FD1: this.sendData("BK" + userManager.generateUserInfo(userManager.getUserID(s[1]), this._Rank)); goto Label_128D; Label_101F:; this.sendData(string.Concat(new object[] { "BKX: ", this.roomUser.X, "\rY: ", this.roomUser.Y, "\rH: ", this.roomUser.H })); goto Label_128D; Label_10B6: this.sendData(stringManager.wrapParameters(s, 1)); goto Label_128D; Label_10EE:; try { ThreadStart start2 = null; switch (s[1]) { case "catalogue": start2 = new ThreadStart(this.refresh_cat); break; case "strings": start2 = new ThreadStart(this.refresh_strings); break; case "config": start2 = new ThreadStart(this.refresh_config); break; case "filter": start2 = new ThreadStart(this.refresh_filter); break; case "fuse": start2 = new ThreadStart(this.refresh_fuse); break; case "eco": start2 = new ThreadStart(this.refresh_eco); break; default: this.sendData("BK" + stringManager.getString("scommand_failed")); return true; } Thread thread = new Thread(start2); thread.Priority = ThreadPriority.BelowNormal; thread.Start(); this.sendData("BK" + stringManager.getString("scommand_success")); } catch { this.sendData("BK:refresh catalogue\r:refresh eco\r:refresh strings\r:refresh config\r:refresh filter\r:refresh fuse\r"); } } catch { this.sendData("BK" + stringManager.getString("scommand_failed")); } Label_128D: return true; } internal void leaveGame() { if ((this.gamePlayer != null) && (this.gamePlayer.Game != null)) { if (this.gamePlayer.Game.Owner == this.gamePlayer) { try { this.gamePlayer.Game.Lobby.Games.Remove(this.gamePlayer.Game.ID); } catch { } this.gamePlayer.Game.Abort(); } else if (this.gamePlayer.teamID != -1) { this.gamePlayer.Game.movePlayer(this.gamePlayer, this.gamePlayer.teamID, -1); } else { this.gamePlayer.Game.Subviewers.Remove(this.gamePlayer); this.sendData("CmH"); } } this.gamePlayer = null; } private void processPacket(string currentPacket) { DatabaseClient client; DataRow current; DataColumn column; if (this._isLoggedIn) { int num4; int num7; int num9; int num12; string str8; int num13; string str9; int num16; string str10; DataTable table; StringBuilder builder3; StringBuilder builder5; string str12; int num20; int num23; int length; int num25; string str14; int num26; string[] strArray3; string str18; string str22; int num32; int num33; int num38; string str34; bool flag9; int num40; int num41; int num42; int num46; string str40; string str41; string str43; string str44; virtualUser user5; int num55; int num65; string str55; string[] strArray4; byte num67; string sprite; floorItem item3; int num76; wallItem item4; int num77; string str64; int num79; virtualUser user7; int num85; IEnumerator enumerator; string str69 = currentPacket.Substring(0, 2); switch (str69) { case "CD": this.pingOK = true; return; case "@q": this.sendData("Bc" + DateTime.Today.ToShortDateString()); return; case "BA": using (client = Eucalypt.dbManager.GetClient()) { client.AddParamWithValue("code", currentPacket.Substring(4)); if (client.findsResult("SELECT credits FROM vouchers WHERE voucher = @code")) { int num2 = client.getInt("SELECT credits FROM vouchers WHERE voucher = @code"); client.runQuery("DELETE FROM vouchers WHERE voucher = @code LIMIT 1"); this._Credits += num2; this.sendData("@F" + this._Credits); this.sendData("CT"); client.runQuery(string.Concat(new object[] { "UPDATE users SET credits = '", num2, "' WHERE id = '", this.userID, "' LIMIT 1" })); } else { this.sendData("CU1"); } } return; case "@L": this.Messenger = new virtualMessenger(this.userID); this.sendData("@L" + this.Messenger.friendList()); this.sendData("Dz" + this.Messenger.friendRequests()); return; case "@Z": this.refreshClub(); return; case "@G": this.refreshAppearance(false, true, false); return; case "@H": this.refreshValueables(true, true); return; case "B]": this.refreshBadges(); return; case "Cd": this.refreshGroupStatus(); return; case "C^": this.sendData("Do" + recyclerManager.setupString); return; case "C_": this.sendData("Dp" + recyclerManager.sessionString(this.userID)); return; case "@g": if (this.Messenger != null) { using (client = Eucalypt.dbManager.GetClient()) { client.AddParamWithValue("username", currentPacket.Substring(4)); int userID = client.getInt("SELECT id FROM users WHERE name = @username"); if (((userID > 0) && !this.Messenger.hasFriendRequests(userID)) && !this.Messenger.hasFriendship(userID)) { num4 = client.getInt("SELECT MAX(requestid) FROM messenger_friendrequests WHERE userid_to = '" + userID + "'") + 1; client.runQuery(string.Concat(new object[] { "INSERT INTO messenger_friendrequests(userid_to,userid_from,requestid) VALUES ('", userID, "','", this.userID, "','", num4, "')" })); if (userManager.getUser(userID) != null) { userManager.getUser(userID).sendData(string.Concat(new object[] { "BDI", this._Username, Convert.ToChar(2), this.userID, Convert.ToChar(2) })); } } } } return; case "@i": { string[] strArray; string data = "Fs"; string str3 = ""; string str4 = ""; string str5 = ""; int i = 0; int num6 = 0; using (client = Eucalypt.dbManager.GetClient()) { string val = currentPacket.Substring(4).Replace(@"\", @"\").Replace("'", @"\'"); client.AddParamWithValue("search", val); strArray = dataHandling.dColToArray(client.getColumn("SELECT id FROM users WHERE name LIKE '" + val + "%' LIMIT 20 ")); } for (num7 = 0; num7 < strArray.Length; num7++) { DataRow row3; int num8 = Convert.ToInt32(strArray[num7]); bool flag = userManager.containsUser(num8); string str7 = flag ? "I" : "H"; using (client = Eucalypt.dbManager.GetClient()) { row3 = client.getRow("SELECT name, mission, lastvisit, figure FROM users WHERE id = " + num8.ToString()); } str5 = string.Concat(new object[] { Encoding.encodeVL64(num8), row3[0], "\x0002", row3[1], "\x0002", str7, str7, "\x0002", str7, flag ? row3[3] : "", "\x0002", flag ? "" : row3[2], "\x0002" }); if (this.Messenger.hasFriendship(num8)) { i++; str3 = str3 + str5; } else { num6++; str4 = str4 + str5; } } str3 = Encoding.encodeVL64(i) + str3; str4 = Encoding.encodeVL64(num6) + str4; data = data + str3 + str4; this.sendData(data); return; } case "@e": if (this.Messenger != null) { num9 = Encoding.decodeVL64(currentPacket.Substring(2)); currentPacket = currentPacket.Substring(Encoding.encodeVL64(num9).Length + 2); int num10 = 0; StringBuilder builder = new StringBuilder(); virtualBuddy buddy = new virtualBuddy(this.userID); num7 = 0; while (num7 < num9) { int num11; if (currentPacket == "") { return; } num4 = Encoding.decodeVL64(currentPacket); using (client = Eucalypt.dbManager.GetClient()) { num11 = client.getInt(string.Concat(new object[] { "SELECT userid_from FROM messenger_friendrequests WHERE userid_to = '", this.userID, "' AND requestid = '", num4, "'" })); } if (num11 == 0) { return; } virtualBuddy buddy2 = new virtualBuddy(num11); builder.Append(buddy2.ToString(true)); num10++; this.Messenger.addBuddy(buddy2, false); if (userManager.containsUser(num11)) { userManager.getUser(num11).Messenger.addBuddy(buddy, true); } using (client = Eucalypt.dbManager.GetClient()) { client.runQuery(string.Concat(new object[] { "INSERT INTO messenger_friendships(userid,friendid) VALUES ('", num11, "','", this.userID, "')" })); client.runQuery(string.Concat(new object[] { "DELETE FROM messenger_friendrequests WHERE userid_to = '", this.userID, "' AND requestid = '", num4, "' LIMIT 1" })); } currentPacket = currentPacket.Substring(Encoding.encodeVL64(num4).Length); num7++; } if (num10 > 0) { this.sendData("@MHI" + Encoding.encodeVL64(num10) + builder.ToString()); } } return; case "@f": if (this.Messenger != null) { num9 = Encoding.decodeVL64(currentPacket.Substring(3)); currentPacket = currentPacket.Substring(Encoding.encodeVL64(num9).Length + 3); num7 = 0; while (num7 < num9) { if (currentPacket == "") { return; } num4 = Encoding.decodeVL64(currentPacket); using (client = Eucalypt.dbManager.GetClient()) { client.runQuery(string.Concat(new object[] { "DELETE FROM messenger_friendrequests WHERE userid_to = '", this.userID, "' AND requestid = '", num4, "' LIMIT 1" })); } currentPacket = currentPacket.Substring(Encoding.encodeVL64(num4).Length); num7++; } } return; case "@h": if (this.Messenger != null) { num12 = Encoding.decodeVL64(currentPacket.Substring(3)); this.Messenger.removeBuddy(num12); if (userManager.containsUser(num12)) { userManager.getUser(num12).Messenger.removeBuddy(this.userID); } using (client = Eucalypt.dbManager.GetClient()) { client.runQuery(string.Concat(new object[] { "DELETE FROM messenger_friendships WHERE (userid = '", this.userID, "' AND friendid = '", num12, "') OR (userid = '", num12, "' AND friendid = '", this.userID, "') LIMIT 1" })); } } return; case "@a": if (this.Messenger != null) { num12 = Encoding.decodeVL64(currentPacket.Substring(2)); str8 = stringManager.filterSwearwords(currentPacket.Substring(Encoding.encodeVL64(num12).Length + 4)); if (!this.Messenger.containsOnlineBuddy(num12)) { this.sendData("DE" + Encoding.encodeVL64(5) + Encoding.encodeVL64(this.userID)); return; } userManager.getUser(num12).sendData(string.Concat(new object[] { "BF", Encoding.encodeVL64(this.userID), str8, Convert.ToChar(2) })); } return; case "DF": if (this.Messenger != null) { num13 = Encoding.decodeVL64(currentPacket.Substring(2)); int num14 = -1; if (!this.Messenger.hasFriendship(num13)) { num14 = 0; } else if (!userManager.containsUser(num13)) { num14 = 1; } else { virtualUser user = userManager.getUser(num13); if (user._roomID <= 0) { num14 = 2; } else if (!user._inPublicroom) { this.sendData("D^H" + Encoding.encodeVL64(user._roomID)); } else { this.sendData("D^I" + Encoding.encodeVL64(user._roomID)); } } if (num14 != -1) { this.sendData("E]" + Encoding.encodeVL64(num14)); } } return; case "@b": try { if ((this.Messenger != null) && (this.roomUser != null)) { num9 = Encoding.decodeVL64(currentPacket.Substring(2)); int[] numArray = new int[num9]; currentPacket = currentPacket.Substring(Encoding.encodeVL64(num9).Length + 2); for (num7 = 0; num7 < num9; num7++) { if (currentPacket == "") { return; } num13 = Encoding.decodeVL64(currentPacket); if (this.Messenger.hasFriendship(num13) && userManager.containsUser(num13)) { numArray[num7] = num13; } currentPacket = currentPacket.Substring(Encoding.encodeVL64(num13).Length); } str8 = currentPacket.Substring(2); str9 = string.Concat(new object[] { "BG", Encoding.encodeVL64(this.userID), str8, Convert.ToChar(2) }); for (num7 = 0; num7 < num9; num7++) { if (userManager.containsUser(numArray[num7])) { userManager.getUser(numArray[num7]).sendData(str9); } } } } catch { this.sendData("BKSorry something went wrong during sending the invites."); } return; case "BV": { int num15 = Encoding.decodeVL64(currentPacket.Substring(2, 1)); num16 = Encoding.decodeVL64(currentPacket.Substring(3)); str10 = navigatorManager.getNameAcces(this._Rank, num16); if (!(str10 == "")) { int num17 = navigatorManager.getType(num16); int num18 = navigatorManager.getParent(num16); StringBuilder builder2 = new StringBuilder(string.Concat(new object[] { @"C\", Encoding.encodeVL64(num15), Encoding.encodeVL64(num16), Encoding.encodeVL64(num17), str10, Convert.ToChar(2), Encoding.encodeVL64(0), Encoding.encodeVL64(0x2710), Encoding.encodeVL64(num18) })); string str11 = ""; if (num17 == 0) { if (num15 == 1) { str11 = "AND visitors_now < visitors_max ORDER BY id ASC"; } else { str11 = "ORDER BY id ASC"; } } else if (num15 == 1) { str11 = "AND visitors_now < visitors_max ORDER BY visitors_now DESC LIMIT 30"; } else { str11 = "ORDER BY visitors_now DESC LIMIT " + Config.Navigator_openCategory_maxResults; } using (client = Eucalypt.dbManager.GetClient()) { table = client.getTable(string.Concat(new object[] { "SELECT id,state,showname,visitors_now,visitors_max,name,description,owner,ccts FROM rooms WHERE category = '", num16, "' ", str11 })); } if (num17 == 2) { builder2.Append(Encoding.encodeVL64(table.Rows.Count)); } bool flag2 = false; if (num17 != 0) { flag2 = rankManager.containsRight(this._Rank, "fuse_enter_locked_rooms", this.userID); } using (enumerator = table.Rows.GetEnumerator()) { while (enumerator.MoveNext()) { current = (DataRow) enumerator.Current; if (num17 == 0) { builder2.Append(string.Concat(new object[] { Encoding.encodeVL64(Convert.ToInt32(current["id"])), "I", Convert.ToString(current["name"]), Convert.ToChar(2), Encoding.encodeVL64(Convert.ToInt32(current["visitors_now"])), Encoding.encodeVL64(Convert.ToInt32(current["visitors_max"])), Encoding.encodeVL64(num16), Convert.ToString(current["description"]), Convert.ToChar(2), Encoding.encodeVL64(Convert.ToInt32(current["id"])), "H", Convert.ToString(current["ccts"]), Convert.ToChar(2), "HI" })); } else { if (!((Convert.ToInt32(current["showname"]) != 0) || flag2)) { continue; } builder2.Append(string.Concat(new object[] { Encoding.encodeVL64(Convert.ToInt32(current["id"])), Convert.ToString(current["name"]), Convert.ToChar(2), Convert.ToString(current["owner"]), Convert.ToChar(2), roomManager.getRoomState(Convert.ToInt32(current["state"])), Convert.ToChar(2), Encoding.encodeVL64(Convert.ToInt32(current["visitors_now"])), Encoding.encodeVL64(Convert.ToInt32(current["visitors_max"])), Convert.ToString(current["description"]), Convert.ToChar(2) })); } } } column = navigatorManager.getAccesParent(this._Rank, num16); if (column.Table.Rows.Count > 0) { builder3 = new StringBuilder(); List list = new List(); using (enumerator = column.Table.Rows.GetEnumerator()) { while (enumerator.MoveNext()) { current = (DataRow) enumerator.Current; builder3.Append(" OR category = '" + Convert.ToString(current[0]) + "'"); list.Add(Convert.ToInt32(current[0])); } } table = navigatorManager.getGuestroomQuery("SELECT SUM(visitors_now),SUM(visitors_max),category FROM rooms WHERE" + builder3.ToString().Substring(3) + " GROUP BY category", false); foreach (DataRow row in table.Rows) { if (((Convert.ToInt32(row[1]) <= 0) || (num15 != 1)) || (Convert.ToInt32(row[0]) < Convert.ToInt32(row[1]))) { builder2.Append(string.Concat(new object[] { Encoding.encodeVL64(Convert.ToInt32(row[2])), "H", navigatorManager.getName(Convert.ToInt32(row[2])), Convert.ToChar(2), Encoding.encodeVL64(Convert.ToInt32(row[0])), Encoding.encodeVL64(Convert.ToInt32(row[1])), Encoding.encodeVL64(num16) })); list.Remove(Convert.ToInt32(row[2])); } } foreach (int num19 in list) { builder2.Append(string.Concat(new object[] { Encoding.encodeVL64(num19), "H", navigatorManager.getName(num19), Convert.ToChar(2), "HH", Encoding.encodeVL64(num16) })); } } this.sendData(builder2.ToString()); return; } return; } case "BW": { StringBuilder builder4 = new StringBuilder(); using (client = Eucalypt.dbManager.GetClient()) { table = client.getTable("SELECT id,name FROM room_categories WHERE type = '2' AND parent > 0 AND access_rank_min <= " + this._Rank); } foreach (DataRow row in table.Rows) { builder4.Append(Encoding.encodeVL64(Convert.ToInt32(row["id"])) + row["name"] + Convert.ToChar(2)); } this.sendData("C]" + Encoding.encodeVL64(table.Rows.Count) + builder4.ToString()); return; } case "DH": this.sendData("E_" + Encoding.encodeVL64(3) + navigatorManager.getRandomRooms()); return; case "@P": using (client = Eucalypt.dbManager.GetClient()) { table = client.getTable("SELECT id,name,description,state,showname,visitors_now,visitors_max FROM rooms WHERE owner = '" + this._Username + "' ORDER BY id ASC"); } if (table.Rows.Count <= 0) { this.sendData("@y" + this._Username); return; } builder5 = new StringBuilder(); foreach (DataRow row in table.Rows) { builder5.Append(string.Concat(new object[] { Convert.ToString(row["id"]), "\t", Convert.ToString(row["name"]), Convert.ToChar(9), this._Username, Convert.ToChar(9), roomManager.getRoomState(Convert.ToInt32(row["state"])), Convert.ToChar(9), "x", Convert.ToChar(9), Convert.ToString(row["visitors_now"]), Convert.ToChar(9), Convert.ToString(row["visitors_max"]), Convert.ToChar(9), "null", Convert.ToChar(9), Convert.ToString(row["description"]), Convert.ToChar(9), Convert.ToString(row["description"]), Convert.ToChar(9), Convert.ToChar(13) })); } this.sendData("@P" + builder5.ToString()); return; case "@Q": { bool flag3 = rankManager.containsRight(this._Rank, "fuse_see_all_roomowners", this.userID); using (client = Eucalypt.dbManager.GetClient()) { client.AddParamWithValue("search", currentPacket.Substring(2)); client.AddParamWithValue("max", Config.Navigator_roomSearch_maxResults); table = client.getTable("SELECT id,name,owner,description,state,showname,visitors_now,visitors_max FROM rooms WHERE (owner = @search OR name LIKE '@search%') ORDER BY id ASC LIMIT @max"); } if (table.Rows.Count <= 0) { this.sendData("@z"); return; } builder5 = new StringBuilder(); foreach (DataRow row in table.Rows) { str12 = Convert.ToString(row["owner"]); if (!((!(Convert.ToString(row["showname"]) == "0") || !(Convert.ToString(row["owner"]) != this._Username)) || flag3)) { str12 = "-"; } builder5.Append(string.Concat(new object[] { Convert.ToString(row["id"]), Convert.ToChar(9), Convert.ToString(row["name"]), Convert.ToChar(9), Convert.ToString(row["owner"]), Convert.ToChar(9), roomManager.getRoomState(Convert.ToInt32(row["state"])), Convert.ToChar(9), "x", Convert.ToChar(9), Convert.ToString(row["visitors_now"]), Convert.ToChar(9), Convert.ToString(row["visitors_max"]), Convert.ToChar(9), "null", Convert.ToChar(9), Convert.ToString(row["description"]), Convert.ToChar(9), Convert.ToChar(13) })); } this.sendData("@w" + builder5.ToString()); return; } case "@U": num20 = int.Parse(currentPacket.Substring(2)); using (client = Eucalypt.dbManager.GetClient()) { current = client.getRow("SELECT name,owner,description,model,state,superusers,showname,category,visitors_now,visitors_max FROM rooms WHERE id = '" + num20 + "' AND NOT(owner IS NULL)"); } if (current.Table.Rows.Count > 0) { StringBuilder builder6 = new StringBuilder(Encoding.encodeVL64(Convert.ToInt32(current[5])) + Encoding.encodeVL64(Convert.ToInt32(current[4])) + Encoding.encodeVL64(num20)); if ((Convert.ToString(current[6]) == "0") && rankManager.containsRight(this._Rank, "fuse_see_all_roomowners", this.userID)) { builder6.Append("-"); } else { builder6.Append(Convert.ToString(current[1])); } builder6.Append(string.Concat(new object[] { Convert.ToChar(2), "model_", Convert.ToString(current[3]), Convert.ToChar(2), Convert.ToString(current[0]), Convert.ToChar(2), Convert.ToString(current[2]), Convert.ToChar(2), Encoding.encodeVL64(Convert.ToInt32(current[6])) })); using (client = Eucalypt.dbManager.GetClient()) { if (client.findsResult("SELECT id FROM room_categories WHERE id = '" + Convert.ToString(current[7]) + "' AND trading = '1'")) { builder6.Append("I"); } else { builder6.Append("H"); } } builder6.Append(Encoding.encodeVL64(Convert.ToInt32(current[8])) + Encoding.encodeVL64(Convert.ToInt32(current[9]))); this.sendData("@v" + builder6.ToString()); } return; case "@R": { using (client = Eucalypt.dbManager.GetClient()) { column = client.getColumn(string.Concat(new object[] { "SELECT roomid FROM users_favourites WHERE userid = '", this.userID, "' ORDER BY roomid DESC LIMIT ", Config.Navigator_Favourites_maxRooms })); } Hashtable hashtable = new Hashtable(column.Table.Rows.Count); string str13 = " "; using (enumerator = column.Table.Rows.GetEnumerator()) { while (enumerator.MoveNext()) { current = (DataRow) enumerator.Current; hashtable.Add(Convert.ToInt32(current["roomid"]), Convert.ToInt32(current["roomid"])); str13 = str13 + "id = '" + Convert.ToString(current["roomid"]) + "' OR "; } } str13 = str13.Substring(0, str13.Length - 4); if (str13.Length > 0) { int num21 = 0; bool flag4 = rankManager.containsRight(this._Rank, "fuse_enter_locked_rooms", this.userID); builder5 = new StringBuilder(); using (client = Eucalypt.dbManager.GetClient()) { table = client.getTable("SELECT name,owner,state,showname,visitors_now,visitors_max,description,category,ccts,id FROM rooms WHERE " + str13); } foreach (DataRow row in table.Rows) { hashtable.Remove(Convert.ToInt32(row["id"])); if (Convert.ToString(row[1]) == "") { builder5.Append(string.Concat(new object[] { Encoding.encodeVL64(Convert.ToInt32(row["id"])), "I", Convert.ToString(row[0]), Convert.ToChar(2), Encoding.encodeVL64(Convert.ToInt32(row[4])), Encoding.encodeVL64(Convert.ToInt32(row[5])), Encoding.encodeVL64(Convert.ToInt32(row[7])), Convert.ToString(row[6]), Convert.ToChar(2), Encoding.encodeVL64(Convert.ToInt32(row["id"])), "H", Convert.ToString(row[8]), Convert.ToChar(2), "HI" })); } else { str12 = Convert.ToString(row[0]); if (!((!(Convert.ToString(row[3]) == "0") || !(this._Username != Convert.ToString(row[1]))) || flag4)) { str12 = "-"; } builder5.Append(string.Concat(new object[] { Encoding.encodeVL64(Convert.ToInt32(row["id"])), str12, Convert.ToChar(2), Convert.ToString(row[1]), Convert.ToChar(2), roomManager.getRoomState(Convert.ToInt32(row[2])), Convert.ToChar(2), Encoding.encodeVL64(Convert.ToInt32(row[4])), Encoding.encodeVL64(Convert.ToInt32(row[5])), Convert.ToString(row[6]), Convert.ToChar(2) })); num21++; } } using (client = Eucalypt.dbManager.GetClient()) { foreach (int num22 in hashtable.Values) { client.runQuery("DELETE FROM users_favourites WHERE roomid = '" + num22 + "' LIMIT 1"); } } this.sendData(string.Concat(new object[] { "@}HHJ", Convert.ToChar(2), "HHH", Encoding.encodeVL64(num21 - hashtable.Count), builder5.ToString() })); } return; } case "@S": num20 = Encoding.decodeVL64(currentPacket.Substring(3)); using (client = Eucalypt.dbManager.GetClient()) { if (client.findsResult("SELECT id FROM rooms WHERE id = '" + num20 + "'") && !client.findsResult(string.Concat(new object[] { "SELECT userid FROM users_favourites WHERE userid = '", this.userID, "' AND roomid = '", num20, "'" }))) { if (client.getInt("SELECT COUNT(userid) FROM users_favourites WHERE userid = '" + this.userID + "'") < Config.Navigator_Favourites_maxRooms) { client.runQuery(string.Concat(new object[] { "INSERT INTO users_favourites (userid,roomid) VALUES ('", this.userID, "','", num20, "')" })); } else { this.sendData("@anav_error_toomanyfavrooms"); } } } return; case "@T": num20 = Encoding.decodeVL64(currentPacket.Substring(3)); using (client = Eucalypt.dbManager.GetClient()) { client.runQuery(string.Concat(new object[] { "DELETE FROM users_favourites WHERE userid = '", this.userID, "' AND roomid = '", num20, "' LIMIT 1" })); } return; case "EA": this.sendData("Ep" + Encoding.encodeVL64(eventManager.categoryAmount)); return; case "EY": if ((!this._inPublicroom && (this.roomUser != null)) && !this._hostsEvent) { this.sendData("EoI"); return; } this.sendData("EoH"); return; case "D{": num23 = Encoding.decodeVL64(currentPacket.Substring(2)); if (eventManager.categoryOK(num23)) { this.sendData("Eb" + Encoding.encodeVL64(num23)); } return; case "E^": num23 = Encoding.decodeVL64(currentPacket.Substring(2)); if ((num23 >= 1) && (num23 <= 11)) { this.sendData("Eq" + Encoding.encodeVL64(num23) + eventManager.getEvents(num23)); } return; case "EZ": if (((this._isOwner && !this._hostsEvent) && !this._inPublicroom) && (this.roomUser != null)) { num23 = Encoding.decodeVL64(currentPacket.Substring(2)); if (eventManager.categoryOK(num23)) { length = Encoding.encodeVL64(num23).Length; num25 = Encoding.decodeB64(currentPacket.Substring(length + 2, 2)); str10 = currentPacket.Substring(length + 4, num25); str14 = currentPacket.Substring((length + num25) + 6); this._hostsEvent = true; eventManager.createEvent(num23, this.userID, this._roomID, str10, str14); this.Room.sendData("Er" + eventManager.getEvent(this._roomID)); } } return; case @"E\": if (((this._hostsEvent && this._isOwner) && !this._inPublicroom) && (this.roomUser != null)) { num23 = Encoding.decodeVL64(currentPacket.Substring(2)); if (eventManager.categoryOK(num23)) { length = Encoding.encodeVL64(num23).Length; num25 = Encoding.decodeB64(currentPacket.Substring(length + 2, 2)); str10 = currentPacket.Substring(length + 4, num25); str14 = currentPacket.Substring((length + num25) + 6); eventManager.editEvent(num23, this._roomID, str10, str14); this.Room.sendData("Er" + eventManager.getEvent(this._roomID)); } } return; case "E[": if (((this._hostsEvent && this._isOwner) && !this._inPublicroom) && (this.roomUser != null)) { this._hostsEvent = false; eventManager.removeEvent(this._roomID); this.Room.sendData("Er-1"); } return; case "@]": using (client = Eucalypt.dbManager.GetClient()) { if (client.getInt("SELECT COUNT(id) FROM rooms WHERE owner = '" + this._Username + "'") < Config.Navigator_createRoom_maxRooms) { string[] strArray2 = currentPacket.Split(new char[] { '/' }); strArray2[2] = stringManager.filterSwearwords(strArray2[2]); strArray2[3] = strArray2[3].Substring(6, 1); strArray2[4] = roomManager.getRoomState(strArray2[4]).ToString(); if (!(strArray2[5] != "0") || !(strArray2[5] != "1")) { client.AddParamWithValue("rs2", strArray2[2]); client.AddParamWithValue("user", this._Username); client.AddParamWithValue("rs3", strArray2[3]); client.AddParamWithValue("rs4", strArray2[4]); client.AddParamWithValue("rs5", strArray2[5]); client.runQuery("INSERT INTO rooms (name, owner, model, state, showname) VALUES (@rs2,@user,@rs3,@rs4,@rs5)"); string str15 = client.getString("SELECT MAX(id) FROM rooms WHERE owner = @user"); this.sendData(string.Concat(new object[] { "@{", str15, Convert.ToChar(13), strArray2[2] })); } } else { this.sendData("@aError creating a private room"); } } return; case "@Y": { num20 = 0; if (!(currentPacket.Substring(2, 1) == "/")) { num20 = int.Parse(currentPacket.Substring(2).Split(new char[] { '/' })[0]); } else { num20 = int.Parse(currentPacket.Split(new char[] { '/' })[1]); } string str16 = "0"; num26 = 0x19; strArray3 = currentPacket.Split(new char[] { Convert.ToChar(13) }); string str17 = ""; str18 = ""; for (num7 = 1; num7 < strArray3.Length; num7++) { string str19 = strArray3[num7].Split(new char[] { '=' })[0]; string text = strArray3[num7].Substring(str19.Length + 1); str69 = str19; if (str69 == null) { return; } if (!(str69 == "description")) { if (str69 != "allsuperuser") { if (str69 == "maxvisitors") { goto Label_37D5; } if (str69 != "password") { return; } goto Label_37FC; } } else { str17 = stringManager.filterSwearwords(text); continue; } str16 = text; if ((str16 != "0") && (str16 != "1")) { str16 = "0"; } continue; Label_37D5: num26 = int.Parse(text); if ((num26 < 10) || (num26 > 50)) { num26 = 0x19; } continue; Label_37FC: str18 = text; } using (client = Eucalypt.dbManager.GetClient()) { client.AddParamWithValue("desc", str17); client.AddParamWithValue("super", str16); client.AddParamWithValue("max", num26); client.AddParamWithValue("pass", str18); client.AddParamWithValue("id", num20); client.AddParamWithValue("owner", this._Username); client.runQuery("UPDATE rooms SET description = @desc,superusers = @super,visitors_max = @max, password = @pass WHERE id = @id AND owner = @owner LIMIT 1"); } return; } case "@X": strArray3 = currentPacket.Substring(2).Split(new char[] { '/' }); if ((strArray3[3] != "1") && (strArray3[2] != "0")) { strArray3[2] = "1"; } using (client = Eucalypt.dbManager.GetClient()) { client.AddParamWithValue("name", stringManager.filterSwearwords(strArray3[1])); client.AddParamWithValue("state", roomManager.getRoomState(strArray3[2])); client.AddParamWithValue("show", strArray3[3]); client.AddParamWithValue("id", strArray3[0]); client.AddParamWithValue("owner", this._Username); client.runQuery("UPDATE rooms SET name = @name,state = @state,showname = @show WHERE id = @id AND owner = @owner LIMIT 1"); } return; case "BX": string str21; num20 = Encoding.decodeVL64(currentPacket.Substring(2)); using (client = Eucalypt.dbManager.GetClient()) { str21 = client.getString(string.Concat(new object[] { "SELECT category FROM rooms WHERE id = '", num20, "' AND owner = '", this._Username, "'" })); } if (str21 != "") { this.sendData("C^" + Encoding.encodeVL64(num20) + Encoding.encodeVL64(int.Parse(str21))); } return; case "BY": num20 = Encoding.decodeVL64(currentPacket.Substring(2)); num16 = Encoding.decodeVL64(currentPacket.Substring(Encoding.encodeVL64(num20).Length + 2)); using (client = Eucalypt.dbManager.GetClient()) { if (client.findsResult(string.Concat(new object[] { "SELECT id FROM room_categories WHERE id = '", num16, "' AND type = '2' AND parent > 0 AND access_rank_min <= ", this._Rank }))) { client.runQuery(string.Concat(new object[] { "UPDATE rooms SET category = '", num16, "' WHERE id = '", num20, "' AND owner = '", this._Username, "' LIMIT 1" })); } } return; case "@W": num20 = int.Parse(currentPacket.Substring(2)); using (client = Eucalypt.dbManager.GetClient()) { if (client.findsResult(string.Concat(new object[] { "SELECT id FROM rooms WHERE id = '", num20, "' AND owner = '", this._Username, "'" }))) { client.runQuery("DELETE FROM room_rights WHERE roomid = '" + num20 + "'"); client.runQuery("DELETE FROM rooms WHERE id = '" + num20 + "' LIMIT 1"); client.runQuery("DELETE FROM users_favourites WHERE roomid = '" + this._roomID + "'"); client.runQuery("DELETE FROM room_votes WHERE roomid = '" + num20 + "'"); client.runQuery("DELETE FROM room_bans WHERE roomid = '" + num20 + "' LIMIT 1"); client.runQuery("DELETE FROM furniture WHERE roomid = '" + num20 + "'"); client.runQuery("DELETE FROM furniture_moodlight WHERE roomid = '" + num20 + "'"); } } if (roomManager.containsRoom(num20)) { roomManager.getRoom(num20).kickUsers(byte.Parse("9"), "This room has been deleted"); } return; case "BZ": num20 = Encoding.decodeVL64(currentPacket.Substring(2)); if (!roomManager.containsRoom(num20)) { this.sendData("C_"); return; } this.sendData("C_" + roomManager.getRoom(num20).Userlist); return; case "@u": if ((this.Room == null) || (this.roomUser == null)) { if (this.gamePlayer != null) { this.leaveGame(); } return; } this.Room.removeUser(this.roomUser.roomUID, false, ""); return; case "Bv": Config.Rooms_LoadAvertisement_img = ""; if (!(Config.Rooms_LoadAvertisement_img == "")) { this.sendData(string.Concat(new object[] { "DB", Config.Rooms_LoadAvertisement_img, Convert.ToChar(9), Config.Rooms_LoadAvertisement_uri })); return; } this.sendData("DB0"); return; case "@B": { num20 = Encoding.decodeVL64(currentPacket.Substring(3)); bool flag5 = currentPacket.Substring(2, 1) == "A"; this.sendData("@S"); this.sendData("Bfhttp://wwww.sunnieday.nl/"); if ((this.gamePlayer == null) || (this.gamePlayer.Game == null)) { if ((this.Room != null) && (this.roomUser != null)) { this.Room.removeUser(this.roomUser.roomUID, false, ""); } if (this._teleporterID == 0) { int num27; bool flag6 = rankManager.containsRight(this._Rank, "fuse_enter_locked_rooms", this.userID); using (client = Eucalypt.dbManager.GetClient()) { num27 = client.getInt("SELECT state FROM rooms WHERE id = '" + num20 + "'"); } if (!(((num27 != 3) || this._clubMember) || flag6)) { this.sendData("C`Kc"); return; } if (!((num27 != 4) || flag6)) { this.sendData("BK" + stringManager.getString("room_stafflocked")); return; } using (client = Eucalypt.dbManager.GetClient()) { int num28 = client.getInt("SELECT SUM(visitors_now) FROM rooms WHERE id = '" + num20 + "'"); if (num28 > 0) { num26 = client.getInt("SELECT SUM(visitors_max) FROM rooms WHERE id = '" + num20 + "'"); if ((num28 >= num26) && !rankManager.containsRight(this._Rank, "fuse_enter_full_rooms", this.userID)) { if (!flag5) { this.sendData("C`I"); } else { this.sendData("BK" + stringManager.getString("room_full")); } return; } } } } this._roomID = num20; this._inPublicroom = flag5; this._ROOMACCESS_PRIMARY_OK = true; if (flag5) { string str23; using (client = Eucalypt.dbManager.GetClient()) { str23 = client.getString("SELECT model FROM rooms WHERE id = '" + num20 + "'"); } this.sendData(string.Concat(new object[] { "AE", str23, " ", num20 })); this._ROOMACCESS_SECONDARY_OK = true; } return; } if (!this.gamePlayer.enteringGame) { this.leaveGame(); return; } this.Room.removeUser(this.roomUser.roomUID, false, ""); this.sendData(string.Concat(new object[] { "AE", this.gamePlayer.Game.Lobby.Type, "_arena_", this.gamePlayer.Game.mapID, " ", num20 })); this.sendData("Cs" + this.gamePlayer.Game.getMap()); str22 = this.gamePlayer.Game.getMap(); return; } case "@v": this.sendData("@S"); return; case "@y": if (!this._inPublicroom) { using (client = Eucalypt.dbManager.GetClient()) { this._isOwner = client.findsResult(string.Concat(new object[] { "SELECT id FROM rooms WHERE id = '", this._roomID, "' AND owner = '", this._Username, "'" })); if (!this._isOwner) { this._hasRights = client.findsResult(string.Concat(new object[] { "SELECT userid FROM room_rights WHERE roomid = '", this._roomID, "' AND userid = '", this.userID, "'" })); } if (!this._hasRights) { this._hasRights = client.findsResult("SELECT id FROM rooms WHERE id = '" + this._roomID + "' AND superusers = '1'"); } if (((this._teleporterID == 0) && !this._isOwner) && !rankManager.containsRight(this._Rank, "fuse_enter_locked_rooms", this.userID)) { int num29 = client.getInt("SELECT state FROM rooms WHERE id = '" + this._roomID + "'"); if (!(this._ROOMACCESS_PRIMARY_OK || (num29 == 2))) { return; } if (client.findsResult(string.Concat(new object[] { "SELECT roomid FROM room_bans WHERE roomid = '", this._roomID, "' AND userid = '", this.userID, "'" }))) { if (DateTime.Compare(DateTime.Parse(client.getString(string.Concat(new object[] { "SELECT ban_expire FROM room_bans WHERE roomid = '", this._roomID, "' AND userid = '", this.userID, "'" }))), DateTime.Now) > 0) { this.sendData("C`PA"); this.sendData("@R"); return; } client.runQuery(string.Concat(new object[] { "DELETE FROM room_bans WHERE roomid = '", this._roomID, "' AND userid = '", this.userID, "' LIMIT 1" })); } switch (num29) { case 1: if (!roomManager.containsRoom(this._roomID)) { this.sendData("BC"); } else { roomManager.getRoom(this._roomID).sendDataToRights("A[" + this._Username); this.sendData("A["); } return; case 2: { string str24 = ""; try { str24 = currentPacket.Split(new char[] { '/' })[1]; } catch { } str18 = client.getString("SELECT password FROM rooms WHERE id = '" + this._roomID + "'"); if (str24 != str18) { this.sendData("@aIncorrect flat password"); return; } break; } } } this._ROOMACCESS_SECONDARY_OK = true; this.sendData("@i"); } } return; case "Ab": if (this._hasRights || !rankManager.containsRight(this.roomUser.User._Rank, "fuse_enter_locked_rooms", this.userID)) { string userName = currentPacket.Substring(4, Encoding.decodeB64(currentPacket.Substring(2, 2))); bool flag7 = currentPacket.Substring(currentPacket.Length - 1) == "A"; virtualUser user2 = userManager.getUser(userName); if ((user2 != null) && (user2._roomID == this._roomID)) { if (flag7) { user2._ROOMACCESS_SECONDARY_OK = true; this.Room.sendDataToRights("@i" + userName + Convert.ToChar(2)); user2.sendData("@i"); } else { user2.sendData("BC"); user2._roomID = 0; user2._inPublicroom = false; user2._ROOMACCESS_PRIMARY_OK = false; user2._ROOMACCESS_SECONDARY_OK = false; user2._isOwner = false; user2._hasRights = false; user2.Room = null; user2.roomUser = null; } } return; } return; case "@{": if (this._ROOMACCESS_SECONDARY_OK && !this._inPublicroom) { string str26; using (client = Eucalypt.dbManager.GetClient()) { current = client.getRow("SELECT model, wallpaper, floor FROM rooms WHERE id = '" + this._roomID + "'"); str26 = client.getString("SELECT landscape FROM rooms WHERE id = '" + this._roomID + "'"); } string str27 = "model_" + Convert.ToString(current["model"]); this.sendData(string.Concat(new object[] { "AE", str27, " ", this._roomID })); int num30 = Convert.ToInt32(current["wallpaper"]); int num31 = Convert.ToInt32(current["floor"]); this.sendData("@nlandscape/" + str26.Replace(",", ".")); if (num30 > 0) { this.sendData("@nwallpaper/" + num30); } if (num31 > 0) { this.sendData("@nfloor/" + num31); } if (!this._isOwner) { this._isOwner = rankManager.containsRight(this._Rank, "fuse_any_room_controller", this.userID); } if (this._isOwner) { this._hasRights = true; this.sendData("@o"); } if (this._hasRights) { this.sendData("@j"); } num32 = -1; using (client = Eucalypt.dbManager.GetClient()) { if (client.findsResult(string.Concat(new object[] { "SELECT userid FROM room_votes WHERE userid = '", this.userID, "' AND roomid = '", this._roomID, "'" }))) { num32 = client.getInt("SELECT SUM(vote) FROM room_votes WHERE roomid = '" + this._roomID + "'"); if (num32 < 0) { num32 = 0; } } } this.sendData("EY" + Encoding.encodeVL64(num32)); this.sendData("Er" + eventManager.getEvent(this._roomID)); } return; case "A~": using (client = Eucalypt.dbManager.GetClient()) { if (this._inPublicroom && client.findsResult("SELECT roomid FROM room_ads WHERE roomid = '" + this._roomID + "'")) { current = client.getRow("SELECT img, uri FROM room_ads WHERE roomid = '" + this._roomID + "'"); string str28 = Convert.ToString(current["img"]); string str29 = Convert.ToString(current["uri"]); this.sendData(string.Concat(new object[] { "CP", str28, Convert.ToChar(9), str29 })); } else { this.sendData("CP0"); } } return; case "@|": if (!this._ROOMACCESS_SECONDARY_OK) { if ((((this.gamePlayer != null) && this.gamePlayer.enteringGame) && (this.gamePlayer.teamID != -1)) && (this.gamePlayer.Game != null)) { this.sendData("@_" + this.gamePlayer.Game.Heightmap); this.sendData("Cs" + this.gamePlayer.Game.getPlayers()); str22 = this.gamePlayer.Game.getPlayers(); } this.gamePlayer.enteringGame = false; return; } if (!roomManager.containsRoom(this._roomID)) { this.Room = new virtualRoom(this._roomID, this._inPublicroom); roomManager.addRoom(this._roomID, this.Room); } else { this.Room = roomManager.getRoom(this._roomID); } this.sendData("@_" + this.Room.Heightmap); this.sendData(@"@\" + this.Room.dynamicUnits); return; case "@}": if (this._ROOMACCESS_SECONDARY_OK && (this.Room != null)) { this.sendData("@^" + this.Room.PublicroomItems); this.sendData("@`" + this.Room.Flooritems); } return; case "@~": if (this._ROOMACCESS_SECONDARY_OK && (this.Room != null)) { this.sendData("Du" + this.Room.Groups); if (this.Room.Lobby != null) { this.sendData(string.Concat(new object[] { "CgH", this.Room.Lobby.Rank.Title, Convert.ToChar(2), Encoding.encodeVL64(this.Room.Lobby.Rank.minPoints), Encoding.encodeVL64(this.Room.Lobby.Rank.maxPoints) })); this.sendData("Cz" + this.Room.Lobby.playerRanks); } this.sendData("DiH"); if (!this._receivedSpriteIndex) { this.sendData("Dg[SEshelves_norja\x0002X~Dshelves_polyfon\x0002YmAshelves_silo\x0002XQHtable_polyfon_small\x0002YmAchair_polyfon\x0002ZbBtable_norja_med\x0002Y_Itable_silo_med\x0002X~Dtable_plasto_4leg\x0002Y_Itable_plasto_round\x0002Y_Itable_plasto_bigsquare\x0002Y_Istand_polyfon_z\x0002ZbBchair_silo\x0002X~Dsofa_silo\x0002X~Dcouch_norja\x0002X~Dchair_norja\x0002X~Dtable_polyfon_med\x0002YmAdoormat_love\x0002ZbBdoormat_plain\x0002Z[Msofachair_polyfon\x0002X~Dsofa_polyfon\x0002Z[Msofachair_silo\x0002X~Dchair_plasty\x0002X~Dchair_plasto\x0002YmAtable_plasto_square\x0002Y_Ibed_polyfon\x0002X~Dbed_polyfon_one\x0002[dObed_trad_one\x0002YmAbed_trad\x0002YmAbed_silo_one\x0002YmAbed_silo_two\x0002YmAtable_silo_small\x0002X~Dbed_armas_two\x0002YmAbed_budget_one\x0002XQHbed_budget\x0002XQHshelves_armas\x0002YmAbench_armas\x0002YmAtable_armas\x0002YmAsmall_table_armas\x0002ZbBsmall_chair_armas\x0002YmAfireplace_armas\x0002YmAlamp_armas\x0002YmAbed_armas_one\x0002YmAcarpet_standard\x0002Y_Icarpet_armas\x0002YmAcarpet_polar\x0002Y_Ifireplace_polyfon\x0002Y_Itable_plasto_4leg*1\x0002Y_Itable_plasto_bigsquare*1\x0002Y_Itable_plasto_round*1\x0002Y_Itable_plasto_square*1\x0002Y_Ichair_plasto*1\x0002YmAcarpet_standard*1\x0002Y_Idoormat_plain*1\x0002Z[Mtable_plasto_4leg*2\x0002Y_Itable_plasto_bigsquare*2\x0002Y_Itable_plasto_round*2\x0002Y_Itable_plasto_square*2\x0002Y_Ichair_plasto*2\x0002YmAdoormat_plain*2\x0002Z[Mcarpet_standard*2\x0002Y_Itable_plasto_4leg*3\x0002Y_Itable_plasto_bigsquare*3\x0002Y_Itable_plasto_round*3\x0002Y_Itable_plasto_square*3\x0002Y_Ichair_plasto*3\x0002YmAcarpet_standard*3\x0002Y_Idoormat_plain*3\x0002Z[Mtable_plasto_4leg*4\x0002Y_Itable_plasto_bigsquare*4\x0002Y_Itable_plasto_round*4\x0002Y_Itable_plasto_square*4\x0002Y_Ichair_plasto*4\x0002YmAcarpet_standard*4\x0002Y_Idoormat_plain*4\x0002Z[Mdoormat_plain*6\x0002Z[Mdoormat_plain*5\x0002Z[Mcarpet_standard*5\x0002Y_Itable_plasto_4leg*5\x0002Y_Itable_plasto_bigsquare*5\x0002Y_Itable_plasto_round*5\x0002Y_Itable_plasto_square*5\x0002Y_Ichair_plasto*5\x0002YmAtable_plasto_4leg*6\x0002Y_Itable_plasto_bigsquare*6\x0002Y_Itable_plasto_round*6\x0002Y_Itable_plasto_square*6\x0002Y_Ichair_plasto*6\x0002YmAtable_plasto_4leg*7\x0002Y_Itable_plasto_bigsquare*7\x0002Y_Itable_plasto_round*7\x0002Y_Itable_plasto_square*7\x0002Y_Ichair_plasto*7\x0002YmAtable_plasto_4leg*8\x0002Y_Itable_plasto_bigsquare*8\x0002Y_Itable_plasto_round*8\x0002Y_Itable_plasto_square*8\x0002Y_Ichair_plasto*8\x0002YmAtable_plasto_4leg*9\x0002Y_Itable_plasto_bigsquare*9\x0002Y_Itable_plasto_round*9\x0002Y_Itable_plasto_square*9\x0002Y_Ichair_plasto*9\x0002YmAcarpet_standard*6\x0002Y_Ichair_plasty*1\x0002X~Dpizza\x0002YmAdrinks\x0002YmAchair_plasty*2\x0002X~Dchair_plasty*3\x0002X~Dchair_plasty*4\x0002X~Dbar_polyfon\x0002Y_Iplant_cruddy\x0002YmAbottle\x0002YmAbardesk_polyfon\x0002X~Dbardeskcorner_polyfon\x0002X~Dfloortile\x0002Hbar_armas\x0002Y_Ibartable_armas\x0002YmAbar_chair_armas\x0002YmAcarpet_soft\x0002Z@Kcarpet_soft*1\x0002Z@Kcarpet_soft*2\x0002Z@Kcarpet_soft*3\x0002Z@Kcarpet_soft*4\x0002Z@Kcarpet_soft*5\x0002Z@Kcarpet_soft*6\x0002Z@Kred_tv\x0002Y_Iwood_tv\x0002YmAcarpet_polar*1\x0002Y_Ichair_plasty*5\x0002X~Dcarpet_polar*2\x0002Y_Icarpet_polar*3\x0002Y_Icarpet_polar*4\x0002Y_Ichair_plasty*6\x0002X~Dtable_polyfon\x0002YmAsmooth_table_polyfon\x0002YmAsofachair_polyfon_girl\x0002X~Dbed_polyfon_girl_one\x0002[dObed_polyfon_girl\x0002X~Dsofa_polyfon_girl\x0002Z[Mbed_budgetb_one\x0002XQHbed_budgetb\x0002XQHplant_pineapple\x0002YmAplant_fruittree\x0002Y_Iplant_small_cactus\x0002Y_Iplant_bonsai\x0002Y_Iplant_big_cactus\x0002Y_Iplant_yukka\x0002Y_Icarpet_standard*7\x0002Y_Icarpet_standard*8\x0002Y_Icarpet_standard*9\x0002Y_Icarpet_standard*a\x0002Y_Icarpet_standard*b\x0002Y_Iplant_sunflower\x0002Y_Iplant_rose\x0002Y_Itv_luxus\x0002Y_Ibath\x0002Z\\Bsink\x0002Y_Itoilet\x0002YmAduck\x0002YmAtile\x0002YmAtoilet_red\x0002YmAtoilet_yell\x0002YmAtile_red\x0002YmAtile_yell\x0002YmApresent_gen\x0002[~Npresent_gen1\x0002[~Npresent_gen2\x0002[~Npresent_gen3\x0002[~Npresent_gen4\x0002[~Npresent_gen5\x0002[~Npresent_gen6\x0002[~Nbar_basic\x0002Y_Ishelves_basic\x0002XQHsoft_sofachair_norja\x0002X~Dsoft_sofa_norja\x0002X~Dlamp_basic\x0002XQHlamp2_armas\x0002YmAfridge\x0002Y_Idoor\x0002Yc[doorB\x0002Yc[doorC\x0002Yc[pumpkin\x0002YmAskullcandle\x0002YmAdeadduck\x0002YmAdeadduck2\x0002YmAdeadduck3\x0002YmAmenorah\x0002YmApudding\x0002YmAham\x0002YmAturkey\x0002YmAxmasduck\x0002Y_Ihouse\x0002YmAtriplecandle\x0002YmAtree3\x0002YmAtree4\x0002YmAtree5\x0002X~Dham2\x0002YmAwcandleset\x0002YmArcandleset\x0002YmAstatue\x0002YmAheart\x0002Y_Ivaleduck\x0002YmAheartsofa\x0002X~Dthrone\x0002YmAsamovar\x0002Y_Igiftflowers\x0002Y_Ihabbocake\x0002YmAhologram\x0002YmAeasterduck\x0002Y_Ibunny\x0002YmAbasket\x0002Y_Ibirdie\x0002YmAedice\x0002X~Dclub_sofa\x0002Z[Mprize1\x0002YmAprize2\x0002YmAprize3\x0002YmAdivider_poly3\x0002X~Ddivider_arm1\x0002YmAdivider_arm2\x0002YmAdivider_arm3\x0002YmAdivider_nor1\x0002X~Ddivider_silo1\x0002X~Ddivider_nor2\x0002X~Ddivider_silo2\x0002Z[Mdivider_nor3\x0002X~Ddivider_silo3\x0002X~Dtypingmachine\x0002YmAspyro\x0002YmAredhologram\x0002YmAcamera\x0002Hjoulutahti\x0002YmAhyacinth1\x0002YmAhyacinth2\x0002YmAchair_plasto*10\x0002YmAchair_plasto*11\x0002YmAbardeskcorner_polyfon*12\x0002X~Dbardeskcorner_polyfon*13\x0002X~Dchair_plasto*12\x0002YmAchair_plasto*13\x0002YmAchair_plasto*14\x0002YmAtable_plasto_4leg*14\x0002Y_Imocchamaster\x0002Y_Icarpet_legocourt\x0002YmAbench_lego\x0002YmAlegotrophy\x0002YmAvalentinescreen\x0002YmAedicehc\x0002YmArare_daffodil_rug\x0002YmArare_beehive_bulb\x0002Y_Ihcsohva\x0002YmAhcamme\x0002YmArare_elephant_statue\x0002YmArare_fountain\x0002Y_Irare_stand\x0002YmArare_globe\x0002YmArare_hammock\x0002YmArare_elephant_statue*1\x0002YmArare_elephant_statue*2\x0002YmArare_fountain*1\x0002Y_Irare_fountain*2\x0002Y_Irare_fountain*3\x0002Y_Irare_beehive_bulb*1\x0002Y_Irare_beehive_bulb*2\x0002Y_Irare_xmas_screen\x0002Y_Irare_parasol*1\x0002XMVrare_parasol*2\x0002XMVrare_parasol*3\x0002XMVtree1\x0002X~Dtree2\x0002ZmBwcandle\x0002YxBrcandle\x0002YxBsoft_jaggara_norja\x0002YmAhouse2\x0002YmAdjesko_turntable\x0002YmAmd_sofa\x0002Z[Mmd_limukaappi\x0002Y_Itable_plasto_4leg*10\x0002Y_Itable_plasto_4leg*15\x0002Y_Itable_plasto_bigsquare*14\x0002Y_Itable_plasto_bigsquare*15\x0002Y_Itable_plasto_round*14\x0002Y_Itable_plasto_round*15\x0002Y_Itable_plasto_square*14\x0002Y_Itable_plasto_square*15\x0002Y_Ichair_plasto*15\x0002YmAchair_plasty*7\x0002X~Dchair_plasty*8\x0002X~Dchair_plasty*9\x0002X~Dchair_plasty*10\x0002X~Dchair_plasty*11\x0002X~Dchair_plasto*16\x0002YmAtable_plasto_4leg*16\x0002Y_Ihockey_score\x0002Y_Ihockey_light\x0002YmAdoorD\x0002Yc[prizetrophy2*3\x0002Yd[prizetrophy3*3\x0002Yd[prizetrophy4*3\x0002Yd[prizetrophy5*3\x0002Yd[prizetrophy6*3\x0002Yd[prizetrophy*1\x0002Yd[prizetrophy2*1\x0002Yd[prizetrophy3*1\x0002Yd[prizetrophy4*1\x0002Yd[prizetrophy5*1\x0002Yd[prizetrophy6*1\x0002Yd[prizetrophy*2\x0002Yd[prizetrophy2*2\x0002Yd[prizetrophy3*2\x0002Yd[prizetrophy4*2\x0002Yd[prizetrophy5*2\x0002Yd[prizetrophy6*2\x0002Yd[prizetrophy*3\x0002Yd[rare_parasol*0\x0002XMVhc_lmp\x0002[fBhc_tbl\x0002YmAhc_chr\x0002YmAhc_dsk\x0002XQHnest\x0002Hpetfood1\x0002ZvCpetfood2\x0002ZvCpetfood3\x0002ZvCwaterbowl*4\x0002XICwaterbowl*5\x0002XICwaterbowl*2\x0002XICwaterbowl*1\x0002XICwaterbowl*3\x0002XICtoy1\x0002XICtoy1*1\x0002XICtoy1*2\x0002XICtoy1*3\x0002XICtoy1*4\x0002XICgoodie1\x0002Yc[goodie1*1\x0002Yc[goodie1*2\x0002Yc[goodie2\x0002Yc[prizetrophy7*3\x0002Yd[prizetrophy7*1\x0002Yd[prizetrophy7*2\x0002Yd[scifiport*0\x0002Y_Iscifiport*9\x0002Y_Iscifiport*8\x0002Y_Iscifiport*7\x0002Y_Iscifiport*6\x0002Y_Iscifiport*5\x0002Y_Iscifiport*4\x0002Y_Iscifiport*3\x0002Y_Iscifiport*2\x0002Y_Iscifiport*1\x0002Y_Iscifirocket*9\x0002Y_Iscifirocket*8\x0002Y_Iscifirocket*7\x0002Y_Iscifirocket*6\x0002Y_Iscifirocket*5\x0002Y_Iscifirocket*4\x0002Y_Iscifirocket*3\x0002Y_Iscifirocket*2\x0002Y_Iscifirocket*1\x0002Y_Iscifirocket*0\x0002Y_Iscifidoor*10\x0002Y_Iscifidoor*9\x0002Y_Iscifidoor*8\x0002Y_Iscifidoor*7\x0002Y_Iscifidoor*6\x0002Y_Iscifidoor*5\x0002Y_Iscifidoor*4\x0002Y_Iscifidoor*3\x0002Y_Iscifidoor*2\x0002Y_Iscifidoor*1\x0002Y_Ipillow*5\x0002YmApillow*8\x0002YmApillow*0\x0002YmApillow*1\x0002YmApillow*2\x0002YmApillow*7\x0002YmApillow*9\x0002YmApillow*4\x0002YmApillow*6\x0002YmApillow*3\x0002YmAmarquee*1\x0002Y_Imarquee*2\x0002Y_Imarquee*7\x0002Y_Imarquee*a\x0002Y_Imarquee*8\x0002Y_Imarquee*9\x0002Y_Imarquee*5\x0002Y_Imarquee*4\x0002Y_Imarquee*6\x0002Y_Imarquee*3\x0002Y_Iwooden_screen*1\x0002Y_Iwooden_screen*2\x0002Y_Iwooden_screen*7\x0002Y_Iwooden_screen*0\x0002Y_Iwooden_screen*8\x0002Y_Iwooden_screen*5\x0002Y_Iwooden_screen*9\x0002Y_Iwooden_screen*4\x0002Y_Iwooden_screen*6\x0002Y_Iwooden_screen*3\x0002Y_Ipillar*6\x0002Y_Ipillar*1\x0002Y_Ipillar*9\x0002Y_Ipillar*0\x0002Y_Ipillar*8\x0002Y_Ipillar*2\x0002Y_Ipillar*5\x0002Y_Ipillar*4\x0002Y_Ipillar*7\x0002Y_Ipillar*3\x0002Y_Irare_dragonlamp*4\x0002Y_Irare_dragonlamp*0\x0002Y_Irare_dragonlamp*5\x0002Y_Irare_dragonlamp*2\x0002Y_Irare_dragonlamp*8\x0002Y_Irare_dragonlamp*9\x0002Y_Irare_dragonlamp*7\x0002Y_Irare_dragonlamp*6\x0002Y_Irare_dragonlamp*1\x0002Y_Irare_dragonlamp*3\x0002Y_Irare_icecream*1\x0002Y_Irare_icecream*7\x0002Y_Irare_icecream*8\x0002Y_Irare_icecream*2\x0002Y_Irare_icecream*6\x0002Y_Irare_icecream*9\x0002Y_Irare_icecream*3\x0002Y_Irare_icecream*0\x0002Y_Irare_icecream*4\x0002Y_Irare_icecream*5\x0002Y_Irare_fan*7\x0002YxBrare_fan*6\x0002YxBrare_fan*9\x0002YxBrare_fan*3\x0002YxBrare_fan*0\x0002YxBrare_fan*4\x0002YxBrare_fan*5\x0002YxBrare_fan*1\x0002YxBrare_fan*8\x0002YxBrare_fan*2\x0002YxBqueue_tile1*3\x0002X~Dqueue_tile1*6\x0002X~Dqueue_tile1*4\x0002X~Dqueue_tile1*9\x0002X~Dqueue_tile1*8\x0002X~Dqueue_tile1*5\x0002X~Dqueue_tile1*7\x0002X~Dqueue_tile1*2\x0002X~Dqueue_tile1*1\x0002X~Dqueue_tile1*0\x0002X~Dticket\x0002Hrare_snowrug\x0002X~Dcn_lamp\x0002ZxIcn_sofa\x0002YmAsporttrack1*1\x0002YmAsporttrack1*3\x0002YmAsporttrack1*2\x0002YmAsporttrack2*1\x0002[~Nsporttrack2*2\x0002[~Nsporttrack2*3\x0002[~Nsporttrack3*1\x0002YmAsporttrack3*2\x0002YmAsporttrack3*3\x0002YmAfootylamp\x0002X~Dbarchair_silo\x0002X~Ddivider_nor4*4\x0002X~Dtraffic_light*1\x0002ZxItraffic_light*2\x0002ZxItraffic_light*3\x0002ZxItraffic_light*4\x0002ZxItraffic_light*6\x0002ZxIrubberchair*1\x0002X~Drubberchair*2\x0002X~Drubberchair*3\x0002X~Drubberchair*4\x0002X~Drubberchair*5\x0002X~Drubberchair*6\x0002X~Dbarrier*1\x0002X~Dbarrier*2\x0002X~Dbarrier*3\x0002X~Drubberchair*7\x0002X~Drubberchair*8\x0002X~Dtable_norja_med*2\x0002Y_Itable_norja_med*3\x0002Y_Itable_norja_med*4\x0002Y_Itable_norja_med*5\x0002Y_Itable_norja_med*6\x0002Y_Itable_norja_med*7\x0002Y_Itable_norja_med*8\x0002Y_Itable_norja_med*9\x0002Y_Icouch_norja*2\x0002X~Dcouch_norja*3\x0002X~Dcouch_norja*4\x0002X~Dcouch_norja*5\x0002X~Dcouch_norja*6\x0002X~Dcouch_norja*7\x0002X~Dcouch_norja*8\x0002X~Dcouch_norja*9\x0002X~Dshelves_norja*2\x0002X~Dshelves_norja*3\x0002X~Dshelves_norja*4\x0002X~Dshelves_norja*5\x0002X~Dshelves_norja*6\x0002X~Dshelves_norja*7\x0002X~Dshelves_norja*8\x0002X~Dshelves_norja*9\x0002X~Dchair_norja*2\x0002X~Dchair_norja*3\x0002X~Dchair_norja*4\x0002X~Dchair_norja*5\x0002X~Dchair_norja*6\x0002X~Dchair_norja*7\x0002X~Dchair_norja*8\x0002X~Dchair_norja*9\x0002X~Ddivider_nor1*2\x0002X~Ddivider_nor1*3\x0002X~Ddivider_nor1*4\x0002X~Ddivider_nor1*5\x0002X~Ddivider_nor1*6\x0002X~Ddivider_nor1*7\x0002X~Ddivider_nor1*8\x0002X~Ddivider_nor1*9\x0002X~Dsoft_sofa_norja*2\x0002X~Dsoft_sofa_norja*3\x0002X~Dsoft_sofa_norja*4\x0002X~Dsoft_sofa_norja*5\x0002X~Dsoft_sofa_norja*6\x0002X~Dsoft_sofa_norja*7\x0002X~Dsoft_sofa_norja*8\x0002X~Dsoft_sofa_norja*9\x0002X~Dsoft_sofachair_norja*2\x0002X~Dsoft_sofachair_norja*3\x0002X~Dsoft_sofachair_norja*4\x0002X~Dsoft_sofachair_norja*5\x0002X~Dsoft_sofachair_norja*6\x0002X~Dsoft_sofachair_norja*7\x0002X~Dsoft_sofachair_norja*8\x0002X~Dsoft_sofachair_norja*9\x0002X~Dsofachair_silo*2\x0002X~Dsofachair_silo*3\x0002X~Dsofachair_silo*4\x0002X~Dsofachair_silo*5\x0002X~Dsofachair_silo*6\x0002X~Dsofachair_silo*7\x0002X~Dsofachair_silo*8\x0002X~Dsofachair_silo*9\x0002X~Dtable_silo_small*2\x0002X~Dtable_silo_small*3\x0002X~Dtable_silo_small*4\x0002X~Dtable_silo_small*5\x0002X~Dtable_silo_small*6\x0002X~Dtable_silo_small*7\x0002X~Dtable_silo_small*8\x0002X~Dtable_silo_small*9\x0002X~Ddivider_silo1*2\x0002X~Ddivider_silo1*3\x0002X~Ddivider_silo1*4\x0002X~Ddivider_silo1*5\x0002X~Ddivider_silo1*6\x0002X~Ddivider_silo1*7\x0002X~Ddivider_silo1*8\x0002X~Ddivider_silo1*9\x0002X~Ddivider_silo3*2\x0002X~Ddivider_silo3*3\x0002X~Ddivider_silo3*4\x0002X~Ddivider_silo3*5\x0002X~Ddivider_silo3*6\x0002X~Ddivider_silo3*7\x0002X~Ddivider_silo3*8\x0002X~Ddivider_silo3*9\x0002X~Dtable_silo_med*2\x0002X~Dtable_silo_med*3\x0002X~Dtable_silo_med*4\x0002X~Dtable_silo_med*5\x0002X~Dtable_silo_med*6\x0002X~Dtable_silo_med*7\x0002X~Dtable_silo_med*8\x0002X~Dtable_silo_med*9\x0002X~Dsofa_silo*2\x0002X~Dsofa_silo*3\x0002X~Dsofa_silo*4\x0002X~Dsofa_silo*5\x0002X~Dsofa_silo*6\x0002X~Dsofa_silo*7\x0002X~Dsofa_silo*8\x0002X~Dsofa_silo*9\x0002X~Dsofachair_polyfon*2\x0002X~Dsofachair_polyfon*3\x0002X~Dsofachair_polyfon*4\x0002X~Dsofachair_polyfon*6\x0002X~Dsofachair_polyfon*7\x0002X~Dsofachair_polyfon*8\x0002X~Dsofachair_polyfon*9\x0002X~Dsofa_polyfon*2\x0002Z[Msofa_polyfon*3\x0002Z[Msofa_polyfon*4\x0002Z[Msofa_polyfon*6\x0002Z[Msofa_polyfon*7\x0002Z[Msofa_polyfon*8\x0002Z[Msofa_polyfon*9\x0002Z[Mbed_polyfon*2\x0002X~Dbed_polyfon*3\x0002X~Dbed_polyfon*4\x0002X~Dbed_polyfon*6\x0002X~Dbed_polyfon*7\x0002X~Dbed_polyfon*8\x0002X~Dbed_polyfon*9\x0002X~Dbed_polyfon_one*2\x0002[dObed_polyfon_one*3\x0002[dObed_polyfon_one*4\x0002[dObed_polyfon_one*6\x0002[dObed_polyfon_one*7\x0002[dObed_polyfon_one*8\x0002[dObed_polyfon_one*9\x0002[dObardesk_polyfon*2\x0002X~Dbardesk_polyfon*3\x0002X~Dbardesk_polyfon*4\x0002X~Dbardesk_polyfon*5\x0002X~Dbardesk_polyfon*6\x0002X~Dbardesk_polyfon*7\x0002X~Dbardesk_polyfon*8\x0002X~Dbardesk_polyfon*9\x0002X~Dbardeskcorner_polyfon*2\x0002X~Dbardeskcorner_polyfon*3\x0002X~Dbardeskcorner_polyfon*4\x0002X~Dbardeskcorner_polyfon*5\x0002X~Dbardeskcorner_polyfon*6\x0002X~Dbardeskcorner_polyfon*7\x0002X~Dbardeskcorner_polyfon*8\x0002X~Dbardeskcorner_polyfon*9\x0002X~Ddivider_poly3*2\x0002X~Ddivider_poly3*3\x0002X~Ddivider_poly3*4\x0002X~Ddivider_poly3*5\x0002X~Ddivider_poly3*6\x0002X~Ddivider_poly3*7\x0002X~Ddivider_poly3*8\x0002X~Ddivider_poly3*9\x0002X~Dchair_silo*2\x0002X~Dchair_silo*3\x0002X~Dchair_silo*4\x0002X~Dchair_silo*5\x0002X~Dchair_silo*6\x0002X~Dchair_silo*7\x0002X~Dchair_silo*8\x0002X~Dchair_silo*9\x0002X~Ddivider_nor3*2\x0002X~Ddivider_nor3*3\x0002X~Ddivider_nor3*4\x0002X~Ddivider_nor3*5\x0002X~Ddivider_nor3*6\x0002X~Ddivider_nor3*7\x0002X~Ddivider_nor3*8\x0002X~Ddivider_nor3*9\x0002X~Ddivider_nor2*2\x0002X~Ddivider_nor2*3\x0002X~Ddivider_nor2*4\x0002X~Ddivider_nor2*5\x0002X~Ddivider_nor2*6\x0002X~Ddivider_nor2*7\x0002X~Ddivider_nor2*8\x0002X~Ddivider_nor2*9\x0002X~Dsilo_studydesk\x0002X~Dsolarium_norja\x0002Y_Isolarium_norja*1\x0002Y_Isolarium_norja*2\x0002Y_Isolarium_norja*3\x0002Y_Isolarium_norja*5\x0002Y_Isolarium_norja*6\x0002Y_Isolarium_norja*7\x0002Y_Isolarium_norja*8\x0002Y_Isolarium_norja*9\x0002Y_Isandrug\x0002X~Drare_moonrug\x0002YmAchair_china\x0002YmAchina_table\x0002YmAsleepingbag*1\x0002YmAsleepingbag*2\x0002YmAsleepingbag*3\x0002YmAsleepingbag*4\x0002YmAsafe_silo\x0002Y_Isleepingbag*7\x0002YmAsleepingbag*9\x0002YmAsleepingbag*5\x0002YmAsleepingbag*10\x0002YmAsleepingbag*6\x0002YmAsleepingbag*8\x0002YmAchina_shelve\x0002X~Dtraffic_light*5\x0002ZxIdivider_nor4*2\x0002X~Ddivider_nor4*3\x0002X~Ddivider_nor4*5\x0002X~Ddivider_nor4*6\x0002X~Ddivider_nor4*7\x0002X~Ddivider_nor4*8\x0002X~Ddivider_nor4*9\x0002X~Ddivider_nor5*2\x0002X~Ddivider_nor5*3\x0002X~Ddivider_nor5*4\x0002X~Ddivider_nor5*5\x0002X~Ddivider_nor5*6\x0002X~Ddivider_nor5*7\x0002X~Ddivider_nor5*8\x0002X~Ddivider_nor5*9\x0002X~Ddivider_nor5\x0002X~Ddivider_nor4\x0002X~Dwall_china\x0002YmAcorner_china\x0002YmAbarchair_silo*2\x0002X~Dbarchair_silo*3\x0002X~Dbarchair_silo*4\x0002X~Dbarchair_silo*5\x0002X~Dbarchair_silo*6\x0002X~Dbarchair_silo*7\x0002X~Dbarchair_silo*8\x0002X~Dbarchair_silo*9\x0002X~Dsafe_silo*2\x0002Y_Isafe_silo*3\x0002Y_Isafe_silo*4\x0002Y_Isafe_silo*5\x0002Y_Isafe_silo*6\x0002Y_Isafe_silo*7\x0002Y_Isafe_silo*8\x0002Y_Isafe_silo*9\x0002Y_Iglass_shelf\x0002Y_Iglass_chair\x0002Y_Iglass_stool\x0002Y_Iglass_sofa\x0002Y_Iglass_table\x0002Y_Iglass_table*2\x0002Y_Iglass_table*3\x0002Y_Iglass_table*4\x0002Y_Iglass_table*5\x0002Y_Iglass_table*6\x0002Y_Iglass_table*7\x0002Y_Iglass_table*8\x0002Y_Iglass_table*9\x0002Y_Iglass_chair*2\x0002Y_Iglass_chair*3\x0002Y_Iglass_chair*4\x0002Y_Iglass_chair*5\x0002Y_Iglass_chair*6\x0002Y_Iglass_chair*7\x0002Y_Iglass_chair*8\x0002Y_Iglass_chair*9\x0002Y_Iglass_sofa*2\x0002Y_Iglass_sofa*3\x0002Y_Iglass_sofa*4\x0002Y_Iglass_sofa*5\x0002Y_Iglass_sofa*6\x0002Y_Iglass_sofa*7\x0002Y_Iglass_sofa*8\x0002Y_Iglass_sofa*9\x0002Y_Iglass_stool*2\x0002Y_Iglass_stool*4\x0002Y_Iglass_stool*5\x0002Y_Iglass_stool*6\x0002Y_Iglass_stool*7\x0002Y_Iglass_stool*8\x0002Y_Iglass_stool*3\x0002Y_Iglass_stool*9\x0002Y_ICF_10_coin_gold\x0002ZvCCF_1_coin_bronze\x0002ZvCCF_20_moneybag\x0002ZvCCF_50_goldbar\x0002ZvCCF_5_coin_silver\x0002ZvChc_crpt\x0002YmAhc_tv\x0002Z\\Bgothgate\x0002X~Dgothiccandelabra\x0002YxBgothrailing\x0002X~Dgoth_table\x0002YmAhc_bkshlf\x0002YmAhc_btlr\x0002Y_Ihc_crtn\x0002YmAhc_djset\x0002YmAhc_frplc\x0002ZbBhc_lmpst\x0002YmAhc_machine\x0002YmAhc_rllr\x0002XQHhc_rntgn\x0002X~Dhc_trll\x0002YmAgothic_chair*1\x0002X~Dgothic_sofa*1\x0002X~Dgothic_stool*1\x0002X~Dgothic_chair*2\x0002X~Dgothic_sofa*2\x0002X~Dgothic_stool*2\x0002X~Dgothic_chair*3\x0002X~Dgothic_sofa*3\x0002X~Dgothic_stool*3\x0002X~Dgothic_chair*4\x0002X~Dgothic_sofa*4\x0002X~Dgothic_stool*4\x0002X~Dgothic_chair*5\x0002X~Dgothic_sofa*5\x0002X~Dgothic_stool*5\x0002X~Dgothic_chair*6\x0002X~Dgothic_sofa*6\x0002X~Dgothic_stool*6\x0002X~Dval_cauldron\x0002X~Dsound_machine\x0002X~Dromantique_pianochair*3\x0002Y_Iromantique_pianochair*5\x0002Y_Iromantique_pianochair*2\x0002Y_Iromantique_pianochair*4\x0002Y_Iromantique_pianochair*1\x0002Y_Iromantique_divan*3\x0002Y_Iromantique_divan*5\x0002Y_Iromantique_divan*2\x0002Y_Iromantique_divan*4\x0002Y_Iromantique_divan*1\x0002Y_Iromantique_chair*3\x0002Y_Iromantique_chair*5\x0002Y_Iromantique_chair*2\x0002Y_Iromantique_chair*4\x0002Y_Iromantique_chair*1\x0002Y_Irare_parasol\x0002Y_Iplant_valentinerose*3\x0002XICplant_valentinerose*5\x0002XICplant_valentinerose*2\x0002XICplant_valentinerose*4\x0002XICplant_valentinerose*1\x0002XICplant_mazegate\x0002YeCplant_maze\x0002ZcCplant_bulrush\x0002XICpetfood4\x0002Y_Icarpet_valentine\x0002Z|Egothic_carpet\x0002XICgothic_carpet2\x0002Z|Egothic_chair\x0002X~Dgothic_sofa\x0002X~Dgothic_stool\x0002X~Dgrand_piano*3\x0002Z|Egrand_piano*5\x0002Z|Egrand_piano*2\x0002Z|Egrand_piano*4\x0002Z|Egrand_piano*1\x0002Z|Etheatre_seat\x0002Z@Kromantique_tray2\x0002Y_Iromantique_tray1\x0002Y_Iromantique_smalltabl*3\x0002Y_Iromantique_smalltabl*5\x0002Y_Iromantique_smalltabl*2\x0002Y_Iromantique_smalltabl*4\x0002Y_Iromantique_smalltabl*1\x0002Y_Iromantique_mirrortabl\x0002Y_Iromantique_divider*3\x0002Z[Mromantique_divider*2\x0002Z[Mromantique_divider*4\x0002Z[Mromantique_divider*1\x0002Z[Mjp_tatami2\x0002[dWjp_tatami\x0002YGGhabbowood_chair\x0002YGGjp_bamboo\x0002YGGjp_irori\x0002XQHjp_pillow\x0002YGGsound_set_1\x0002[dWsound_set_2\x0002[dWsound_set_3\x0002[dWsound_set_4\x0002[dWsound_set_5\x0002[dWsound_set_6\x0002[dWsound_set_7\x0002[dWsound_set_8\x0002[dWsound_set_9\x0002[dWsound_machine*1\x0002Yc[spotlight\x0002Y_Isound_machine*2\x0002Yc[sound_machine*3\x0002Yc[sound_machine*4\x0002Yc[sound_machine*5\x0002Yc[sound_machine*6\x0002Yc[sound_machine*7\x0002Yc[rom_lamp\x0002Z|Erclr_sofa\x0002XQHrclr_garden\x0002XQHrclr_chair\x0002Z|Esound_set_28\x0002[dWsound_set_27\x0002[dWsound_set_26\x0002[dWsound_set_25\x0002[dWsound_set_24\x0002[dWsound_set_23\x0002[dWsound_set_22\x0002[dWsound_set_21\x0002[dWsound_set_20\x0002[dWsound_set_19\x0002[dWsound_set_18\x0002[dWsound_set_17\x0002[dWsound_set_16\x0002[dWsound_set_15\x0002[dWsound_set_14\x0002[dWsound_set_13\x0002[dWsound_set_12\x0002[dWsound_set_11\x0002[dWsound_set_10\x0002[dWrope_divider\x0002XQHromantique_clock\x0002Y_Irare_icecream_campaign\x0002Y_Ipura_mdl5*1\x0002Yc[pura_mdl5*2\x0002Yc[pura_mdl5*3\x0002Yc[pura_mdl5*4\x0002Yc[pura_mdl5*5\x0002Yc[pura_mdl5*6\x0002Yc[pura_mdl5*7\x0002Yc[pura_mdl5*8\x0002Yc[pura_mdl5*9\x0002Yc[pura_mdl4*1\x0002XQHpura_mdl4*2\x0002XQHpura_mdl4*3\x0002XQHpura_mdl4*4\x0002XQHpura_mdl4*5\x0002XQHpura_mdl4*6\x0002XQHpura_mdl4*7\x0002XQHpura_mdl4*8\x0002XQHpura_mdl4*9\x0002XQHpura_mdl3*1\x0002XQHpura_mdl3*2\x0002XQHpura_mdl3*3\x0002XQHpura_mdl3*4\x0002XQHpura_mdl3*5\x0002XQHpura_mdl3*6\x0002XQHpura_mdl3*7\x0002XQHpura_mdl3*8\x0002XQHpura_mdl3*9\x0002XQHpura_mdl2*1\x0002XQHpura_mdl2*2\x0002XQHpura_mdl2*3\x0002XQHpura_mdl2*4\x0002XQHpura_mdl2*5\x0002XQHpura_mdl2*6\x0002XQHpura_mdl2*7\x0002XQHpura_mdl2*8\x0002XQHpura_mdl2*9\x0002XQHpura_mdl1*1\x0002XQHpura_mdl1*2\x0002XQHpura_mdl1*3\x0002XQHpura_mdl1*4\x0002XQHpura_mdl1*5\x0002XQHpura_mdl1*6\x0002XQHpura_mdl1*7\x0002XQHpura_mdl1*8\x0002XQHpura_mdl1*9\x0002XQHjp_lantern\x0002XQHchair_basic*1\x0002XQHchair_basic*2\x0002XQHchair_basic*3\x0002XQHchair_basic*4\x0002XQHchair_basic*5\x0002XQHchair_basic*6\x0002XQHchair_basic*7\x0002XQHchair_basic*8\x0002XQHchair_basic*9\x0002XQHbed_budget*1\x0002XQHbed_budget*2\x0002XQHbed_budget*3\x0002XQHbed_budget*4\x0002XQHbed_budget*5\x0002XQHbed_budget*6\x0002XQHbed_budget*7\x0002XQHbed_budget*8\x0002XQHbed_budget*9\x0002XQHbed_budget_one*1\x0002XQHbed_budget_one*2\x0002XQHbed_budget_one*3\x0002XQHbed_budget_one*4\x0002XQHbed_budget_one*5\x0002XQHbed_budget_one*6\x0002XQHbed_budget_one*7\x0002XQHbed_budget_one*8\x0002XQHbed_budget_one*9\x0002XQHjp_drawer\x0002XQHtile_stella\x0002Z[Mtile_marble\x0002Z[Mtile_brown\x0002Z[Msummer_grill*1\x0002Y_Isummer_grill*2\x0002Y_Isummer_grill*3\x0002Y_Isummer_grill*4\x0002Y_Isummer_chair*1\x0002Y_Isummer_chair*2\x0002Y_Isummer_chair*3\x0002Y_Isummer_chair*4\x0002Y_Isummer_chair*5\x0002Y_Isummer_chair*6\x0002Y_Isummer_chair*7\x0002Y_Isummer_chair*8\x0002Y_Isummer_chair*9\x0002Y_Isound_set_36\x0002[dWsound_set_35\x0002[dWsound_set_34\x0002[dWsound_set_33\x0002[dWsound_set_32\x0002[dWsound_set_31\x0002[dWsound_set_30\x0002[dWsound_set_29\x0002[dWsound_machine_pro\x0002Yc[rare_mnstr\x0002Y_Ione_way_door*1\x0002XQHone_way_door*2\x0002XQHone_way_door*3\x0002XQHone_way_door*4\x0002XQHone_way_door*5\x0002XQHone_way_door*6\x0002XQHone_way_door*7\x0002XQHone_way_door*8\x0002XQHone_way_door*9\x0002XQHexe_rug\x0002Z[Mexe_s_table\x0002ZGRsound_set_37\x0002[dWsummer_pool*1\x0002ZlIsummer_pool*2\x0002ZlIsummer_pool*3\x0002ZlIsummer_pool*4\x0002ZlIsong_disk\x0002Yc[jukebox*1\x0002Yc[carpet_soft_tut\x0002[~Nsound_set_44\x0002[dWsound_set_43\x0002[dWsound_set_42\x0002[dWsound_set_41\x0002[dWsound_set_40\x0002[dWsound_set_39\x0002[dWsound_set_38\x0002[dWgrunge_chair\x0002Z@Kgrunge_mattress\x0002Z@Kgrunge_radiator\x0002Z@Kgrunge_shelf\x0002Z@Kgrunge_sign\x0002Z@Kgrunge_table\x0002Z@Khabboween_crypt\x0002[uKhabboween_grass\x0002Z@Khal_cauldron\x0002Z@Khal_grave\x0002Z@Ksound_set_52\x0002[dWsound_set_51\x0002[dWsound_set_50\x0002[dWsound_set_49\x0002[dWsound_set_48\x0002[dWsound_set_47\x0002[dWsound_set_46\x0002[dWsound_set_45\x0002[dWxmas_icelamp\x0002Z[Mxmas_cstl_wall\x0002Z[Mxmas_cstl_twr\x0002Z[Mxmas_cstl_gate\x0002[~Ntree7\x0002Z[Mtree6\x0002Z[Msound_set_54\x0002[dWsound_set_53\x0002[dWsafe_silo_pb\x0002[dOplant_mazegate_snow\x0002Z[Mplant_maze_snow\x0002Z[Mchristmas_sleigh\x0002Z[Mchristmas_reindeer\x0002[~Nchristmas_poop\x0002Z[Mexe_bardesk\x0002Z[Mexe_chair\x0002Z[Mexe_chair2\x0002Z[Mexe_corner\x0002Z[Mexe_drinks\x0002Z[Mexe_sofa\x0002Z[Mexe_table\x0002Z[Msound_set_59\x0002[dWsound_set_58\x0002[dWsound_set_57\x0002[dWsound_set_56\x0002[dWsound_set_55\x0002[dWnoob_table*1\x0002[~Nnoob_table*2\x0002[~Nnoob_table*3\x0002[~Nnoob_table*4\x0002[~Nnoob_table*5\x0002[~Nnoob_table*6\x0002[~Nnoob_stool*1\x0002[~Nnoob_stool*2\x0002[~Nnoob_stool*3\x0002[~Nnoob_stool*4\x0002[~Nnoob_stool*5\x0002[~Nnoob_stool*6\x0002[~Nnoob_rug*1\x0002[~Nnoob_rug*2\x0002[~Nnoob_rug*3\x0002[~Nnoob_rug*4\x0002[~Nnoob_rug*5\x0002[~Nnoob_rug*6\x0002[~Nnoob_lamp*1\x0002[dOnoob_lamp*2\x0002[dOnoob_lamp*3\x0002[dOnoob_lamp*4\x0002[dOnoob_lamp*5\x0002[dOnoob_lamp*6\x0002[dOnoob_chair*1\x0002[~Nnoob_chair*2\x0002[~Nnoob_chair*3\x0002[~Nnoob_chair*4\x0002[~Nnoob_chair*5\x0002[~Nnoob_chair*6\x0002[~Nexe_globe\x0002[~Nexe_plant\x0002Z[Mval_teddy*1\x0002[dOval_teddy*2\x0002[dOval_teddy*3\x0002[dOval_teddy*4\x0002[dOval_teddy*5\x0002[dOval_teddy*6\x0002[dOval_randomizer\x0002[dOval_choco\x0002[dOteleport_door\x0002Yc[sound_set_61\x0002[dWsound_set_60\x0002[dWfortune\x0002[dOsw_table\x0002ZIPsw_raven\x0002[cQsw_chest\x0002ZIPsand_cstl_wall\x0002ZIPsand_cstl_twr\x0002ZIPsand_cstl_gate\x0002ZIPgrunge_candle\x0002ZIPgrunge_bench\x0002ZIPgrunge_barrel\x0002ZIPrclr_lamp\x0002ZGRprizetrophy9*1\x0002Yd[prizetrophy8*1\x0002Yd[nouvelle_trax\x0002Yc[md_rug\x0002ZGRjp_tray6\x0002ZGRjp_tray5\x0002ZGRjp_tray4\x0002ZGRjp_tray3\x0002ZGRjp_tray2\x0002ZGRjp_tray1\x0002ZGRarabian_teamk\x0002ZGRarabian_snake\x0002ZGRarabian_rug\x0002ZGRarabian_pllw\x0002ZGRarabian_divdr\x0002ZGRarabian_chair\x0002ZGRarabian_bigtb\x0002ZGRarabian_tetbl\x0002ZGRarabian_tray1\x0002ZGRarabian_tray2\x0002ZGRarabian_tray3\x0002ZGRarabian_tray4\x0002ZGRsound_set_64\x0002[dWsound_set_63\x0002[dWsound_set_62\x0002[dWjukebox_ptv*1\x0002Yc[calippo\x0002ZAStraxsilver\x0002Yc[traxgold\x0002Yc[traxbronze\x0002Yc[bench_puffet\x0002YATCFC_500_goldbar\x0002ZvCCFC_200_moneybag\x0002ZvCCFC_10_coin_bronze\x0002ZvCCFC_100_coin_gold\x0002ZvCCFC_50_coin_silver\x0002ZvCjp_table\x0002XMVjp_rare\x0002XMVjp_katana3\x0002XMVjp_katana2\x0002XMVjp_katana1\x0002XMVfootylamp_campaign\x0002XMVtiki_waterfall\x0002[dWtiki_tray4\x0002[dWtiki_tray3\x0002[dWtiki_tray2\x0002[dWtiki_tray1\x0002[dWtiki_tray0\x0002[dWtiki_toucan\x0002[dWtiki_torch\x0002[dWtiki_statue\x0002[dWtiki_sand\x0002[dWtiki_parasol\x0002[dWtiki_junglerug\x0002[dWtiki_corner\x0002[dWtiki_bflies\x0002[dWtiki_bench\x0002[dWtiki_bardesk\x0002[dWtampax_rug\x0002[dWsound_set_70\x0002[dWsound_set_69\x0002[dWsound_set_68\x0002[dWsound_set_67\x0002[dWsound_set_66\x0002[dWsound_set_65\x0002[dWnoob_rug_tradeable*1\x0002[dWnoob_rug_tradeable*2\x0002[dWnoob_rug_tradeable*3\x0002[dWnoob_rug_tradeable*4\x0002[dWnoob_rug_tradeable*5\x0002[dWnoob_rug_tradeable*6\x0002[dWnoob_plant\x0002[dWnoob_lamp_tradeable*1\x0002[dWnoob_lamp_tradeable*2\x0002[dWnoob_lamp_tradeable*3\x0002[dWnoob_lamp_tradeable*4\x0002[dWnoob_lamp_tradeable*5\x0002[dWnoob_lamp_tradeable*6\x0002[dWnoob_chair_tradeable*1\x0002[dWnoob_chair_tradeable*2\x0002[dWnoob_chair_tradeable*3\x0002[dWnoob_chair_tradeable*4\x0002[dWnoob_chair_tradeable*5\x0002[dWnoob_chair_tradeable*6\x0002[dWjp_teamaker\x0002[dWsvnr_uk\x0002[`_svnr_nl\x0002XhXsvnr_it\x0002XhXsvnr_de\x0002[gXsvnr_aus\x0002[gXdiner_tray_7\x0002[gXdiner_tray_6\x0002[gXdiner_tray_5\x0002[gXdiner_tray_4\x0002[gXdiner_tray_3\x0002[gXdiner_tray_2\x0002[gXdiner_tray_1\x0002[gXdiner_tray_0\x0002[gXdiner_sofa_2*1\x0002[gXdiner_sofa_2*2\x0002[gXdiner_sofa_2*3\x0002[gXdiner_sofa_2*4\x0002[gXdiner_sofa_2*5\x0002[gXdiner_sofa_2*6\x0002[gXdiner_sofa_2*7\x0002[gXdiner_sofa_2*8\x0002[gXdiner_sofa_2*9\x0002[gXdiner_shaker\x0002[gXdiner_rug\x0002[gXdiner_gumvendor*1\x0002[gXdiner_gumvendor*2\x0002[gXdiner_gumvendor*3\x0002[gXdiner_gumvendor*4\x0002[gXdiner_gumvendor*5\x0002[gXdiner_gumvendor*6\x0002[gXdiner_gumvendor*7\x0002[gXdiner_gumvendor*8\x0002[gXdiner_gumvendor*9\x0002[gXdiner_cashreg*1\x0002[gXdiner_cashreg*2\x0002[gXdiner_cashreg*3\x0002[gXdiner_cashreg*4\x0002[gXdiner_cashreg*5\x0002[gXdiner_cashreg*6\x0002[gXdiner_cashreg*7\x0002[gXdiner_cashreg*8\x0002[gXdiner_cashreg*9\x0002[gXdiner_table_2*1\x0002XiZdiner_table_2*2diner_table_2*2\x0002XiZdiner_table_2*3\x0002XiZdiner_table_2*4\x0002XiZdiner_table_2*5\x0002XiZdiner_table_2*6\x0002XiZdiner_table_2*7\x0002XiZdiner_table_2*8\x0002XiZdiner_table_2*9\x0002XiZdiner_table_1*1\x0002XiZdiner_table_1*2\x0002XiZdiner_table_1*3\x0002XiZdiner_table_1*4\x0002XiZdiner_table_1*5\x0002XiZdiner_table_1*6\x0002XiZdiner_table_1*7\x0002XiZdiner_table_1*8\x0002XiZdiner_table_1*9\x0002XiZdiner_sofa_1*1\x0002XiZdiner_sofa_1*2\x0002XiZdiner_sofa_1*3\x0002XiZdiner_sofa_1*4\x0002XiZdiner_sofa_1*5\x0002XiZdiner_sofa_1*6\x0002XiZdiner_sofa_1*7\x0002XiZdiner_sofa_1*8\x0002XiZdiner_sofa_1*9\x0002XiZdiner_chair*1\x0002XiZdiner_chair*2\x0002XiZdiner_chair*3\x0002XiZdiner_chair*4\x0002XiZdiner_chair*5\x0002XiZdiner_chair*6\x0002XiZdiner_chair*7\x0002XiZdiner_chair*8\x0002XiZdiner_chair*9\x0002XiZdiner_bardesk_gate*1\x0002XiZdiner_bardesk_gate*2\x0002XiZdiner_bardesk_gate*3\x0002XiZdiner_bardesk_gate*4\x0002XiZdiner_bardesk_gate*5\x0002XiZdiner_bardesk_gate*6\x0002XiZdiner_bardesk_gate*7\x0002XiZdiner_bardesk_gate*8\x0002XiZdiner_bardesk_gate*9\x0002XiZdiner_bardesk_corner*1\x0002XiZdiner_bardesk_corner*2\x0002XiZdiner_bardesk_corner*3\x0002XiZdiner_bardesk_corner*4\x0002XiZdiner_bardesk_corner*5\x0002XiZdiner_bardesk_corner*6\x0002XiZdiner_bardesk_corner*7\x0002XiZdiner_bardesk_corner*8\x0002XiZdiner_bardesk_corner*9\x0002XiZdiner_bardesk*1\x0002XiZdiner_bardesk*2\x0002XiZdiner_bardesk*3\x0002XiZdiner_bardesk*4\x0002XiZdiner_bardesk*5\x0002XiZdiner_bardesk*6\x0002XiZdiner_bardesk*7\x0002XiZdiner_bardesk*8\x0002XiZdiner_bardesk*9\x0002XiZads_dave_cns\x0002XiZeasy_carpet\x0002Yc[easy_bowl2\x0002Yc[greek_corner\x0002Yc[greek_gate\x0002Yc[greek_pillars\x0002Yc[greek_seat\x0002Yc[greektrophy*1\x0002[P\\greektrophy*2\x0002[P\\greektrophy*3\x0002[P\\greek_block\x0002Xt[hcc_table\x0002Y`]hcc_shelf\x0002Y`]hcc_sofa\x0002Y`]hcc_minibar\x0002Y`]hcc_chair\x0002Y`]det_divider\x0002Y`]netari_carpet\x0002Y`]det_body\x0002Y`]hcc_stool\x0002Y`]hcc_sofachair\x0002Y`]hcc_crnr\x0002Xw]hcc_dvdr\x0002Xw]sob_carpet\x0002[`_igor_seat\x0002[`_ads_igorbrain\x0002Y_aads_igorswitch\x0002Y_aads_711*1\x0002Y_aads_711*2\x0002Y_aads_711*3\x0002Y_aads_711*4\x0002Y_aads_igorraygun\x0002Y_ahween08_sink\x0002Y[chween08_curtain\x0002Y[chween08_bath\x0002Y[chween08_defibs\x0002Y[chween08_bbag\x0002Y[chween08_curtain2\x0002Y[chween08_defibs2\x0002Y[chween08_bed\x0002Y[chween08_sink2\x0002Y[chween08_bed2\x0002Y[chween08_bath2\x0002Y[chween08_manhole\x0002Y[chween08_trll\x0002Y[cPRpost.it\x0002Hpost.it.vd\x0002Hphoto\x0002HChess\x0002HTicTacToe\x0002HBattleShip\x0002HPoker\x0002Hwallpaper\x0002Hfloor\x0002Hposter\x0002Z@Kgothicfountain\x0002YxBhc_wall_lamp\x0002ZbBindustrialfan\x0002Z`Btorch\x0002Z\\Bval_heart\x0002XBCwallmirror\x0002Z|Ejp_ninjastars\x0002XQHhabw_mirror\x0002XQHhabbowheel\x0002Z[Mguitar_skull\x0002Z@Kguitar_v\x0002Z@Kxmas_light\x0002[~Nhrella_poster_3\x0002[\x007fNhrella_poster_2\x0002ZIPhrella_poster_1\x0002[\x007fNsw_swords\x0002ZIPsw_stone\x0002ZIPsw_hole\x0002ZIProomdimmer\x0002Yc[md_logo_wall\x0002ZGRmd_can\x0002ZGRjp_sheet3\x0002ZGRjp_sheet2\x0002ZGRjp_sheet1\x0002ZGRarabian_swords\x0002ZGRarabian_wndw\x0002ZGRtiki_wallplnt\x0002[dWtiki_surfboard\x0002[dWtampax_wall\x0002[dWwindow_single_default\x0002[gXwindow_double_default\x0002[gXnoob_window_double\x0002[dWwindow_triple\x0002[gXwindow_square\x0002[gXwindow_romantic_wide\x0002[gXwindow_romantic_narrow\x0002[gXwindow_grunge\x0002[gXwindow_golden\x0002[gXwindow_chinese_wide\x0002[gXwindow_chinese_narrow\x0002YA\\window_basic\x0002[gXwindow_70s_wide\x0002[gXwindow_70s_narrow\x0002[gXads_sunnyd\x0002YlXwindow_diner2\x0002XiZwindow_diner\x0002XiZdiner_walltable\x0002XiZads_dave_wall\x0002XiZwindow_hole\x0002Yc[easy_poster\x0002Yc[ads_nokia_logo\x0002Yc[ads_nokia_phone\x0002Yc[landscape\x0002XV^window_skyscraper\x0002[j\\netari_poster\x0002Y`]det_bhole\x0002Y`]ads_campguitar\x0002Xw]hween08_rad\x0002Y[chween08_wndwb\x0002Y[chween08_wndw\x0002Y[chween08_bio\x0002Y[chw_08_xray\x0002Y[c"); this._receivedSpriteIndex = true; } } return; case "@\x007f": if (this._ROOMACCESS_SECONDARY_OK && (this.Room != null)) { this.sendData("@m" + this.Room.Wallitems); } return; case "A@": if ((this._ROOMACCESS_SECONDARY_OK && (this.Room != null)) && (this.roomUser == null)) { this.sendData("@b" + this.Room.dynamicStatuses); this.Room.addUser(this); if (this.Room.hasSpecialCasts("cam1")) { this.sendData("AGcam1 targetcamera " + this.roomUser.roomUID); } } return; case "CH": { num33 = 0; str8 = ""; int num34 = 0; string note = ""; string str31 = ""; str69 = currentPacket.Substring(2, 2); if (str69 != null) { virtualUser user3; if (str69 == "HH") { if (!rankManager.containsRight(this._Rank, "fuse_alert", this.userID)) { this.sendData("BK" + stringManager.getString("modtool_accesserror")); } else { num33 = Encoding.decodeB64(currentPacket.Substring(4, 2)); str8 = currentPacket.Substring(6, num33).Replace(Convert.ToChar(1).ToString(), " "); num34 = Encoding.decodeB64(currentPacket.Substring(num33 + 6, 2)); note = currentPacket.Substring(num33 + 8, num34); str31 = currentPacket.Substring((num33 + num34) + 10); if ((str8 != "") && !(str31 == "")) { user3 = userManager.getUser(str31); if (user3 == null) { this.sendData("BK" + stringManager.getString("modtool_actionfail") + "\r" + stringManager.getString("modtool_usernotfound")); } else { user3.sendData("B!" + str8 + Convert.ToChar(2)); staffManager.addStaffMessage("alert", this.userID, user3.userID, str8, note); } } } return; } if (str69 == "HI") { if (!rankManager.containsRight(this._Rank, "fuse_kick", this.userID)) { this.sendData("BK" + stringManager.getString("modtool_accesserror")); } else { num33 = Encoding.decodeB64(currentPacket.Substring(4, 2)); str8 = currentPacket.Substring(6, num33).Replace(Convert.ToChar(1).ToString(), " "); num34 = Encoding.decodeB64(currentPacket.Substring(num33 + 6, 2)); note = currentPacket.Substring(num33 + 8, num34); str31 = currentPacket.Substring((num33 + num34) + 10); if ((str8 != "") && !(str31 == "")) { user3 = userManager.getUser(str31); if (user3 == null) { this.sendData("BK" + stringManager.getString("modtool_actionfail") + "\r" + stringManager.getString("modtool_usernotfound")); } else if ((user3.Room != null) && (user3.roomUser != null)) { if (user3._Rank < this._Rank) { user3.Room.removeUser(user3.roomUser.roomUID, true, str8); staffManager.addStaffMessage("kick", this.userID, user3.userID, str8, note); } else { this.sendData("BK" + stringManager.getString("modtool_actionfail") + "\r" + stringManager.getString("modtool_rankerror")); } } } } return; } if (str69 == "HJ") { if (!rankManager.containsRight(this._Rank, "fuse_ban", this.userID)) { this.sendData("BK" + stringManager.getString("modtool_accesserror")); } else { int num35 = 0; int hours = 0; bool flag8 = currentPacket.Substring(currentPacket.Length - 1, 1) == "I"; num33 = Encoding.decodeB64(currentPacket.Substring(4, 2)); str8 = currentPacket.Substring(6, num33).Replace(Convert.ToChar(1).ToString(), " "); num34 = Encoding.decodeB64(currentPacket.Substring(num33 + 6, 2)); note = currentPacket.Substring(num33 + 8, num34); num35 = Encoding.decodeB64(currentPacket.Substring((num33 + num34) + 8, 2)); str31 = currentPacket.Substring((num33 + num34) + 10, num35); hours = Encoding.decodeVL64(currentPacket.Substring(((num33 + num34) + num35) + 10)); if (((str8 != "") && (str31 != "")) && (hours != 0)) { using (client = Eucalypt.dbManager.GetClient()) { client.AddParamWithValue("name", str31); current = client.getRow("SELECT id,rank,ipaddress_last FROM users WHERE name = @name"); } if (current.Table.Rows.Count == 0) { this.sendData("BK" + stringManager.getString("modtool_actionfail") + "\r" + stringManager.getString("modtool_usernotfound")); } else if (Convert.ToByte(current["rank"]) >= this._Rank) { this.sendData("BK" + stringManager.getString("modtool_actionfail") + "\r" + stringManager.getString("modtool_rankerror")); } else { int targetID = Convert.ToInt32(current["id"]); string str32 = ""; staffManager.addStaffMessage("ban", this.userID, targetID, str8, note); if (flag8 && rankManager.containsRight(this._Rank, "fuse_superban", this.userID)) { userManager.setBan(Convert.ToString(current["ipaddress_last"]), hours, str8); str32 = userManager.generateBanReport(Convert.ToString(current["ipaddress_last"])); } else { userManager.setBan(targetID, hours, str8); str32 = userManager.generateBanReport(targetID); } this.sendData("BK" + str32); } } } return; } if (str69 == "IH") { if (!rankManager.containsRight(this._Rank, "fuse_room_alert", this.userID)) { this.sendData("BK" + stringManager.getString("modtool_accesserror")); } else if ((this.Room != null) && (this.roomUser != null)) { num33 = Encoding.decodeB64(currentPacket.Substring(4, 2)); str8 = currentPacket.Substring(6, num33).Replace(Convert.ToChar(1).ToString(), " "); num34 = Encoding.decodeB64(currentPacket.Substring(num33 + 6, 2)); note = currentPacket.Substring(num33 + 8, num34); if (str8 != "") { this.Room.sendData("B!" + str8 + Convert.ToChar(2)); staffManager.addStaffMessage("ralert", this.userID, this._roomID, str8, note); } } return; } if (str69 == "II") { if (!rankManager.containsRight(this._Rank, "fuse_room_kick", this.userID)) { this.sendData("BK" + stringManager.getString("modtool_accesserror")); } else if ((this.Room != null) && (this.roomUser != null)) { num33 = Encoding.decodeB64(currentPacket.Substring(4, 2)); str8 = currentPacket.Substring(6, num33).Replace(Convert.ToChar(1).ToString(), " "); num34 = Encoding.decodeB64(currentPacket.Substring(num33 + 6, 2)); note = currentPacket.Substring(num33 + 8, num34); if (str8 != "") { this.Room.kickUsers(this._Rank, str8); staffManager.addStaffMessage("rkick", this.userID, this._roomID, str8, note); } } return; } } return; } case "Cm": using (client = Eucalypt.dbManager.GetClient()) { current = client.getRow("SELECT id, date, message FROM cms_help WHERE username = '" + this._Username + "' AND picked_up = '0'"); } if (current.Table.Rows.Count == 0) { this.sendData("D\x007fH"); } else { this.sendData(string.Concat(new object[] { "D\x007fI", Convert.ToString(current[0]), Convert.ToChar(2), Convert.ToString(current[1]), Convert.ToChar(2), Convert.ToString(current[2]), Convert.ToChar(2) })); } return; case "Cn": using (client = Eucalypt.dbManager.GetClient()) { num38 = client.getInt("SELECT id FROM cms_help WHERE username = '" + this._Username + "' AND picked_up = '0'"); client.runQuery("DELETE FROM cms_help WHERE picked_up = '0' AND username = '" + this._Username + "' LIMIT 1"); } this.sendData("D\x007fH"); userManager.sendToRank(Config.Minimum_CFH_Rank, true, string.Concat(new object[] { "BT", Encoding.encodeVL64(num38), Convert.ToChar(2), "IUser Deleted!", Convert.ToChar(2), "User Deleted!", Convert.ToChar(2), "User Deleted!", Convert.ToChar(2), Encoding.encodeVL64(0), Convert.ToChar(2), Convert.ToChar(2), "H", Convert.ToChar(2), Encoding.encodeVL64(0) })); return; case "AV": using (client = Eucalypt.dbManager.GetClient()) { if (client.findsResult("SELECT id FROM cms_help WHERE username = '" + this._Username + "' AND picked_up = '0'")) { return; } } num33 = Encoding.decodeB64(currentPacket.Substring(2, 2)); if (num33 != 0) { string str33 = currentPacket.Substring(4, num33); using (client = Eucalypt.dbManager.GetClient()) { client.AddParamWithValue("username", this._Username); client.AddParamWithValue("ip", this.connectionSocket.RemoteEndPoint.ToString().Split(new char[] { char.Parse(":") })[0]); client.AddParamWithValue("message", str33); client.AddParamWithValue("date", DateTime.Now); client.AddParamWithValue("roomid", this._roomID.ToString()); client.runQuery("INSERT INTO cms_help (username,ip,message,date,picked_up,subject,roomid) VALUES (@username,@ip,@message,@date,'0','CFH message [hotel]',@roomid)"); num38 = client.getInt("SELECT id FROM cms_help WHERE username = @username AND picked_up = '0'"); str34 = client.getString("SELECT name FROM rooms WHERE id = @roomid"); } this.sendData("EAH"); userManager.sendToRank(Config.Minimum_CFH_Rank, true, string.Concat(new object[] { "BT", Encoding.encodeVL64(num38), Convert.ToChar(2), "ISent: ", DateTime.Now, Convert.ToChar(2), this._Username, Convert.ToChar(2), str33, Convert.ToChar(2), Encoding.encodeVL64(this._roomID), Convert.ToChar(2), str34, Convert.ToChar(2), "I", Convert.ToChar(2), Encoding.encodeVL64(this._roomID) })); } return; case "CG": if (rankManager.containsRight(this._Rank, "fuse_receive_calls_for_help", this.userID)) { string str36; num38 = Encoding.decodeVL64(currentPacket.Substring(4, Encoding.decodeB64(currentPacket.Substring(2, 2)))); string str35 = currentPacket.Substring(Encoding.decodeB64(currentPacket.Substring(2, 2)) + 6); using (client = Eucalypt.dbManager.GetClient()) { str36 = client.getString("SELECT username FROM cms_help WHERE id = '" + num38 + "'"); } if (str36 == null) { this.sendData("BK" + stringManager.getString("cfh_fail")); } else { virtualUser user4 = userManager.getUser(userManager.getUserID(str36)); if (user4._isLoggedIn) { user4.sendData("DR" + str35 + Convert.ToChar(2)); using (client = Eucalypt.dbManager.GetClient()) { client.runQuery(string.Concat(new object[] { "UPDATE cms_help SET picked_up = '", this._Username, "' WHERE id = '", num38, "' LIMIT 1" })); } } } return; } return; case "CF": if (rankManager.containsRight(this._Rank, "fuse_receive_calls_for_help", this.userID)) { num38 = Encoding.decodeVL64(currentPacket.Substring(4, Encoding.decodeB64(currentPacket.Substring(2, 2)))); using (client = Eucalypt.dbManager.GetClient()) { current = client.getRow("SELECT picked_up FROM cms_help WHERE id = '" + num38 + "'"); } if (current.Table.Columns.Count != 0) { using (client = Eucalypt.dbManager.GetClient()) { client.runQuery("DELETE FROM cms_help WHERE id = '" + num38 + "' LIMIT 1"); } userManager.sendToRank(Config.Minimum_CFH_Rank, true, string.Concat(new object[] { "BT", Encoding.encodeVL64(num38), Convert.ToChar(2), "HStaff Deleted!", Convert.ToChar(2), "Staff Deleted!", Convert.ToChar(2), "Staff Deleted!", Convert.ToChar(2), "H", Convert.ToChar(2), Convert.ToChar(2), "H", Convert.ToChar(2), "H" })); } return; } return; case "@p": num38 = Encoding.decodeVL64(currentPacket.Substring(4)); using (client = Eucalypt.dbManager.GetClient()) { flag9 = client.findsResult("SELECT id FROM cms_help WHERE id = '" + num38 + "'"); } if (!flag9) { this.sendData("BK" + stringManager.getString("cfh_deleted")); } else { using (client = Eucalypt.dbManager.GetClient()) { current = client.getRow("SELECT picked_up,username,message,roomid FROM cms_help WHERE id = '" + num38 + "'"); str34 = client.getString("SELECT name FROM rooms WHERE id = '" + Convert.ToString(current[3]) + "'"); } if (Convert.ToString(current[0]) == "1") { this.sendData("BK" + stringManager.getString("cfh_picked_up")); } else { userManager.sendToRank(Config.Minimum_CFH_Rank, true, string.Concat(new object[] { "BT", Encoding.encodeVL64(num38), Convert.ToChar(2), "IPicked up: ", DateTime.Now, Convert.ToChar(2), Convert.ToString(current[1]), Convert.ToChar(2), Convert.ToString(current[2]), Convert.ToChar(2), Encoding.encodeVL64(Convert.ToInt32(current[3])), Convert.ToChar(2), str34, Convert.ToChar(2), "I", Convert.ToChar(2), Encoding.encodeVL64(Convert.ToInt32(current[3])) })); } using (client = Eucalypt.dbManager.GetClient()) { client.runQuery("UPDATE cms_help SET picked_up = '1' WHERE id = '" + num38 + "' LIMIT 1"); } } return; case "EC": if (rankManager.containsRight(this._Rank, "fuse_receive_calls_for_help", this.userID)) { num40 = Encoding.decodeB64(currentPacket.Substring(2, 2)); num38 = Encoding.decodeVL64(currentPacket.Substring(4, num40)); using (client = Eucalypt.dbManager.GetClient()) { num20 = client.getInt("SELECT roomid FROM cms_help WHERE id = '" + num38 + "'"); } if (num20 != 0) { if (roomManager.getRoom(num20).isPublicroom) { this.sendData("D^I" + Encoding.encodeVL64(num20)); } else { this.sendData("D^H" + Encoding.encodeVL64(num20)); } } return; } return; case "AO": if (!((((this.Room == null) || (this.roomUser == null)) || this.statusManager.containsStatus("sit")) || this.statusManager.containsStatus("lay"))) { num41 = int.Parse(currentPacket.Substring(2).Split(new char[] { ' ' })[0]); num42 = int.Parse(currentPacket.Split(new char[] { ' ' })[1]); this.roomUser.Z1 = Rotation.Calculate(this.roomUser.X, this.roomUser.Y, num41, num42); this.roomUser.Z2 = this.roomUser.Z1; this.roomUser.Refresh(); } return; case "AK": if (((this.Room != null) && (this.roomUser != null)) && !this.roomUser.walkLock) { int num43 = Encoding.decodeB64(currentPacket.Substring(2, 2)); int num44 = Encoding.decodeB64(currentPacket.Substring(4, 2)); if (!this.roomUser.SPECIAL_TELEPORTABLE) { this.roomUser.goalX = num43; this.roomUser.goalY = num44; return; } int[] numArray2 = this.Room.getMapBorders(); if ((((num43 > numArray2[0]) || (num44 > numArray2[1])) || (num43 < 0)) || (num44 < 0)) { this.sendData("BKInvalid teleport"); return; } this.Room.sqUNIT[num43, num44] = true; this.Room.sqUNIT[this.roomUser.X, this.roomUser.Y] = false; this.roomUser.X = num43; this.roomUser.Y = num44; this.roomUser.goalX = -1; this.Room.Refresh(this.roomUser); this.refreshAppearance(false, false, true); } return; case "As": if (!(((this.Room == null) || (this.roomUser == null)) || this.roomUser.walkDoor)) { this.roomUser.walkDoor = true; this.roomUser.goalX = this.Room.doorX; this.roomUser.goalY = this.Room.doorY; } return; case "At": if ((this.Room != null) || ((this.roomUser != null) && this.Room.hasSwimmingPool)) { virtualRoom.squareTrigger trigger = this.Room.getTrigger(this.roomUser.X, this.roomUser.Y); if ((trigger.Object == "curtains1") || (trigger.Object == "curtains2")) { this.roomUser.swimOutfit = currentPacket.Substring(2); this.Room.sendData(@"@\" + this.roomUser.detailsString); this.Room.sendSpecialCast(trigger.Object, "open"); this.roomUser.walkLock = false; this.roomUser.goalX = trigger.goalX; this.roomUser.goalY = trigger.goalY; using (client = Eucalypt.dbManager.GetClient()) { client.AddParamWithValue("figure_swim", currentPacket.Substring(2)); client.AddParamWithValue("id", this.userID); client.runQuery("UPDATE users SET figure_swim = @figure_swim WHERE id = @id LIMIT 1"); } } } return; case "B^": if ((this.Room != null) && (this.roomUser != null)) { int num47; using (client = Eucalypt.dbManager.GetClient()) { client.runQuery("UPDATE users_badges SET slotid = '0' WHERE userid = '" + this.userID + "'"); } int num45 = 0; for (string str37 = currentPacket.Substring(2); str37 != ""; str37 = str37.Substring(num47 + 2)) { num46 = Encoding.decodeVL64(str37); str37 = str37.Substring(Encoding.encodeVL64(num46).Length); num47 = Encoding.decodeB64(str37.Substring(0, 2)); if (num47 > 0) { string str38 = str37.Substring(2, num47); using (client = Eucalypt.dbManager.GetClient()) { client.runQuery(string.Concat(new object[] { "UPDATE users_badges SET slotid = '", num46, "' WHERE userid = '", this.userID, "' AND badgeid = '", str38, "' LIMIT 1" })); } num45++; } } this.refreshBadges(); string str39 = this.userID + Convert.ToChar(2).ToString() + Encoding.encodeVL64(num45); for (int j = 0; j < this._Badges.Count; j++) { if (this._badgeSlotIDs[j] > 0) { str39 = (str39 + Encoding.encodeVL64(this._badgeSlotIDs[j])) + this._Badges[j] + Convert.ToChar(2); } } this.Room.sendData("Cd" + str39); } return; case "DG": { int num49 = Encoding.decodeVL64(currentPacket.Substring(2)); using (client = Eucalypt.dbManager.GetClient()) { column = client.getColumn("SELECT tag FROM cms_tags WHERE ownerid = '" + num49 + "' LIMIT 20"); } StringBuilder builder7 = new StringBuilder(Encoding.encodeVL64(num49) + Encoding.encodeVL64(column.Table.Rows.Count)); foreach (DataRow row in column.Table.Rows) { builder7.Append(Convert.ToString(row["tag"]) + Convert.ToChar(2)); } this.sendData("E^" + builder7.ToString()); return; } case "Cg": if ((this.Room != null) && (this.roomUser != null)) { int num50 = Encoding.decodeVL64(currentPacket.Substring(2)); using (client = Eucalypt.dbManager.GetClient()) { current = client.getRow("SELECT name,description,roomid FROM groups_details WHERE id = '" + num50 + "'"); } if (current.Table.Rows.Count != 1) { return; } str34 = ""; num20 = Convert.ToInt32(current["roomid"]); if (num20 <= 0) { num20 = -1; } else { using (client = Eucalypt.dbManager.GetClient()) { str34 = client.getString("SELECT name FROM rooms WHERE id = '" + num20 + "'"); } } this.sendData(string.Concat(new object[] { "Dw", Encoding.encodeVL64(num50), Convert.ToString(current["name"]), Convert.ToChar(2), Convert.ToString(current["description"]), Convert.ToChar(2), Encoding.encodeVL64(Convert.ToInt32(current["roomid"])), str34, Convert.ToChar(2) })); } return; case "AX": if (this.statusManager != null) { str40 = currentPacket.Substring(2); if (!(str40 == "CarryItem")) { if (str40 == "Dance") { this.statusManager.removeStatus("dance"); this.statusManager.Refresh(); } return; } this.statusManager.dropCarrydItem(); } return; case "A^": if (!(((this.Room == null) || (this.roomUser == null)) || this.statusManager.containsStatus("wave"))) { this.statusManager.removeStatus("dance"); this.statusManager.handleStatus("wave", "", Config.Statuses_Wave_waveDuration); } return; case "A]": if ((((this.Room != null) && (this.roomUser != null)) && !this.statusManager.containsStatus("sit")) && !this.statusManager.containsStatus("lay")) { this.statusManager.dropCarrydItem(); if (currentPacket.Length != 2) { if (!rankManager.containsRight(this._Rank, "fuse_use_club_dance", this.userID)) { return; } int num51 = Encoding.decodeVL64(currentPacket.Substring(2)); if ((num51 < 0) || (num51 > 4)) { return; } this.statusManager.addStatus("dance", num51.ToString()); } else { this.statusManager.addStatus("dance", ""); } this.statusManager.Refresh(); } return; case "AP": if ((this.Room != null) && (this.roomUser != null)) { str41 = currentPacket.Substring(2); if (!this.statusManager.containsStatus("lay") && !str41.Contains("/")) { try { int num52 = int.Parse(str41); if ((num52 < 1) || (num52 > 0x1a)) { return; } } catch { if (((!this._inPublicroom && (str41 != "Water")) && (str41 != "Milk")) && (str41 != "Juice")) { return; } } this.statusManager.carryItem(str41); return; } } return; case "Ah": if ((((this.Room != null) && (this.roomUser != null)) && !this.statusManager.containsStatus("sit")) && !this.statusManager.containsStatus("lay")) { if (currentPacket.Length != 2) { string str42 = currentPacket.Substring(2); this.statusManager.handleStatus("sign", str42, Config.Statuses_Wave_waveDuration); } else { this.statusManager.addStatus("sign", ""); } this.statusManager.Refresh(); } return; case "@t": case "@w": try { if (!this._isMuted && ((this.Room != null) && (this.roomUser != null))) { str8 = currentPacket.Substring(4); userManager.addChatMessage(this._Username, this._roomID, str8); str8 = stringManager.filterSwearwords(str8); if ((str8.Substring(0, 1) == ":") && this.isSpeechCommand(str8.Substring(1))) { if (this.roomUser.isTyping) { this.Room.sendData("Ei" + Encoding.encodeVL64(this.roomUser.roomUID) + "H"); this.roomUser.isTyping = false; } } else if (currentPacket.Substring(1, 1) == "w") { this.Room.sendShout(this.roomUser, str8); } else { this.Room.sendSaying(this.roomUser, str8); } } } catch (Exception exception) { Out.WriteError(exception.ToString()); } return; case "@x": if ((!this._isMuted && (this.Room != null)) && (this.roomUser != null)) { str43 = currentPacket.Substring(4).Split(new char[] { ' ' })[0]; str8 = currentPacket.Substring(str43.Length + 5); userManager.addChatMessage(this._Username, this._roomID, str8); str8 = stringManager.filterSwearwords(str8); this.Room.sendWhisper(this.roomUser, str43, str8); } return; case "D}": if ((!this._isMuted && (this.Room != null)) && (this.roomUser != null)) { this.Room.sendData("Ei" + Encoding.encodeVL64(this.roomUser.roomUID) + "I"); this.roomUser.isTyping = true; } return; case "D~": if ((this.Room != null) && (this.roomUser != null)) { this.Room.sendData("Ei" + Encoding.encodeVL64(this.roomUser.roomUID) + "H"); this.roomUser.isTyping = false; } return; case "A`": if ((((this.Room != null) && (this.roomUser != null)) && !this._inPublicroom) && this._isOwner) { str44 = currentPacket.Substring(2); if (userManager.containsUser(str44)) { user5 = userManager.getUser(str44); if (((user5._roomID == this._roomID) && !user5._hasRights) && !user5._isOwner) { using (client = Eucalypt.dbManager.GetClient()) { client.runQuery(string.Concat(new object[] { "INSERT INTO room_rights(roomid,userid) VALUES ('", this._roomID, "','", user5.userID, "')" })); } user5._hasRights = true; user5.statusManager.addStatus("flatctrl", "onlyfurniture"); user5.roomUser.Refresh(); user5.sendData("@j"); } } return; } return; case "Aa": if ((((this.Room != null) && (this.roomUser != null)) && !this._inPublicroom) && this._isOwner) { str44 = currentPacket.Substring(2); if (userManager.containsUser(str44)) { user5 = userManager.getUser(str44); if (((user5._roomID == this._roomID) && user5._hasRights) && !user5._isOwner) { using (client = Eucalypt.dbManager.GetClient()) { client.runQuery(string.Concat(new object[] { "DELETE FROM room_rights WHERE roomid = '", this._roomID, "' AND userid = '", user5.userID, "' LIMIT 1" })); } user5._hasRights = false; user5.statusManager.removeStatus("flatctrl"); user5.roomUser.Refresh(); user5.sendData("@k"); } } return; } return; case "A_": if ((((this.Room != null) && (this.roomUser != null)) && !this._inPublicroom) && this._hasRights) { str44 = currentPacket.Substring(2); if (userManager.containsUser(str44)) { user5 = userManager.getUser(str44); if ((user5._roomID == this._roomID) && ((!user5._isOwner && (user5._Rank <= this._Rank)) && !rankManager.containsRight(user5._Rank, "fuse_any_room_controller", this.userID))) { user5.roomUser.walkLock = true; user5.roomUser.walkDoor = true; user5.roomUser.goalX = this.Room.doorX; user5.roomUser.goalY = this.Room.doorY; } } return; } return; case "E@": if (((this._hasRights && !this._inPublicroom) && (this.Room != null)) && (this.roomUser != null)) { str44 = currentPacket.Substring(2); if (userManager.containsUser(str44)) { user5 = userManager.getUser(str44); if ((user5._roomID == this._roomID) && (!user5._isOwner || ((user5._Rank <= this._Rank) && !rankManager.containsRight(user5._Rank, "fuse_any_room_controller", this.userID)))) { string str45 = DateTime.Now.AddMinutes((double) Config.Rooms_roomBan_banDuration).ToString(); using (client = Eucalypt.dbManager.GetClient()) { client.runQuery(string.Concat(new object[] { "INSERT INTO room_bans (roomid,userid,ban_expire) VALUES ('", this._roomID, "','", user5.userID, "','", str45, "')" })); } user5.roomUser.walkLock = true; user5.roomUser.walkDoor = true; user5.roomUser.goalX = this.Room.doorX; user5.roomUser.goalY = this.Room.doorY; } } return; } return; case "DE": if ((!this._inPublicroom && (this.Room != null)) && (this.roomUser != null)) { int num53 = Encoding.decodeVL64(currentPacket.Substring(2)); using (client = Eucalypt.dbManager.GetClient()) { if (((num53 == 1) || (num53 == -1)) && !client.findsResult(string.Concat(new object[] { "SELECT userid FROM room_votes WHERE userid = '", this.userID, "' AND roomid = '", this._roomID, "'" }))) { client.runQuery(string.Concat(new object[] { "INSERT INTO room_votes (userid,roomid,vote) VALUES ('", this.userID, "','", this._roomID, "','", num53, "')" })); num32 = client.getInt("SELECT SUM(vote) FROM room_votes WHERE roomid = '" + this._roomID + "'"); if (num32 < 0) { num32 = 0; } this.roomUser.hasVoted = true; if (this._isOwner) { this.roomUser.Room.sendNewVoteAmount(num32); } } } return; } return; case "Ae": if ((this.Room != null) && (this.roomUser != null)) { this.sendData("A~" + catalogueManager.getPageIndex(this._Rank)); } return; case "Af": if ((this.Room != null) && (this.roomUser != null)) { string pageName = currentPacket.Split(new char[] { '/' })[1]; this.sendData("A\x007f" + catalogueManager.getPage(pageName, this._Rank)); } return; case "Ad": { int num56; DatabaseClient client2; strArray3 = currentPacket.Split(new char[] { Convert.ToChar(13) }); string str47 = strArray3[1]; str41 = strArray3[3]; string str48 = strArray3[4]; using (client2 = Eucalypt.dbManager.GetClient()) { client2.AddParamWithValue("indexname", str47); client2.AddParamWithValue("name_cct", str41); int num54 = client2.getInt("SELECT indexid FROM catalogue_pages WHERE indexname = @indexname AND minrank <= " + this._Rank); num55 = client2.getInt("SELECT tid FROM catalogue_items WHERE name_cct = @name_cct"); num56 = client2.getInt(string.Concat(new object[] { "SELECT catalogue_cost FROM catalogue_items WHERE catalogue_id_page = '", num54, "' AND tid = '", num55, "'" })); } if ((num56 == 0) || (num56 > this._Credits)) { this.sendData("AD"); } else { bool flag10 = false; int num57 = this.userID; int presentBoxID = 0; num20 = 0; if (strArray3[5] == "1") { flag10 = true; string str49 = strArray3[6]; using (DatabaseClient client3 = Eucalypt.dbManager.GetClient()) { client3.AddParamWithValue("name", str49); if (str49 != this._Username) { num7 = client3.getInt("SELECT id FROM users WHERE name = @name LIMIT 1"); if (num7 > 0) { num57 = num7; } else { this.sendData("AL" + str49); return; } } } string str50 = "present_gen" + new Random().Next(1, 7); using (client2 = Eucalypt.dbManager.GetClient()) { string str51 = client2.getString("SELECT tid FROM catalogue_items WHERE name_cct = '" + str50 + "'"); client2.AddParamWithValue("tid", str51); client2.AddParamWithValue("ownerid", num57); client2.AddParamWithValue("var", "!" + stringManager.filterSwearwords(strArray3[7])); client2.runQuery("INSERT INTO furniture(tid,ownerid,var) VALUES (@tid,@ownerid,@var)"); presentBoxID = client2.getInt("SELECT MAX(id) FROM furniture"); } num20 = -1; } this._Credits -= num56; this.sendData("@F" + this._Credits); using (client2 = Eucalypt.dbManager.GetClient()) { client2.runQuery(string.Concat(new object[] { "UPDATE users SET credits = '", this._Credits, "' WHERE id = '", this.userID, "' LIMIT 1" })); } if (stringManager.getStringPart(str41, 0, 4) == "deal") { int num59 = int.Parse(str41.Substring(4)); using (client2 = Eucalypt.dbManager.GetClient()) { table = client2.getTable("SELECT tid,amount FROM catalogue_deals WHERE id = '" + num59 + "'"); } builder3 = new StringBuilder(); foreach (DataRow row in table.Rows) { num7 = 0; while (num7 <= Convert.ToInt32(row["amount"])) { builder3.Append(string.Concat(new object[] { ",('", Convert.ToString(row["tid"]), "','", num57, "','", num20, "')" })); num7++; } using (client2 = Eucalypt.dbManager.GetClient()) { client2.runQuery("INSERT INTO furniture(tid,ownerid,roomid) VALUES " + builder3.ToString().Substring(1)); } num7 = 0; while (num7 <= Convert.ToInt32(row["amount"])) { catalogueManager.handlePurchase(Convert.ToInt32(row["tid"]), num57, num20, "0", presentBoxID, 0); num7++; } } } else { int lastItemID = 0; using (client2 = Eucalypt.dbManager.GetClient()) { client2.runQuery(string.Concat(new object[] { "INSERT INTO furniture(tid,ownerid,roomid) VALUES ('", num55, "','", num57, "','", num20, "' )" })); lastItemID = catalogueManager.lastItemID; } if (((catalogueManager.getTemplate(num55).Sprite == "wallpaper") || (catalogueManager.getTemplate(num55).Sprite == "floor")) || catalogueManager.getTemplate(num55).Sprite.Contains("landscape")) { string decorID = strArray3[4]; catalogueManager.handlePurchase(num55, num57, 0, decorID, presentBoxID, 0); } else if ((stringManager.getStringPart(str41, 0, 11) == "greektrophy") || (stringManager.getStringPart(str41, 0, 11) == "prizetrophy")) { DatabaseClient client4; string str53; if (!flag10) { using (client4 = Eucalypt.dbManager.GetClient()) { str53 = (this._Username + "\t" + DateTime.Today.ToShortDateString() + "\t" + stringManager.filterSwearwords(strArray3[4])).Replace(@"\", @"\").Replace("'", @"\'"); client4.runQuery(string.Concat(new object[] { "UPDATE furniture SET var = '", str53, "' WHERE id = '", catalogueManager.lastItemID, "' LIMIT 1" })); } } else { using (client4 = Eucalypt.dbManager.GetClient()) { str53 = (this._Username + "\t" + DateTime.Today.ToShortDateString() + "\t" + stringManager.filterSwearwords(strArray3[4])).Replace(@"\", @"\").Replace("'", @"\'"); client4.runQuery(string.Concat(new object[] { "UPDATE furniture SET var = '", str53, "' WHERE id = '", catalogueManager.lastItemID, "' LIMIT 1" })); client4.runQuery(string.Concat(new object[] { "INSERT INTO furniture_presents(id,itemid) VALUES ('", presentBoxID, "','", lastItemID, "')" })); this.refreshHand("last"); return; } } } else { catalogueManager.handlePurchase(num55, num57, num20, "0", presentBoxID, lastItemID); } } if (num57 == this.userID) { this.refreshHand("last"); } else if (userManager.containsUser(num57)) { userManager.getUser(num57).refreshHand("last"); } } return; } case "Ai": { string str54 = currentPacket.Substring(2); num9 = Encoding.decodeVL64(str54.Substring(0, 3)); str43 = str54.Substring(3); int num61 = 0; int num62 = 0; if (num9 != 1) { if (num9 != 2) { return; } num61 = 20; num62 = 6; } else { num61 = 2; num62 = 1; } if (num62 > this._Credits) { this.sendData("AD"); } else { int num63; using (client = Eucalypt.dbManager.GetClient()) { client.AddParamWithValue("name", str43); num63 = client.getInt("SELECT id FROM users WHERE name = @name"); } if (num63 <= 0) { this.sendData("AL" + str43); } else { this._Credits -= num62; this.sendData("@F" + this._Credits); using (client = Eucalypt.dbManager.GetClient()) { client.runQuery(string.Concat(new object[] { "UPDATE users SET credits = '", this._Credits, "' WHERE id = '", this.userID, "' LIMIT 1" })); client.runQuery(string.Concat(new object[] { "UPDATE users SET tickets = tickets+", num61, " WHERE id = '", num63, "' LIMIT 1" })); } if (userManager.containsUser(num63)) { virtualUser user6 = userManager.getUser(num63); user6._Tickets += num61; if (num63 == this.userID) { user6.refreshValueables(false, true); } else { user6.refreshValueables(true, true); } } this.sendData("AC"); } } return; } case "Ca": if ((Config.enableRecycler && (this.Room != null)) && !recyclerManager.sessionExists(this.userID)) { int itemCount = Encoding.decodeVL64(currentPacket.Substring(2)); if (recyclerManager.rewardExists(itemCount)) { recyclerManager.createSession(this.userID, itemCount); currentPacket = currentPacket.Substring(Encoding.encodeVL64(itemCount).ToString().Length + 2); for (num7 = 0; num7 < itemCount; num7++) { num65 = Encoding.decodeVL64(currentPacket); using (client = Eucalypt.dbManager.GetClient()) { if (client.findsResult("SELECT id FROM furniture WHERE ownerid = '" + this.userID + "' AND roomid = '0'")) { client.runQuery("UPDATE furniture SET roomid = '-2' WHERE id = '" + num65 + "' LIMIT 1"); currentPacket = currentPacket.Substring(Encoding.encodeVL64(num65).Length); } else { recyclerManager.dropSession(this.userID, true); this.sendData("DpH"); return; } } } this.sendData("Dp" + recyclerManager.sessionString(this.userID)); this.refreshHand("update"); } return; } return; case "Cb": if (!(Config.enableRecycler && ((this.Room == null) || !recyclerManager.sessionExists(this.userID)))) { bool dropItems = currentPacket.Substring(2) == "I"; if (dropItems && recyclerManager.sessionReady(this.userID)) { recyclerManager.rewardSession(this.userID); } recyclerManager.dropSession(this.userID, dropItems); this.sendData("Dp" + recyclerManager.sessionString(this.userID)); if (dropItems) { this.refreshHand("last"); } else { this.refreshHand("new"); } } return; case "AA": if ((this.Room != null) && (this.roomUser != null)) { str55 = currentPacket.Substring(2); this.refreshHand(str55); return; } return; case "LB": if ((this.Room != null) && (this.roomUser != null)) { str55 = currentPacket.Substring(2); this.refreshHand(str55); return; } return; case "AB": if (((this._hasRights && !this._inPublicroom) && (this.Room != null)) && (this.roomUser != null)) { num65 = int.Parse(currentPacket.Split(new char[] { '/' })[1]); string str56 = currentPacket.Substring(2).Split(new char[] { '/' })[0]; if ((!(str56 != "wallpaper") || !(str56 != "floor")) || !(str56 != "landscape")) { using (client = Eucalypt.dbManager.GetClient()) { if (catalogueManager.getTemplate(client.getInt(string.Concat(new object[] { "SELECT tid FROM furniture WHERE id = '", num65, "' AND ownerid = '", this.userID, "' AND roomid = '0'" }))).Sprite == str56) { string str57 = client.getString("SELECT var FROM furniture WHERE id = '" + num65 + "'"); this.Room.sendData("@n" + str56 + "/" + str57); client.runQuery(string.Concat(new object[] { "UPDATE rooms SET ", str56, " = '", str57, "' WHERE id = '", this._roomID, "' LIMIT 1" })); client.runQuery("DELETE FROM furniture WHERE id = '" + num65 + "' LIMIT 1"); } } } return; } return; case "AZ": if (((this._hasRights && !this._inPublicroom) && (this.Room != null)) && (this.roomUser != null)) { if (int.TryParse(currentPacket.Split(new char[] { ' ' })[0].Substring(2), out num65)) { using (client = Eucalypt.dbManager.GetClient()) { num55 = client.getInt(string.Concat(new object[] { "SELECT tid FROM furniture WHERE id = '", num65, "' AND ownerid = '", this.userID, "' AND roomid = '0'" })); } if (num55 != 0) { if (catalogueManager.getTemplate(num55).typeID == 0) { string wallPosition = currentPacket.Substring(num65.ToString().Length + 3); string str59 = catalogueManager.wallPositionOK(wallPosition); if (str59 == wallPosition) { int result = 0; using (client = Eucalypt.dbManager.GetClient()) { string s = client.getString("SELECT var FROM furniture WHERE id = '" + num65 + "'"); int.TryParse(s, out result); if (stringManager.getStringPart(catalogueManager.getTemplate(num55).Sprite, 0, 7) == "post.it") { if (result > 1) { client.runQuery("UPDATE furniture SET var = var - 1 WHERE id = '" + num65 + "' LIMIT 1"); } else { client.runQuery("DELETE FROM furniture WHERE id = '" + num65 + "' LIMIT 1"); } client.runQuery(string.Concat(new object[] { "INSERT INTO furniture(tid,ownerid) VALUES ('", num55, "','", this.userID, "')" })); num65 = catalogueManager.lastItemID; client.runQuery("INSERT INTO furniture_stickies(id) VALUES ('" + num65 + "')"); s = "FFFF33"; client.runQuery(string.Concat(new object[] { "UPDATE furniture SET var = '", s, "' WHERE id = '", num65, "' LIMIT 1" })); } else if (stringManager.getStringPart(catalogueManager.getTemplate(num55).Sprite, 0, 10) == "roomdimmer") { client.runQuery(string.Concat(new object[] { "UPDATE furniture_moodlight SET roomid = '", this._roomID, "' WHERE id = '", num65, "' LIMIT 1" })); } this.Room.wallItemManager.addItem(num65, num55, str59, s, true); } } } else { strArray4 = currentPacket.Split(new char[] { ' ' }); num41 = int.Parse(strArray4[1]); num42 = int.Parse(strArray4[2]); num67 = byte.Parse(strArray4[3]); byte typeID = catalogueManager.getTemplate(num55).typeID; this.Room.floorItemManager.placeItem(num65, num55, num41, num42, typeID, num67); } } } return; } return; case "AC": if (((this._isOwner && !this._inPublicroom) && (this.Room != null)) && (this.roomUser != null)) { num65 = int.Parse(currentPacket.Split(new char[] { ' ' })[2]); if (this.Room.floorItemManager.containsItem(num65)) { this.Room.floorItemManager.removeItem(num65, this.userID); } else { if (!this.Room.wallItemManager.containsItem(num65) || !(stringManager.getStringPart(this.Room.wallItemManager.getItem(num65).Sprite, 0, 7) != "post.it")) { return; } this.Room.wallItemManager.removeItem(num65, this.userID); } this.refreshHand("update"); return; } return; case "AI": if (((this._hasRights && !this._inPublicroom) && (this.Room != null)) && (this.roomUser != null)) { num65 = int.Parse(currentPacket.Split(new char[] { ' ' })[0].Substring(2)); if (this.Room.floorItemManager.containsItem(num65)) { strArray4 = currentPacket.Split(new char[] { ' ' }); num41 = int.Parse(strArray4[1]); num42 = int.Parse(strArray4[2]); num67 = byte.Parse(strArray4[3]); this.Room.floorItemManager.relocateItem(num65, num41, num42, num67); } return; } return; case "CV": try { if ((!this._inPublicroom && (this.Room != null)) && (this.roomUser != null)) { num65 = int.Parse(currentPacket.Substring(4, Encoding.decodeB64(currentPacket.Substring(2, 2)))); int toStatus = Encoding.decodeVL64(currentPacket.Substring(num65.ToString().Length + 4)); this.Room.wallItemManager.toggleItemStatus(num65, toStatus); } } catch { } return; case "AJ": try { int num70; num65 = int.Parse(currentPacket.Substring(4, Encoding.decodeB64(currentPacket.Substring(2, 2)))); string str61 = currentPacket.Substring(num65.ToString().Length + 6); if (((((str61.ToLower() == "false") || (str61.ToLower() == "on")) || ((str61.ToLower() == "off") || (str61.ToLower() == "true"))) || (int.TryParse(str61, out num70) || (str61.ToLower() == "c"))) || (str61.ToLower() == "o")) { this.Room.floorItemManager.toggleItemStatus(num65, str61, this._hasRights); } else { this.Disconnect(); } } catch { } return; case "AN": if (((this._isOwner && !this._inPublicroom) && (this.Room != null)) && (this.roomUser != null)) { num65 = int.Parse(currentPacket.Substring(2)); if (this.Room.floorItemManager.containsItem(num65)) { using (client = Eucalypt.dbManager.GetClient()) { column = client.getColumn("SELECT itemid FROM furniture_presents WHERE id = '" + num65 + "'"); if (column.Table.Rows.Count > 0) { builder3 = new StringBuilder(); int num71 = 0; foreach (DataRow row in column.Table.Rows) { builder3.Append(" OR id = '" + Convert.ToString(row["itemid"]) + "'"); num71 = Convert.ToInt32(row["itemid"]); } client.runQuery("UPDATE furniture SET roomid = '-' WHERE " + builder3.ToString().Substring(4)); this.Room.floorItemManager.removeItem(num65, 0); catalogueManager.itemTemplate template = catalogueManager.getTemplate(client.getInt("SELECT tid FROM furniture WHERE id = '" + num71 + "'")); if (template.typeID > 0) { this.sendData(string.Concat(new object[] { "BA", template.Sprite, "\r", template.Sprite, "\r", template.Length, Convert.ToChar(30), template.Width, Convert.ToChar(30), template.Colour })); } else { this.sendData("BA" + template.Sprite + "\r" + template.Sprite + " " + template.Colour + "\r"); } } client.runQuery(string.Concat(new object[] { "DELETE FROM furniture_presents WHERE id = '", num65, "' LIMIT ", column.Table.Rows.Count })); client.runQuery("DELETE FROM furniture WHERE id = '" + num65 + "' LIMIT 1"); } this.refreshHand("last"); } return; } return; case "Bw": if (((this._isOwner && !this._inPublicroom) && (this.Room != null)) && (this.roomUser != null)) { num65 = Encoding.decodeVL64(currentPacket.Substring(2)); if (this.Room.floorItemManager.containsItem(num65)) { sprite = this.Room.floorItemManager.getItem(num65).Sprite; if ((sprite.Substring(0, 3).ToLower() == "cf_") || (sprite.Substring(0, 4).ToLower() == "cfc_")) { int num73 = 0; try { num73 = int.Parse(sprite.Split(new char[] { '_' })[1]); } catch { return; } this.Room.floorItemManager.removeItem(num65, 0); this._Credits += num73; this.sendData("@F" + this._Credits); using (client = Eucalypt.dbManager.GetClient()) { client.runQuery(string.Concat(new object[] { "UPDATE users SET credits = '", this._Credits, "' WHERE id = '", this.userID, "' LIMIT 1" })); } } } return; } return; case "AQ": if ((!this._inPublicroom && (this.Room != null)) && (this.roomUser != null)) { num65 = int.Parse(currentPacket.Substring(2)); if (this.Room.floorItemManager.containsItem(num65)) { floorItem item = this.Room.floorItemManager.getItem(num65); if ((((item.Z != 2) || (this.roomUser.X == (item.X + 1))) || (this.roomUser.Y == item.Y)) && (((item.Z != 4) || (this.roomUser.X == item.X)) || (this.roomUser.Y == (item.Y + 1)))) { this.roomUser.goalX = -1; this.Room.moveUser(this.roomUser, item.X, item.Y, true); } } return; } return; case @"@\": if ((!this._inPublicroom && (this.Room != null)) && (this.roomUser != null)) { num65 = int.Parse(currentPacket.Substring(2)); if (this.Room.floorItemManager.containsItem(num65)) { floorItem item2 = this.Room.floorItemManager.getItem(num65); if ((this.roomUser.X == item2.X) || (this.roomUser.Y == item2.Y)) { int num74; int num75; using (client = Eucalypt.dbManager.GetClient()) { num75 = client.getInt("SELECT teleportid FROM furniture WHERE id = '" + num65 + "'"); num74 = client.getInt("SELECT roomid FROM furniture WHERE id = '" + num75 + "'"); } if (num74 > 0) { new TeleporterUsageSleep(this.useTeleporter).BeginInvoke(item2, num75, num74, null, null); } } } return; } return; case "AM": if (((this.Room != null) && (this.roomUser != null)) && !this._inPublicroom) { num65 = int.Parse(currentPacket.Substring(2)); if (this.Room.floorItemManager.containsItem(num65)) { item3 = this.Room.floorItemManager.getItem(num65); sprite = item3.Sprite; if (((sprite == "edice") || (sprite == "edicehc")) && ((Math.Abs((int) (this.roomUser.X - item3.X)) <= 1) && (Math.Abs((int) (this.roomUser.Y - item3.Y)) <= 1))) { item3.Var = "0"; this.Room.sendData(string.Concat(new object[] { "AZ", num65, " ", num65 * 0x26 })); using (client = Eucalypt.dbManager.GetClient()) { client.runQuery("UPDATE furniture SET var = '0' WHERE id = '" + num65 + "' LIMIT 1"); } } } return; } return; case "AL": if (((this.Room != null) && (this.roomUser != null)) && !this._inPublicroom) { num65 = int.Parse(currentPacket.Substring(2)); if (this.Room.floorItemManager.containsItem(num65)) { item3 = this.Room.floorItemManager.getItem(num65); sprite = item3.Sprite; if (((sprite == "edice") || (sprite == "edicehc")) && ((Math.Abs((int) (this.roomUser.X - item3.X)) <= 1) && (Math.Abs((int) (this.roomUser.Y - item3.Y)) <= 1))) { this.Room.sendData("AZ" + num65); num76 = new Random(DateTime.Now.Millisecond).Next(1, 7); this.Room.sendData(string.Concat(new object[] { "AZ", num65, " ", (num65 * 0x26) + num76 }), 0x7d0); item3.Var = num76.ToString(); using (client = Eucalypt.dbManager.GetClient()) { client.runQuery(string.Concat(new object[] { "UPDATE furniture SET var = '", num76, "' WHERE id = '", num65, "' LIMIT 1" })); } } } return; } return; case "Cw": if (((this._hasRights && (this.Room != null)) && (this.roomUser != null)) && !this._inPublicroom) { num65 = Encoding.decodeVL64(currentPacket.Substring(2)); if (this.Room.wallItemManager.containsItem(num65)) { item4 = this.Room.wallItemManager.getItem(num65); if (item4.Sprite == "habbowheel") { num76 = new Random(DateTime.Now.Millisecond).Next(0, 10); this.Room.sendData(string.Concat(new object[] { "AU", num65, Convert.ToChar(9), "habbowheel", Convert.ToChar(9), " ", item4.wallPosition, Convert.ToChar(9), "-1" })); this.Room.sendData(string.Concat(new object[] { "AU", num65, Convert.ToChar(9), "habbowheel", Convert.ToChar(9), " ", item4.wallPosition, Convert.ToChar(9), num76 }), 0x109a); using (client = Eucalypt.dbManager.GetClient()) { client.runQuery(string.Concat(new object[] { "UPDATE furniture SET var = '", num76, "' WHERE id = '", num65, "' LIMIT 1" })); } } } return; } return; case "Dz": if (((this.Room != null) && (this.roomUser != null)) && !this._inPublicroom) { num65 = Encoding.decodeVL64(currentPacket.Substring(2)); if (this.Room.floorItemManager.containsItem(num65) && (this.Room.floorItemManager.getItem(num65).Sprite == "val_randomizer")) { num76 = new Random(DateTime.Now.Millisecond).Next(1, 5); this.Room.sendData(string.Concat(new object[] { "AX", num65, Convert.ToChar(2), "123456789", Convert.ToChar(2) })); this.Room.sendData(string.Concat(new object[] { "AX", num65, Convert.ToChar(2), num76, Convert.ToChar(2) }), 0x1388); using (client = Eucalypt.dbManager.GetClient()) { client.runQuery(string.Concat(new object[] { "UPDATE furniture SET var = '", num76, "' WHERE id = '", num65, "' LIMIT 1" })); } } return; } return; case "AS": if (((this.Room != null) && (this.roomUser != null)) && !this._inPublicroom) { num65 = int.Parse(currentPacket.Substring(2)); if (this.Room.wallItemManager.containsItem(num65)) { using (client = Eucalypt.dbManager.GetClient()) { str8 = client.getString("SELECT text FROM furniture_stickies WHERE id = '" + num65 + "'"); } this.sendData(string.Concat(new object[] { "@p", num65, Convert.ToChar(9), this.Room.wallItemManager.getItem(num65).Var, " ", str8 })); } return; } return; case "AT": if (((this._hasRights && (this.Room != null)) && (this.roomUser != null)) && !this._inPublicroom) { num65 = int.Parse(currentPacket.Substring(2, currentPacket.IndexOf("/") - 2)); if (this.Room.wallItemManager.containsItem(num65)) { item4 = this.Room.wallItemManager.getItem(num65); sprite = item4.Sprite; switch (sprite) { case "post.it": case "post.it.vd": { string str63 = "FFFFFF"; if (sprite == "post.it") { str63 = currentPacket.Substring((2 + num65.ToString().Length) + 1, 6); if ((((str63 != "FFFF33") && (str63 != "FF9CFF")) && (str63 != "9CFF9C")) && (str63 != "9CCEFF")) { return; } } str8 = currentPacket.Substring((2 + num65.ToString().Length) + 7); if (str8.Length <= 0x2ac) { using (client = Eucalypt.dbManager.GetClient()) { client.AddParamWithValue("text", stringManager.filterSwearwords(str8).Replace("/r", Convert.ToChar(13).ToString())); if (str63 != item4.Var) { client.runQuery(string.Concat(new object[] { "UPDATE furniture SET var = '", str63, "' WHERE id = '", num65, "' LIMIT 1" })); } item4.Var = str63; client.runQuery("UPDATE furniture_stickies SET text = @text WHERE id = '" + num65 + "' LIMIT 1"); } this.Room.sendData(string.Concat(new object[] { "AU", num65, Convert.ToChar(9), sprite, Convert.ToChar(9), " ", item4.wallPosition, Convert.ToChar(9), str63 })); } break; } } } return; } return; case "AU": if (((this._isOwner && (this.Room != null)) && (this.roomUser != null)) && !this._inPublicroom) { num65 = int.Parse(currentPacket.Substring(2)); if (this.Room.wallItemManager.containsItem(num65) && (stringManager.getStringPart(this.Room.wallItemManager.getItem(num65).Sprite, 0, 7) == "post.it")) { this.Room.wallItemManager.removeItem(num65, 0); using (client = Eucalypt.dbManager.GetClient()) { client.runQuery("DELETE FROM furniture_stickies WHERE id = '" + num65 + "' LIMIT 1"); } } return; } return; case "Ct": if ((this._isOwner && (this.Room != null)) && (this.Room.floorItemManager.soundMachineID > 0)) { this.sendData("EB" + soundMachineManager.getMachineSongList(this.Room.floorItemManager.soundMachineID)); } return; case "Cu": if ((this.Room != null) && (this.Room.floorItemManager.soundMachineID > 0)) { this.sendData("EC" + soundMachineManager.getMachinePlaylist(this.Room.floorItemManager.soundMachineID)); } return; case "C]": if ((this.Room != null) && (this.Room.floorItemManager.soundMachineID > 0)) { num77 = Encoding.decodeVL64(currentPacket.Substring(2)); this.sendData("Dl" + soundMachineManager.getSong(num77)); } return; case "Cs": if ((this._isOwner && (this.Room != null)) && (this.Room.floorItemManager.soundMachineID > 0)) { num9 = Encoding.decodeVL64(currentPacket.Substring(2)); if (num9 < 6) { currentPacket = currentPacket.Substring(Encoding.encodeVL64(num9).Length + 2); using (client = Eucalypt.dbManager.GetClient()) { client.runQuery("DELETE FROM soundmachine_playlists WHERE machineid = '" + this.Room.floorItemManager.soundMachineID + "'"); } builder3 = new StringBuilder(); num7 = 0; while (num7 < num9) { num77 = Encoding.decodeVL64(currentPacket); builder3.Append(string.Concat(new object[] { " ,('", this.Room.floorItemManager.soundMachineID, "','", num77, "','", num7, "')" })); currentPacket = currentPacket.Substring(Encoding.encodeVL64(num77).Length); num7++; } if (builder3.Length != 0) { using (client = Eucalypt.dbManager.GetClient()) { client.runQuery("INSERT INTO soundmachine_playlists(machineid,songid,pos) VALUES " + builder3.ToString().Substring(2)); } } this.Room.sendData("EC" + soundMachineManager.getMachinePlaylist(this.Room.floorItemManager.soundMachineID)); } } return; case "C~": if ((this._isOwner && (this.Room != null)) && (this.Room.floorItemManager.soundMachineID > 0)) { num77 = Encoding.decodeVL64(currentPacket.Substring(2)); flag9 = false; using (client = Eucalypt.dbManager.GetClient()) { flag9 = client.findsResult(string.Concat(new object[] { "SELECT id FROM soundmachine_songs WHERE id = '", num77, "' AND userid = '", this.userID, "' AND machineid = '", this.Room.floorItemManager.soundMachineID, "'" })); } if ((this._Credits <= 0) || !flag9) { this.sendData("AD"); return; } using (client = Eucalypt.dbManager.GetClient()) { current = client.getRow("SELECT title, length FROM soundmachine_songs WHERE id = '" + num77 + "'"); str40 = string.Concat(new object[] { Encoding.encodeVL64(num77), this._Username, "\n", DateTime.Today.Day, "\n", DateTime.Today.Month, "\n", DateTime.Today.Year, "\n", Convert.ToString(current["length"]), "\n", Convert.ToString(current["title"]) }); client.AddParamWithValue("tid", Config.Soundmachine_burnToDisk_diskTemplateID); client.AddParamWithValue("ownerid", this.userID); client.AddParamWithValue("var", str40); client.runQuery("INSERT INTO furniture(tid,ownerid,var) VALUES (@tid,@ownerid,@var)"); client.runQuery("UPDATE soundmachine_songs SET burnt = '1' WHERE id = '" + num77 + "' LIMIT 1"); client.runQuery("UPDATE users SET credits = credits - 1 WHERE id = '" + this.userID + "' LIMIT 1"); } this._Credits--; this.sendData("@F" + this._Credits); this.sendData("EB" + soundMachineManager.getMachineSongList(this.Room.floorItemManager.soundMachineID)); this.refreshHand("last"); } return; case "Cx": if ((this._isOwner && (this.Room != null)) && (this.Room.floorItemManager.soundMachineID > 0)) { num77 = Encoding.decodeVL64(currentPacket.Substring(2)); flag9 = false; using (client = Eucalypt.dbManager.GetClient()) { flag9 = client.findsResult(string.Concat(new object[] { "SELECT id FROM soundmachine_songs WHERE id = '", num77, "' AND machineid = '", this.Room.floorItemManager.soundMachineID, "'" })); } if (flag9) { using (client = Eucalypt.dbManager.GetClient()) { client.runQuery("UPDATE soundmachine_songs SET machineid = '0' WHERE id = '" + num77 + "' AND burnt = '1'"); client.runQuery("DELETE FROM soundmachine_songs WHERE id = '" + num77 + "' AND burnt = '0' LIMIT 1"); client.runQuery(string.Concat(new object[] { "DELETE FROM soundmachine_playlists WHERE machineid = '", this.Room.floorItemManager.soundMachineID, "' AND songid = '", num77, "'" })); } this.Room.sendData("EC" + soundMachineManager.getMachinePlaylist(this.Room.floorItemManager.soundMachineID)); } } return; case "Co": if ((this._isOwner && (this.Room != null)) && (this.Room.floorItemManager.soundMachineID > 0)) { this.songEditor = new virtualSongEditor(this.Room.floorItemManager.soundMachineID, this.userID); this.songEditor.loadSoundsets(); this.sendData("Dm" + this.songEditor.getSoundsets()); this.sendData("Dn" + soundMachineManager.getHandSoundsets(this.userID)); } return; case "C[": if ((((this.songEditor != null) && this._isOwner) && (this.Room != null)) && (this.Room.floorItemManager.soundMachineID > 0)) { int num78 = Encoding.decodeVL64(currentPacket.Substring(2)); num46 = Encoding.decodeVL64(currentPacket.Substring(Encoding.encodeVL64(num78).Length + 2)); if (((num46 > 0) && (num46 < 5)) && this.songEditor.slotFree(num46)) { this.songEditor.addSoundset(num78, num46); this.sendData("Dn" + soundMachineManager.getHandSoundsets(this.userID)); this.sendData("Dm" + this.songEditor.getSoundsets()); } } return; case @"C\": if ((((this.songEditor != null) && this._isOwner) && (this.Room != null)) && (this.Room.floorItemManager.soundMachineID > 0)) { num46 = Encoding.decodeVL64(currentPacket.Substring(2)); if (!this.songEditor.slotFree(num46)) { this.songEditor.removeSoundset(num46); this.sendData("Dm" + this.songEditor.getSoundsets()); this.sendData("Dn" + soundMachineManager.getHandSoundsets(this.userID)); } } return; case "Cp": if ((((this.songEditor != null) && this._isOwner) && (this.Room != null)) && (this.Room.floorItemManager.soundMachineID > 0)) { num25 = Encoding.decodeB64(currentPacket.Substring(2, 2)); str64 = currentPacket.Substring(4, num25); str9 = currentPacket.Substring(num25 + 6); num79 = soundMachineManager.calculateSongLength(str9); if (num79 != -1) { using (client = Eucalypt.dbManager.GetClient()) { client.AddParamWithValue("userid", this.userID); client.AddParamWithValue("machineid", this.Room.floorItemManager.soundMachineID); client.AddParamWithValue("title", stringManager.filterSwearwords(str64)); client.AddParamWithValue("length", num79); client.AddParamWithValue("data", str9); client.runQuery("INSERT INTO soundmachine_songs (userid,machineid,title,length,data) VALUES (@userid,@machineid,@title,@length,@data)"); } this.sendData("EB" + soundMachineManager.getMachineSongList(this.Room.floorItemManager.soundMachineID)); this.sendData(string.Concat(new object[] { "EK", Encoding.encodeVL64(this.Room.floorItemManager.soundMachineID), str64, Convert.ToChar(2) })); } } return; case "Cq": if ((this._isOwner && (this.Room != null)) && (this.Room.floorItemManager.soundMachineID > 0)) { num77 = Encoding.decodeVL64(currentPacket.Substring(2)); this.sendData("Dl" + soundMachineManager.getSong(num77)); this.songEditor = new virtualSongEditor(this.Room.floorItemManager.soundMachineID, this.userID); this.sendData("Dm" + this.songEditor.getSoundsets()); this.sendData("Dn" + soundMachineManager.getHandSoundsets(this.userID)); } return; case "Cr": if ((((this.songEditor != null) && this._isOwner) && (this.Room != null)) && (this.Room.floorItemManager.soundMachineID > 0)) { num77 = Encoding.decodeVL64(currentPacket.Substring(2)); using (client = Eucalypt.dbManager.GetClient()) { if (client.findsResult(string.Concat(new object[] { "SELECT id FROM soundmachine_songs WHERE id = '", num77, "' AND userid = '", this.userID, "' AND machineid = '", this.Room.floorItemManager.soundMachineID, "'" }))) { num40 = Encoding.encodeVL64(num77).Length; num25 = Encoding.decodeB64(currentPacket.Substring(num40 + 2, 2)); str64 = currentPacket.Substring(num40 + 4, num25); str9 = currentPacket.Substring((num40 + num25) + 6); num79 = soundMachineManager.calculateSongLength(str9); if (num79 != -1) { client.AddParamWithValue("id", num77); client.AddParamWithValue("title", stringManager.filterSwearwords(str64)); client.AddParamWithValue("length", num79); client.AddParamWithValue("data", str9); client.runQuery("UPDATE soundmachine_songs SET title = @title,data = @data,length = @length WHERE id = @id LIMIT 1"); this.sendData("ES"); this.sendData("EB" + soundMachineManager.getMachineSongList(this.Room.floorItemManager.soundMachineID)); this.Room.sendData("EC" + soundMachineManager.getMachinePlaylist(this.Room.floorItemManager.soundMachineID)); } } } } return; case "AG": if (((this.Room != null) || (this.roomUser != null)) || (this._tradePartnerRoomUID == -1)) { if (Config.enableTrading) { int roomUID = int.Parse(currentPacket.Substring(2)); if (this.Room.containsUser(roomUID)) { user7 = this.Room.getUser(roomUID); if (!user7.statusManager.containsStatus("trd")) { this._tradePartnerRoomUID = roomUID; this.statusManager.addStatus("trd", ""); this.roomUser.Refresh(); user7._tradePartnerRoomUID = this.roomUser.roomUID; user7.statusManager.addStatus("trd", ""); user7.roomUser.Refresh(); this.refreshTradeBoxes(); user7.refreshTradeBoxes(); } } return; } this.sendData("BK" + stringManager.getString("trading_disabled")); } return; case "AH": if ((((this.Room != null) && (this.roomUser != null)) && (this._tradePartnerRoomUID != -1)) && this.Room.containsUser(this._tradePartnerRoomUID)) { num65 = int.Parse(currentPacket.Substring(2)); using (client = Eucalypt.dbManager.GetClient()) { num55 = client.getInt(string.Concat(new object[] { "SELECT tid FROM furniture WHERE id = '", num65, "' AND ownerid = '", this.userID, "' AND roomid = '0'" })); } if (num55 != 0) { this._tradeItems.Add(num65); user7 = this.Room.getUser(this._tradePartnerRoomUID); this._tradeAccept = false; user7._tradeAccept = false; this.refreshTradeBoxes(); user7.refreshTradeBoxes(); } } return; case "AD": if ((((this.Room != null) && (this.roomUser != null)) && (this._tradePartnerRoomUID != -1)) && this.Room.containsUser(this._tradePartnerRoomUID)) { user7 = this.Room.getUser(this._tradePartnerRoomUID); this._tradeAccept = false; user7._tradeAccept = false; this.refreshTradeBoxes(); user7.refreshTradeBoxes(); } return; case "AE": if ((((this.Room != null) && (this.roomUser != null)) && (this._tradePartnerRoomUID != -1)) && this.Room.containsUser(this._tradePartnerRoomUID)) { user7 = this.Room.getUser(this._tradePartnerRoomUID); this._tradeAccept = true; this.refreshTradeBoxes(); user7.refreshTradeBoxes(); if (user7._tradeAccept) { List.Enumerator enumerator2; builder3 = new StringBuilder("'a'='b'"); using (enumerator2 = this._tradeItems.GetEnumerator()) { while (enumerator2.MoveNext()) { num7 = enumerator2.Current; builder3.Append(" OR id = '" + num7 + "'"); } } using (client = Eucalypt.dbManager.GetClient()) { client.runQuery(string.Concat(new object[] { "UPDATE furniture SET ownerid = '", user7.userID, "',roomid = '0' WHERE", builder3.ToString() })); } builder3.Remove(7, builder3.Length - 7); using (enumerator2 = user7._tradeItems.GetEnumerator()) { while (enumerator2.MoveNext()) { num7 = enumerator2.Current; builder3.Append(" OR id = '" + num7 + "'"); } } using (client = Eucalypt.dbManager.GetClient()) { client.runQuery(string.Concat(new object[] { "UPDATE furniture SET ownerid = '", this.userID, "',roomid = '0' WHERE", builder3.ToString() })); } this.abortTrade(); } } return; case "AF": if ((((this.Room != null) && (this.roomUser != null)) && (this._tradePartnerRoomUID != -1)) && this.Room.containsUser(this._tradePartnerRoomUID)) { this.abortTrade(); this.refreshHand("update"); } return; case "B_": if ((this.Room != null) && (this.Room.Lobby != null)) { this.sendData("Ch" + this.Room.Lobby.gameList()); } return; case "B`": if ((((this.Room != null) && (this.roomUser != null)) && (this.Room.Lobby != null)) && (this.gamePlayer == null)) { int key = Encoding.decodeVL64(currentPacket.Substring(2)); if (this.Room.Lobby.Games.ContainsKey(key)) { this.gamePlayer = new Holo.Virtual.Rooms.Games.gamePlayer(this, this.roomUser.roomUID, (Game) this.Room.Lobby.Games[key]); this.gamePlayer.Game.Subviewers.Add(this.gamePlayer); this.sendData("Ci" + this.gamePlayer.Game.Sub); } } return; case "Bb": if ((((this.Room != null) && (this.roomUser != null)) && (this.Room.Lobby != null)) && (this.gamePlayer == null)) { if (this._Tickets <= 1) { this.sendData("ClJ"); return; } if (!this.Room.Lobby.validGamerank(this.roomUser.gamePoints)) { this.sendData("ClK"); return; } if (!this.Room.Lobby.isBattleBall) { this.sendData(string.Concat(new object[] { "CkRAsecondsUntilRestart", Convert.ToChar(2), "HIRGIHHfieldType", Convert.ToChar(2), "HKIIIISAnumTeams", Convert.ToChar(2), "HJJIIIPAgameLengthChoice", Convert.ToChar(2), "HJIIIIKname", Convert.ToChar(2), "IJ", Convert.ToChar(2), "HsecondsUntilStart", Convert.ToChar(2), "HIRBIHH" })); return; } this.sendData("Ck" + this.Room.Lobby.getCreateGameSettings()); } return; case "Bc": if ((((this.Room != null) && (this.roomUser != null)) && (this.Room.Lobby != null)) && (this.gamePlayer == null)) { if (this._Tickets <= 1) { this.sendData("ClJ"); return; } if (!this.Room.Lobby.validGamerank(this.roomUser.gamePoints)) { this.sendData("ClK"); return; } try { int mapID = -1; int teamAmount = -1; int[] enabledPowerups = null; str10 = ""; int num84 = Encoding.decodeVL64(currentPacket.Substring(2)); currentPacket = currentPacket.Substring(Encoding.encodeVL64(num84).Length + 2); for (num7 = 0; num7 < num84; num7++) { int num87; int num88; num85 = Encoding.decodeB64(currentPacket.Substring(0, 2)); string str65 = currentPacket.Substring(2, num85); if (!(currentPacket.Substring(num85 + 2, 1) == "H")) { goto Label_B75F; } int num86 = Encoding.decodeVL64(currentPacket.Substring(num85 + 3)); str69 = str65; if (str69 != null) { if (!(str69 == "fieldType")) { if (str69 == "numTeams") { goto Label_B736; } } else { mapID = num86; } } goto Label_B73C; Label_B736: teamAmount = num86; Label_B73C: num87 = Encoding.encodeVL64(num86).Length; currentPacket = currentPacket.Substring((num85 + num87) + 3); continue; Label_B75F: num88 = Encoding.decodeB64(currentPacket.Substring(num85 + 3, 2)); string str66 = currentPacket.Substring(num85 + 5, num88); str69 = str65; if (str69 != null) { if (!(str69 == "allowedPowerups")) { if (str69 == "name") { goto Label_B822; } } else { string[] strArray5 = str66.Split(new char[] { ',' }); enabledPowerups = new int[strArray5.Length]; for (int k = 0; k < strArray5.Length; k++) { int iD = int.Parse(strArray5[k]); if (!this.Room.Lobby.allowsPowerup(iD)) { return; } enabledPowerups[k] = iD; } } } goto Label_B82D; Label_B822: str10 = stringManager.filterSwearwords(str66); Label_B82D: currentPacket = currentPacket.Substring((num85 + num88) + 5); } if (((mapID != -1) && (teamAmount != -1)) && (str10 != "")) { this.gamePlayer = new Holo.Virtual.Rooms.Games.gamePlayer(this, this.roomUser.roomUID, null); this.Room.Lobby.createGame(this.gamePlayer, str10, mapID, teamAmount, enabledPowerups); } } catch { } } return; case "Be": if ((((this.Room != null) && (this.Room.Lobby != null)) && (this.gamePlayer != null)) && (this.gamePlayer.Game.State == Game.gameState.Waiting)) { if (this._Tickets <= 1) { this.sendData("ClJ"); return; } if (!this.Room.Lobby.validGamerank(this.roomUser.gamePoints)) { this.sendData("ClK"); return; } num85 = Encoding.decodeVL64(currentPacket.Substring(2)); int teamID = Encoding.decodeVL64(currentPacket.Substring(Encoding.encodeVL64(num85).Length + 2)); if ((teamID == this.gamePlayer.teamID) || !this.gamePlayer.Game.teamHasSpace(teamID)) { this.sendData("ClH"); return; } if (this.gamePlayer.teamID == -1) { this.gamePlayer.Game.Subviewers.Remove(this.gamePlayer); } this.gamePlayer.Game.movePlayer(this.gamePlayer, this.gamePlayer.teamID, teamID); } return; case "Bg": this.leaveGame(); return; case "Bh": if ((((this.Room != null) && (this.Room.Lobby != null)) && ((this.gamePlayer != null) && (this.gamePlayer.Game != null))) && (this.gamePlayer == this.gamePlayer.Game.Owner)) { int num92 = Encoding.decodeVL64(currentPacket.Substring(2)); for (num7 = 0; num7 < this.gamePlayer.Game.Teams.Length; num7++) { foreach (Holo.Virtual.Rooms.Games.gamePlayer player in this.gamePlayer.Game.Teams[num7]) { if (player.roomUID == num92) { player.sendData("ClRA"); this.gamePlayer.Game.movePlayer(player, num7, -1); return; } } } } return; case "Bj": if ((((this.Room != null) && (this.Room.Lobby != null)) && (this.gamePlayer != null)) && (this.gamePlayer == this.gamePlayer.Game.Owner)) { this.gamePlayer.Game.startGame(); } return; case "Bk": if (((this.gamePlayer != null) && (this.gamePlayer.Game.State == Game.gameState.Started)) && (this.gamePlayer.teamID != -1)) { this.gamePlayer.goalX = Encoding.decodeVL64(currentPacket.Substring(3)); this.gamePlayer.goalY = Encoding.decodeVL64(currentPacket.Substring(Encoding.encodeVL64(this.gamePlayer.goalX).Length + 3)); } return; case "Bl": if (((this.gamePlayer != null) && (this.gamePlayer.Game.State == Game.gameState.Ended)) && (this.gamePlayer.teamID != -1)) { this.gamePlayer.Game.sendData("BK" + this._Username + " wants to replay!"); } return; case "Ej": case "Ek": case "FC": return; case "EW": if (this._isOwner || this._hasRights) { roomManager.moodlight.setSettings(this._roomID, false, 0, 0, null, 0); } return; case "EU": if (this._isOwner || this._hasRights) { string str67 = roomManager.moodlight.getSettings(this._roomID); if (str67 != null) { this.sendData("Em" + str67); } return; } return; case "EV": if (this._isOwner || this._hasRights) { int presetID = Encoding.decodeVL64(currentPacket.Substring(2, 1)); int bgState = Encoding.decodeVL64(currentPacket.Substring(3, 1)); string presetColour = currentPacket.Substring(6, Encoding.decodeB64(currentPacket.Substring(4, 2))); int alphaDarkF = Encoding.decodeVL64(currentPacket.Substring(presetColour.Length + 6)); roomManager.moodlight.setSettings(this._roomID, true, presetID, bgState, presetColour, alphaDarkF); } return; } } else { switch (currentPacket.Substring(0, 2)) { case "CD": this.pingOK = true; return; case "CN": this.sendData("DUIH"); return; case "CJ": this.sendData(string.Concat(new object[] { "DAQBHHIIKHJIPAHQAdd-MM-yyyy", Convert.ToChar(2), "SAHPBhttp://www.vista4life.com", Convert.ToChar(2), "QBH" })); return; case "_R": this.sendData(string.Concat(new object[] { "DAQBHIIIKHJIPAIQAdd-MM-yyyy", Convert.ToChar(2), "SAHPB/client", Convert.ToChar(2), "QBHIJWVVVSNKQCFUBJASMSLKUUOJCOLJQPNSBIRSVQBRXZQOTGPMNJIHLVJCRRULBLUO" })); return; case "CL": int num; using (client = Eucalypt.dbManager.GetClient()) { client.AddParamWithValue("sso", currentPacket.Substring(4)); num = client.getInt("SELECT id FROM users WHERE ticket_sso = @sso"); } if (num == 0) { this.Disconnect(); } else { string str = userManager.getBanReason(num); if (str != "") { this.sendData("@c" + str); this.Disconnect(0x3e8); } else { this.userID = num; using (client = Eucalypt.dbManager.GetClient()) { current = client.getRow("SELECT name,figure,sex,mission,rank,consolemission FROM users WHERE id = '" + this.userID + "'"); } this._Username = Convert.ToString(current[0]); this._Figure = Convert.ToString(current[1]); this._Sex = Convert.ToChar(current[2]); this._Mission = Convert.ToString(current[3]); this._Rank = Convert.ToByte(current[4]); this._consoleMission = Convert.ToString(current[5]); userManager.addUser(num, this); this._isLoggedIn = true; this.sendData(string.Concat(new object[] { "DAQBHIIIKHJIPAIQAdd-MM-yyyy", Convert.ToChar(2), "SAHPB/client", Convert.ToChar(2), "QBH" })); using (client = Eucalypt.dbManager.GetClient()) { column = client.getColumn("SELECT fuseright FROM users_fuserights WHERE userid = " + this.userID); } this._fuserights = new List(); foreach (DataRow row2 in column.Table.Rows) { this._fuserights.Add(Convert.ToString(row2[0])); } this.sendData("@B" + rankManager.fuseRights(this._Rank, this.userID)); this.sendData("DbIH"); this.sendData("@C"); if (Config.enableWelcomeMessage) { this.sendData("BK" + stringManager.getString("welcomemessage_text")); } } } return; } this.Disconnect(); } } private void refresh_cat() { catalogueManager.Init(true); } private void refresh_config() { Config.Init(true); } private void refresh_eco() { recyclerManager.Init(true); } private void refresh_filter() { stringManager.initFilter(true); } private void refresh_fuse() { rankManager.Init(true); } private void refresh_strings() { stringManager.Init("en", true); } internal void refreshAppearance(bool Reload, bool refreshSettings, bool refreshRoom) { if (Reload) { DataRow row; using (DatabaseClient client = Eucalypt.dbManager.GetClient()) { row = client.getRow("SELECT figure,sex,mission FROM users WHERE id = '" + this.userID + "'"); } this._Figure = Convert.ToString(row["figure"]); this._Sex = Convert.ToChar(row["sex"]); this._Mission = Convert.ToString(row["mission"]); } if (refreshSettings) { this.sendData(string.Concat(new object[] { "@E", this.connectionID, Convert.ToChar(2), this._Username, Convert.ToChar(2), this._Figure, Convert.ToChar(2), this._Sex, Convert.ToChar(2), this._Mission, Convert.ToChar(2), Convert.ToChar(2), "PCch=s02/53,51,44", Convert.ToChar(2), "HI" })); } if ((refreshRoom && (this.Room != null)) && (this.roomUser != null)) { this.Room.sendData(string.Concat(new object[] { "DJ", Encoding.encodeVL64(this.roomUser.roomUID), this._Figure, Convert.ToChar(2), this._Sex, Convert.ToChar(2), this._Mission, Convert.ToChar(2) })); } } internal void refreshBadges() { DataColumn column; DataColumn column2; int num; this._Badges.Clear(); this._badgeSlotIDs.Clear(); using (DatabaseClient client = Eucalypt.dbManager.GetClient()) { column = client.getColumn("SELECT badgeid FROM users_badges WHERE userid = '" + this.userID + "' ORDER BY slotid ASC"); column2 = client.getColumn("SELECT slotid FROM users_badges WHERE userid = '" + this.userID + "' ORDER BY slotid ASC"); } string[] strArray = dataHandling.dColToArray(column); string[] strArray2 = dataHandling.dColToArray(column2); StringBuilder builder = new StringBuilder(); builder.Append(Encoding.encodeVL64(strArray.Length)); for (num = 0; num < strArray.Length; num++) { builder.Append(strArray[num]); builder.Append(Convert.ToChar(2)); this._Badges.Add(strArray[num]); } for (num = 0; num < strArray.Length; num++) { if (Convert.ToInt32(strArray2[num]) > 0) { builder.Append(Encoding.encodeVL64(Convert.ToInt32(strArray2[num]))); builder.Append(strArray[num]); builder.Append(Convert.ToChar(2)); this._badgeSlotIDs.Add(Convert.ToInt32(strArray2[num])); } else { this._badgeSlotIDs.Add(0); } } this.sendData("Ce" + builder.ToString()); this.sendData(string.Concat(new object[] { "FtSHJIACH_Graduate1", Convert.ToChar(2), "PAIACH_Login1", Convert.ToChar(2), "PAJACH_Login2", Convert.ToChar(2), "PAKACH_Login3", Convert.ToChar(2), "PAPAACH_Login4", Convert.ToChar(2), "PAQAACH_Login5", Convert.ToChar(2), "PBIACH_RoomEntry1", Convert.ToChar(2), "PBJACH_RoomEntry2", Convert.ToChar(2), "PBKACH_RoomEntry3", Convert.ToChar(2), "SBRAACH_RegistrationDuration6", Convert.ToChar(2), "SBSAACH_RegistrationDuration7", Convert.ToChar(2), "SBPBACH_RegistrationDuration8", Convert.ToChar(2), "SBQBACH_RegistrationDuration9", Convert.ToChar(2), "SBRBACH_RegistrationDuration10", Convert.ToChar(2), "RAIACH_AvatarLooks1", Convert.ToChar(2), "IJGLB", Convert.ToChar(2), "IKGLC", Convert.ToChar(2), "IPAGLD", Convert.ToChar(2), "IQAGLE", Convert.ToChar(2), "IRAGLF", Convert.ToChar(2), "ISAGLG", Convert.ToChar(2), "IPBGLH", Convert.ToChar(2), "IQBGLI", Convert.ToChar(2), "IRBGLJ", Convert.ToChar(2), "SAIACH_Student1", Convert.ToChar(2), "PCIHC1", Convert.ToChar(2), "PCJHC2", Convert.ToChar(2), "PCKHC3", Convert.ToChar(2), "PCPAHC4", Convert.ToChar(2), "PCQAHC5", Convert.ToChar(2), "QAIACH_GamePlayed1", Convert.ToChar(2), "QAJACH_GamePlayed2", Convert.ToChar(2), "QAKACH_GamePlayed3", Convert.ToChar(2), "QAPAACH_GamePlayed4", Convert.ToChar(2), "QAQAACH_GamePlayed5", Convert.ToChar(2) })); this.sendData("DtIH" + Convert.ToChar(1) + "FCH"); } internal void refreshClub() { DataRow row; int i = 0; int num2 = 0; int num3 = 0; using (DatabaseClient client = Eucalypt.dbManager.GetClient()) { row = client.getRow("SELECT months_expired,months_left,date_monthstarted FROM users_club WHERE userid = '" + this.userID + "' LIMIT 1"); } if (row.Table.Columns.Count > 0) { num2 = Convert.ToInt32(row["months_expired"]); num3 = Convert.ToInt32(row["months_left"]) - 1; i = ((int) DateTime.Parse(Convert.ToString(row["date_monthstarted"]), new CultureInfo("en-GB")).Subtract(DateTime.Now).TotalDays) + 0x20; this._clubMember = true; } this.sendData(string.Concat(new object[] { "@Gclub_habbo", Convert.ToChar(2), Encoding.encodeVL64(i), Encoding.encodeVL64(num2), Encoding.encodeVL64(num3), "I" })); } internal void refreshGroupStatus() { DatabaseClient client; using (client = Eucalypt.dbManager.GetClient()) { this._groupID = client.getInt("SELECT groupid FROM groups_memberships WHERE userid = '" + this.userID + "' AND is_current = '1'"); } if (this._groupID > 0) { using (client = Eucalypt.dbManager.GetClient()) { this._groupMemberRank = client.getInt(string.Concat(new object[] { "SELECT member_rank FROM groups_memberships WHERE userid = '", this.userID, "' AND groupID = '", this._groupID, "'" })); } } } internal void refreshHand(string Mode) { DataTable table; using (DatabaseClient client = Eucalypt.dbManager.GetClient()) { table = client.getTable("SELECT furniture.id,furniture.tid,furniture.var FROM users, furniture WHERE furniture.ownerid = users.id AND furniture.ownerid = '" + this.userID + "' AND furniture.roomid = '0' ORDER BY id ASC"); } StringBuilder builder = new StringBuilder("BL"); int num = 0; int count = table.Rows.Count; string str2 = Mode; if (str2 != null) { if (!(str2 == "next")) { if (str2 == "prev") { this._handPage--; goto Label_00D9; } if (str2 == "last") { this._handPage = (count - 1) / 9; goto Label_00D9; } if (str2 == "update") { goto Label_00D9; } } else { this._handPage++; goto Label_00D9; } } this._handPage = 0; Label_00D9: try { if (count <= 0) { goto Label_04E0; } Label_00EC: num = this._handPage * 9; if (count > (num + 9)) { count = num + 9; } if ((num > count) || (num == count)) { this._handPage--; goto Label_00EC; } string colour = ""; for (int i = num; i < count; i++) { DataRow row = table.Rows[i]; catalogueManager.itemTemplate template = catalogueManager.getTemplate(Convert.ToInt32(row["tid"])); char ch = '1'; if (!template.isRecycleable) { ch = '0'; } if (template.typeID == 0) { colour = template.Colour; if ((template.Sprite == "post.it") || (template.Sprite == "post.it.vd")) { colour = Convert.ToString(row["var"]); } builder.Append(string.Concat(new object[] { "SI", Convert.ToChar(30).ToString(), Convert.ToString(row["id"]), Convert.ToChar(30).ToString(), i, Convert.ToChar(30).ToString(), "I", Convert.ToChar(30).ToString(), Convert.ToString(row["id"]), Convert.ToChar(30).ToString(), template.Sprite, Convert.ToChar(30).ToString(), colour, Convert.ToChar(30).ToString(), ch, "/" })); } else { builder.Append(string.Concat(new object[] { "SI", Convert.ToChar(30).ToString(), Convert.ToString(row["id"]), Convert.ToChar(30).ToString(), i, Convert.ToChar(30).ToString(), "S", Convert.ToChar(30).ToString(), Convert.ToString(row["id"]), Convert.ToChar(30).ToString(), template.Sprite, Convert.ToChar(30).ToString(), template.Length, Convert.ToChar(30).ToString(), template.Width, Convert.ToChar(30).ToString(), Convert.ToString(row["var"]), Convert.ToChar(30).ToString(), template.Colour, Convert.ToChar(30).ToString(), ch, Convert.ToChar(30).ToString(), template.Sprite, Convert.ToChar(30).ToString(), "/" })); } } Label_04E0: builder.Append("\r" + table.Rows.Count); this.sendData(builder.ToString()); } catch { this.sendData("BL\r0"); } } internal void refreshTradeBoxes() { if (((this.Room != null) && this.Room.containsUser(this._tradePartnerRoomUID)) && (this.roomUser != null)) { virtualUser user = this.Room.getUser(this._tradePartnerRoomUID); StringBuilder builder = new StringBuilder(string.Concat(new object[] { "Al", this._Username, Convert.ToChar(9), this._tradeAccept.ToString().ToLower(), Convert.ToChar(9) })); if (this._tradeItems.Count > 0) { builder.Append(catalogueManager.tradeItemList(this._tradeItems)); } builder.Append(string.Concat(new object[] { Convert.ToChar(13), user._Username, Convert.ToChar(9), user._tradeAccept.ToString().ToLower(), Convert.ToChar(9) })); if (this._tradeItems.Count > 0) { builder.Append(catalogueManager.tradeItemList(user._tradeItems)); } this.sendData(builder.ToString()); } } internal void refreshValueables(bool Credits, bool Tickets) { DatabaseClient client; if (Credits) { using (client = Eucalypt.dbManager.GetClient()) { this._Credits = client.getInt("SELECT credits FROM users WHERE id = '" + this.userID + "' LIMIT 1"); } this.sendData("@F" + this._Credits); } if (Tickets) { using (client = Eucalypt.dbManager.GetClient()) { this._Tickets = client.getInt("SELECT tickets FROM users WHERE id = '" + this.userID + "' LIMIT 1"); } this.sendData("A|" + this._Tickets); } } internal void sendData(string Data) { try { byte[] bytes = Encoding.Default.GetBytes(Data + Convert.ToChar(1)); this.connectionSocket.BeginSend(bytes, 0, bytes.Length, SocketFlags.None, new AsyncCallback(this.sentData), null); } catch { this.Disconnect(); } } private void sentData(IAsyncResult iAr) { try { this.connectionSocket.EndSend(iAr); } catch { this.Disconnect(); } } private void showBrb() { int num = 0; try { bool flag; goto Label_0084; Label_0006: this.refreshAppearance(false, false, true); this.Room.sendShout(this.roomUser, "\n\n\n I'm brb! .\n I'm already gone for: " + ((num / 2)).ToString() + " minutes.\n\n\n ik ben al 00 minuten weg "); num++; if (num > 30) { this.Room.sendShout(this.roomUser, "\n\n\n I'm gone for over 30 minutes now. "); Thread.CurrentThread.Abort(); this.brbLooper = null; } Thread.Sleep(0x7530); Label_0084: flag = true; goto Label_0006; } catch { Thread.CurrentThread.Abort(); this.brbLooper = null; } } private string Stripslash(string p) { throw new NotImplementedException(); } private void useTeleporter(floorItem Teleporter1, int idTeleporter2, int roomIDTeleporter2) { try { this.roomUser.walkLock = true; string sprite = Teleporter1.Sprite; if (roomIDTeleporter2 == this._roomID) { floorItem item = this.Room.floorItemManager.getItem(idTeleporter2); Thread.Sleep(500); this.Room.sendData(string.Concat(new object[] { "AY", Teleporter1.ID, "/", this._Username, "/", sprite })); this.Room.sendData(string.Concat(new object[] { @"A\", item.ID, "/", this._Username, "/", sprite })); this.roomUser.X = item.X; this.roomUser.Y = item.Y; this.roomUser.H = item.H; this.roomUser.Z1 = item.Z; this.roomUser.Z2 = item.Z; this.roomUser.Refresh(); this.roomUser.walkLock = false; } else { this._teleporterID = idTeleporter2; this.sendData("@~" + Encoding.encodeVL64(idTeleporter2) + Encoding.encodeVL64(roomIDTeleporter2)); this.Room.sendData(string.Concat(new object[] { "AY", Teleporter1.ID, "/", this._Username, "/", sprite })); } } catch { } } internal string connectionRemoteIP { get { return this.connectionSocket.RemoteEndPoint.ToString().Split(new char[] { ':' })[0]; } } private delegate void TeleporterUsageSleep(floorItem Teleporter1, int idTeleporter2, int roomIDTeleporter2); private delegate void timedDisconnector(int ms); } }