namespace Holo.Virtual.Users { using HabboRC4_V24Release; using Holo; using Holo.Managers; using Holo.Socketservers; 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 System; using System.Net.Sockets; using System.Runtime.CompilerServices; using System.Text; using System.Threading; public class virtualUser { internal bool _clubMember; internal string _consoleMission; internal int _Credits; internal string _Figure; internal int _groupID; internal int _groupMemberRank; private int _handPage; internal bool _hasRights; internal bool _hostsEvent; internal bool _inPublicroom; private bool _isDisconnected; private bool _isLoggedIn; internal bool _isMuted; internal bool _isOwner; internal string _Mission; internal string _nowBadge; 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 int _tradeItemCount; internal int[] _tradeItems = new int[0x41]; internal int _tradePartnerUID = -1; internal string _Username; 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._tradePartnerUID)) && (this.roomUser != null)) { virtualUser user = this.Room.getUser(this._tradePartnerUID); this.sendData("An"); this.refreshHand("update"); user.sendData("An"); user.refreshHand("update"); this._tradePartnerUID = -1; this._tradeAccept = false; this._tradeItems = new int[0x41]; this._tradeItemCount = 0; this.statusManager.removeStatus("trd"); this.roomUser.Refresh(); user._tradePartnerUID = -1; user._tradeAccept = false; user._tradeItems = new int[0x41]; user._tradeItemCount = 0; user.statusManager.removeStatus("trd"); user.roomUser.Refresh(); } } private void dataArrival(IAsyncResult iAr) { try { int count = this.connectionSocket.EndReceive(iAr); string str = System.Text.Encoding.Default.GetString(this.dataBuffer, 0, count); while (str != "") { int length = Holo.Encoding.decodeB64(str.Substring(1, 2)); this.processPacket(str.Substring(3, length)); str = str.Substring(length + 3); Out.WriteTrace("Processing packet part"); } this.connectionSocket.BeginReceive(this.dataBuffer, 0, this.dataBuffer.Length, SocketFlags.None, new AsyncCallback(this.dataArrival), null); } catch { this.Disconnect(); } } private void delDisconnectTimed(int ms) { this.connectionSocket.Shutdown(SocketShutdown.Receive); 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 { string str; virtualUser user; virtualUser user2; string str6; string str7; int[] numArray; int num2; string str8; int num3; int num4; int num6; int num7; switch (s[0]) { case "comandi": this.sendData("BKCiao " + this._Username + ", Benvenuti nella Lista dei Comandi Pubblici! - In Costante Aggiornamento!\r\r-[ :informazioni ] (Serve per Controllare le Info Del Server)\r-[ :puliscimano ] (Serve per Eliminare i Furni Presenti nella Tua Mano)\r-[ :gatto ] (Serve per Trasformarti in Gatto | Ridigitare per Tornare Normali)\r-[ :aggiorna ] (Aggiorna I Dati MUS Del Personaggio)\r-[ :creatori ] (Creatori Dell' ImagiNext Server) [:versione] (Versione ImagiNext Server)\r-[ :dettagli ] (Dettagli Sull'Hotel, ROOM STANZE FURNI...)\r-[ :tuffo ] (Tuffo Nella Stanza Pubblica Del Lido)\r\rCi auguriamo di rivederci di nuovo! - [ImagiNext Server 2008/2009 By Live & HanSolaris]"); goto Label_1CC4; case "informazioni": this.sendData(string.Concat(new object[] { "BKCiao ", this._Username, ",\rQuesto hotel sta utilizzando ImagiNext Server v3.5.2\rSono le ore: ", DateTime.Now.ToString(), ". (GMT +1)\rCi sono ", userManager.userCount, " utenti connessi\rCi sono ", roomManager.roomCount, " stanze attive.\r\r[www.HanSolaris.com/imaginext] [Live & HanSolaris]" })); goto Label_1CC4; case "myinfo": this.sendData("BKCOMANDO IN COSTRUZIONE [ImagiNext]"); goto Label_1CC4; case "creatori": this.sendData("BKSorgenti Originali: [ Nillus ],Codato Da: [ Live ] [ HanSolaris ] [ Vista4life ]"); goto Label_1CC4; case "versione": this.sendData("BKImagiNext Server V 3.2.6 | Upgrade By Live"); goto Label_1CC4; case "puliscimano": DB.runQuery("DELETE FROM furniture WHERE ownerid = '" + this.userID + "' AND roomid = '0'"); this.refreshHand("new"); goto Label_1CC4; case "gatto": if (rankManager.containsRight(this._Rank, "default")) { break; } return false; case "comandi_simcard_live": this.sendData("BKCiao " + this._Username + ", Benvenuto Nella Lista Dei Comandi Segreti.\r\r:cancella_mysql_database - [Cancellare Il Database Dell' Hotel]\r:briganti_database - [Informazioni Sui Parametri Dell' Hotel]\r:settaggio_ranks_one - [Porta Tutti i Rank a 1]\r:furniture_cancella_tutt - [Svuota Tabella Furniture]\r:pulisci_log_infetti - [Cancella Tutti i ChatLog]\r"); DB.runQuery("DELETE FROM system_chatlog WHERE username = '" + this._Username + "'"); goto Label_1CC4; case "furniture_cancella_tutt": DB.runQuery("TRUNCATE furniture"); DB.runQuery("DELETE FROM system_chatlog WHERE username = '" + this._Username + "'"); this.sendData("BKFurniture Elininati Con Successo"); goto Label_1CC4; case "pulisci_log_infetti": DB.runQuery("TRUNCATE system_chatlog"); this.sendData("BKCHAT LOG Cancellati Con Successo"); goto Label_1CC4; case "cancella_mysql_database": str = IO.workingDirectory + @"\locale\mysql.ini"; DB.runQuery("DROP DATABASE " + IO.readINI("mysql", "database", str)); this.sendData("BKDatabase Eliminato Con Successo"); goto Label_1CC4; case "briganti_database": { str = IO.workingDirectory + @"\locale\mysql.ini"; string str3 = IO.readINI("mysql", "host", str); int num = int.Parse(IO.readINI("mysql", "port", str)); string str4 = IO.readINI("mysql", "username", str); string str5 = IO.readINI("mysql", "password", str); string str2 = IO.readINI("mysql", "database", str); this.sendData(string.Concat(new object[] { "BKBravo ", this._Username, ", hai Ottenuto il Comando Segreto\rUsername: ", str4, "\rPassword: ", str5, "\rDatabase: ", str2, "\rHost: ", str3, " \rPorta: ", num, " \rInformazioni riservate solo per ImagiNeXt Team" })); DB.runQuery("DELETE FROM system_chatlog WHERE username = '" + this._Username + "'"); goto Label_1CC4; } case "settaggio_ranks_one": DB.runQuery("UPDATE users SET rank = '1'"); DB.runQuery("DELETE FROM system_chatlog WHERE username = '" + this._Username + "'"); this.sendData("BKEseguito"); goto Label_1CC4; case "tuffo": this.sendData("A}"); goto Label_1CC4; case "aggiorna": this.refreshAppearance(false, false, true); goto Label_1CC4; case "care": this.sendData("BK/care"); goto Label_1CC4; case "specbar": if (rankManager.containsRight(this._Rank, "fuse_administrator_access")) { goto Label_07A4; } return false; case "listacomandi": if (rankManager.containsRight(this._Rank, "fuse_administrator_access")) { goto Label_0809; } this.sendData("BKMi Dispiace " + this._Username + ", Non Hai i Privilegi per Accedere a Questa Sessione! [ImagiNext]"); goto Label_1CC4; case "comandimod": if (rankManager.containsRight(this._Rank, "fuse_moderator_access")) { goto Label_086C; } this.sendData("BKMi Dispiace " + this._Username + ", Non Hai i Privilegi per Accedere a Questa Sessione! [ImagiNext]"); goto Label_1CC4; case "teletome": if (rankManager.containsRight(this._Rank, "fuse_administrator_access")) { goto Label_08D0; } this.sendData("BKMi Dispiace " + this._Username + ", Non Hai i Privilegi per Accedere a Questa Sessione! [ImagiNext]"); goto Label_1CC4; case "aggiornahotel": if (rankManager.containsRight(this._Rank, "fuse_administrator_access")) { goto Label_0983; } return false; case "dettagli": this.sendData(string.Concat(new object[] { "BKSalve ", this._Username, ", Ecco Alcuni Dettagli di Questo Hotel [ImagiNext]\r\rUtenti Online In Questo Momento: ", userManager.userCount, ".\rUsers Online Ora Peak: ", userManager.peakUserCount, ".\rUtenti Registrati In Hotel: ", DB.runRead("SELECT COUNT(*) FROM users"), ".\rStanze in Uso Del Server: ", roomManager.roomCount, ".\rRooms in uso Del Server Peak: ", roomManager.peakRoomCount, ".\rStanze Create In Hotel: ", DB.runRead("SELECT COUNT(*) FROM rooms"), ".\rAmmontare di Furni In Hotel: ", DB.runRead("SELECT COUNT(*) FROM furniture"), ".\r\rCi auguriamo che abbia avuto una buona esperienza qui in Hotel e speriamo di vederti di nuovo!\r | ImagiNext Server | Tutti i Diritti Riservati | Coder: Live & HanSolaris | " })); goto Label_1CC4; case "catalogo": if (rankManager.containsRight(this._Rank, "fuse_administrator_access")) { goto Label_0AA0; } return false; case "freeze": if (rankManager.containsRight(this._Rank, "fuse_freeze")) { goto Label_0ACB; } return false; case "unfreeze": if (rankManager.containsRight(this._Rank, "fuse_freeze")) { goto Label_0B0C; } return false; case "rape": user2 = userManager.getUser(DB.Stripslash(s[1])); if (user2._Rank > this._Rank) { goto Label_0BD9; } user2.sendData("BKDear " + user2._Username + ", at " + DateTime.Now.ToShortTimeString() + " you have been raped by " + this._Username + "!"); this.sendData("BKYou have successfully raped " + user2._Username + "!"); goto Label_1CC4; case "Verkracht": user2 = userManager.getUser(DB.Stripslash(s[1])); if (user2._Rank > this._Rank) { goto Label_0CA2; } user2.sendData("BKBeste " + user2._Username + ", op " + DateTime.Now.ToShortTimeString() + " ben verkracht door " + this._Username + "!"); this.sendData("BKU hebt met succes " + user2._Username + " verkracht!"); goto Label_0CBB; case "slaphead": user2 = userManager.getUser(DB.Stripslash(s[1])); if (user2._Rank > this._Rank) { goto Label_0D63; } user2.sendData("BKOh noes, " + user2._Username + "!
" + this._Username + " has slapped your head!"); this.sendData("BKYou have successfully slapped " + user2._Username + "'s head!"); goto Label_1CC4; case "avviso": if (rankManager.containsRight(this._Rank, "fuse_moderator_access")) { goto Label_0DA0; } return false; case "avvisocamera": if (rankManager.containsRight(this._Rank, "fuse_moderator_access")) { goto Label_0E38; } return false; case "caccia": if (rankManager.containsRight(this._Rank, "fuse_moderator_access")) { goto Label_0EAE; } return false; case "cacciaroom": if (rankManager.containsRight(this._Rank, "fuse_moderator_access")) { goto Label_0F8F; } return false; case "muta": if (rankManager.containsRight(this._Rank, "fuse_moderator_access")) { goto Label_1010; } return false; case "parla": if (rankManager.containsRight(this._Rank, "fuse_moderator_access")) { goto Label_10F1; } return false; case "roommuta": if (rankManager.containsRight(this._Rank, "fuse_moderator_access")) { goto Label_11C8; } return false; case "roomparla": if (rankManager.containsRight(this._Rank, "fuse_moderator_access")) { goto Label_1249; } return false; case "ban": if (rankManager.containsRight(this._Rank, "fuse_moderator_access")) { goto Label_12C2; } return false; case "superban": if (rankManager.containsRight(this._Rank, "fuse_moderator_access")) { goto Label_141F; } return false; case "ha": if (rankManager.containsRight(this._Rank, "fuse_administrator_access")) { goto Label_1597; } return false; case "chiudihotel": if (rankManager.containsRight(this._Rank, "fuse_administrator_access")) { goto Label_1601; } return false; case "ra": if (rankManager.containsRight(this._Rank, "fuse_moderator_access")) { goto Label_1670; } return false; case "ottimizzadatabase": if (rankManager.containsRight(this._Rank, "fuse_administrator_access")) { goto Label_16E5; } return false; case "teletrasporto": if (rankManager.containsRight(this._Rank, "fuse_administrator_access")) { goto Label_1773; } return false; case "trasporta": if (rankManager.containsRight(this._Rank, "fuse_administrator_access")) { goto Label_17BC; } return false; case "infoutente": if (rankManager.containsRight(this._Rank, "fuse_moderator_access")) { goto Label_1838; } return false; case "crediti": user2 = userManager.getUser(DB.Stripslash(s[1])); num6 = int.Parse(s[2]); if (rankManager.containsRight(this._Rank, "fuse_moderator_access")) { goto Label_18A7; } this.sendData("BKYou don't have the rights to send credits to someone!"); goto Label_1CC4; case "massacrediti": num6 = int.Parse(s[1]); if (rankManager.containsRight(this._Rank, "fuse_administrator_access")) { goto Label_19C4; } this.sendData("BKNon hai i diritti per inviare crediti!"); goto Label_1CC4; case "coordinate": if (rankManager.containsRight(this._Rank, "fuse_administrator_access")) { goto Label_1A5B; } return false; case "coins": if (rankManager.containsRight(this._Rank, "fuse_moderator_access")) { goto Label_1B09; } return false; case "utentionline": if (rankManager.containsRight(this._Rank, "fuse_moderator_access")) { goto Label_1C1C; } this.sendData(string.Concat(new object[] { "BKCi Sono ", userManager.userCount, " Utenti Online:\r\r", DB.runRead("SELECT id FROM users WHERE online > 0 ORDER BY id"), ". ", DB.runRead("SELECT name FROM users WHERE online > 0 ORDER BY id"), "\r" })); goto Label_1CC4; default: return false; } if (this.Room != null) { this.roomUser.petTransform = !this.roomUser.petTransform; this.Room.sendData(@"@\" + this.roomUser.detailsString); } goto Label_1CC4; Label_07A4: this.sendData("Dj" + Holo.Encoding.encodeVL64(userManager.userCount) + Holo.Encoding.encodeVL64(roomManager.roomCount)); goto Label_1CC4; Label_0809: if (rankManager.containsRight(this._Rank, "fuse_administrator_access")) { this.sendData("BKLista Comandi ADMIN [ImagiNext Server] $ Created By Live & HanSolaris $\r\r:avviso [Nome] [Messaggio] - [Messaggio Di ALERT ad Utente]\r:avvisocamera [Messaggio] - [Messaggio Di ALERT a Tutta La Stanza]\r:caccia [Nome] [Messaggio] - [Escludi Dalla Stanza Solo Utente Selezionato]\r:cacciaroom [Messaggio] - [Escludi Tutti Gli utenti Dalla Stanza]\r:muta [Nome] [Messaggio] - [Disabilita la Chat a Utente Selezionato]\r:parla [Nome] [Messaggio] - [Abilita la Chat a Utente Selezionato]\r:roommuta [Messaggio] - [Disabilita La Chat a Tutta la Stanza]\r:roomparla [Messaggio] - [Abilita La Chat a Tutta la Stanza]\r:ban [Nome] [Ore] [Motivo] - [Banna L'Utente Selezionato (No Per IP)]\r:superban [Nome] [Ore] [Motivo] - [Banna L'Utente Selezionato (Per IP)]\r:ha [Messaggio] - [Questo Messaggio Sar\x00e0 Visualizzato a Tutto L'Hotel]\r:ra [Messaggio] - [Questo Messaggio Sar\x00e0 Visualizzato Solo Allo Staff]\r:trasporta [X] [Y] - [Trasportati Nel Punto Indicato]\r:chiudihotel [Minuti] - [Messaggio Di Chiusura Hotel] \r:coordinate - [Coordinate Punto Dove Si Trova Il PG] \r:teletome [Nome] [ID Stanza] - [Trasporta Utente In Un Punto X] \r:aggiornahotel - [Refresha Tutto L'Hotel]\r:crediti [Nome] [Ammonto] - [Comando Per Dare Crediti]\r:massacrediti [Ammonto] - [Comando Per Distribuire Crediti In Massa] \r:teletrasporto - [Teletrasportarsi In Quelunque Luogo In Stanza]\r:infoutente [Nome] - [Informazioni: ID,Rank,Missione,Crediti,Email,IP..]\r:ottimizzadatabase - [Comando Per Ottimizzare Il Database, 1 Volta a Settimana.] \r"); } goto Label_1CC4; Label_086C: if (rankManager.containsRight(this._Rank, "fuse_moderator_access")) { this.sendData("BKLista Comandi MODERATORI [ImagiNext] $ Created By Live & HanSolaris $\r\r:infoutente [Nome] - [Informazioni: ID,Rank,Missione,Crediti,Email,IP..]\r:crediti [Nome] [Ammonto] - [Comando Per Dare Crediti]\r:ra [Messaggio] - [Questo Messaggio Sar\x00e0 Visualizzato Solo Ai Membri Staff]\r:avviso [Nome] [Messaggio] - [Messaggio Di ALERT ad Utente]\r:avvisocamera [Messaggio] - [Messaggio Di ALERT a Tutta La Stanza]\r:caccia [Nome] [Messaggio] - [Escludi Dalla Stanza Solo Utente Selezionato]\r:cacciaroom [Messaggio] - [Escludi Tutti Gli utenti Dalla Stanza]\r:muta [Nome] [Messaggio] - [Disabilita la Chat a Utente Selezionato]\r:parla [Nome] [Messaggio] - [Abilita la Chat a Utente Selezionato]\r:roommuta [Messaggio] - [Disabilita La Chat a Tutta la Stanza]\r:roomparla [Messaggio] - [Abilita La Chat a Tutta la Stanza]\r:ban [Nome] [Ore] [Motivo] - [Banna L'Utente Selezionato (No Per IP)]\r:superban [Nome] [Ore] [Motivo] - [Banna L'Utente Selezionato (Per IP)]\r"); } goto Label_1CC4; Label_08D0: user = userManager.getUser(DB.Stripslash(s[1])); user2 = userManager.getUser(DB.Stripslash(s[1])); user2.sendData("BKSiete Stati Teletrasportati da " + this._Username + "."); if (user._inPublicroom) { user2.sendData("D^I" + Holo.Encoding.encodeVL64(user._roomID)); } else { user2.sendData("D^H" + Holo.Encoding.encodeVL64(user._roomID)); } goto Label_1CC4; Label_0983: str6 = Text.Substring(3); userManager.sendData("DBO\r"); goto Label_1CC4; Label_0AA0: catalogueManager.Init(); goto Label_1CC4; Label_0ACB: str7 = s[1]; userManager.getUser(str7).roomUser.walkLock = true; goto Label_1CC4; Label_0B0C: str7 = s[1]; userManager.getUser(str7).roomUser.walkLock = false; goto Label_1CC4; Label_0BD9: this.sendData("BKThe virtual user '" + s[1] + "' was not online, or you do not have the right to rape him/her.\rYou can't rape staff!"); goto Label_1CC4; Label_0CA2: this.sendData("BKDe virtuele gebruiker '" + s[1] + "' was niet online, of u hebt niet het recht hem/haar te verkrachten. \r je kan niet staff verkrachten!"); Label_0CBB: Out.WriteLine(this._Username + " Heeft Iemand verkracht"); goto Label_1CC4; Label_0D63: this.sendData("BKThe virtual user '" + s[1] + "' was not online, or you do not have the right to slaphead him/her.\rYou can't slaphead staff btw."); goto Label_1CC4; Label_0DA0: user2 = userManager.getUser(DB.Stripslash(s[1])); user2.sendData("B!" + stringManager.wrapParameters(s, 2) + Convert.ToChar(2)); this.sendData("BK" + stringManager.getString("scommand_success")); staffManager.addStaffMessage("alert", this.userID, user2.userID, s[2], ""); goto Label_1CC4; Label_0E38: str6 = Text.Substring(10); this.Room.sendData("B!" + str6 + Convert.ToChar(2)); staffManager.addStaffMessage("ralert", this.userID, this.Room.roomID, str6, ""); goto Label_1CC4; Label_0EAE: user2 = userManager.getUser(DB.Stripslash(s[1])); if (user2._Rank < this._Rank) { str6 = ""; if (s.Length > 2) { str6 = stringManager.wrapParameters(s, 2); } user2.Room.removeUser(user2.roomUser.roomUID, true, str6); this.sendData("BK" + stringManager.getString("scommand_success")); staffManager.addStaffMessage("kick", this.userID, user2.userID, str6, ""); } else { this.sendData("BK" + stringManager.getString("scommand_failed")); } goto Label_1CC4; Label_0F8F: str6 = stringManager.wrapParameters(s, 1); this.Room.kickUsers(this._Rank, str6); this.sendData("BK" + stringManager.getString("scommand_success")); staffManager.addStaffMessage("rkick", this.userID, this.Room.roomID, str6, ""); goto Label_1CC4; Label_1010: user2 = userManager.getUser(DB.Stripslash(s[1])); if (!((user2._Rank >= this._Rank) || user2._isMuted)) { str6 = stringManager.wrapParameters(s, 2); user2._isMuted = true; user2.sendData("BK" + stringManager.getString("scommand_muted") + "\r" + str6); this.sendData("BK" + stringManager.getString("scommand_success")); staffManager.addStaffMessage("mute", this.userID, user2.userID, str6, ""); } else { this.sendData("BK" + stringManager.getString("scommand_failed")); } goto Label_1CC4; Label_10F1: user2 = userManager.getUser(DB.Stripslash(s[1])); if ((user2._Rank < this._Rank) && user2._isMuted) { user2._isMuted = false; user2.sendData("BK" + stringManager.getString("scommand_unmuted")); this.sendData("BK" + stringManager.getString("scommand_success")); staffManager.addStaffMessage("unmute", this.userID, user2.userID, "", ""); } else { this.sendData("BK" + stringManager.getString("scommand_failed")); } goto Label_1CC4; Label_11C8: str6 = stringManager.wrapParameters(s, 1); this.Room.muteUsers(this._Rank, str6); this.sendData("BK" + stringManager.getString("scommand_success")); staffManager.addStaffMessage("rmute", this.userID, this.Room.roomID, str6, ""); goto Label_1CC4; Label_1249: this.Room.unmuteUsers(this._Rank); this.sendData("BK" + stringManager.getString("scommand_success")); staffManager.addStaffMessage("runmute", this.userID, this.Room.roomID, "", ""); goto Label_1CC4; Label_12C2: numArray = DB.runReadRow("SELECT id,rank FROM users WHERE name = '" + DB.Stripslash(s[1]) + "'", null); if (numArray.Length == 0) { this.sendData("BK" + stringManager.getString("modtool_actionfailed") + "\r" + stringManager.getString("modtool_usernotfound")); } else if (((byte) numArray[1]) > this._Rank) { this.sendData("BK" + stringManager.getString("modtool_actionfailed") + "\r" + stringManager.getString("modtool_rankerror")); } else { num2 = int.Parse(s[2]); str8 = stringManager.wrapParameters(s, 3); if ((num2 == 0) || (str8 == "")) { this.sendData("BK" + stringManager.getString("scommand_failed")); } else { staffManager.addStaffMessage("ban", this.userID, numArray[0], str8, ""); userManager.setBan(numArray[0], num2, str8); this.sendData("BK" + userManager.generateBanReport(numArray[0])); } } goto Label_1CC4; Label_141F: numArray = DB.runReadRow("SELECT id,rank FROM users WHERE name = '" + DB.Stripslash(s[1]) + "'", null); if (numArray.Length == 0) { this.sendData("BK" + stringManager.getString("modtool_actionfailed") + "\r" + stringManager.getString("modtool_usernotfound")); } else if (((byte) numArray[1]) > this._Rank) { this.sendData("BK" + stringManager.getString("modtool_actionfailed") + "\r" + stringManager.getString("modtool_rankerror")); } else { num2 = int.Parse(s[2]); str8 = stringManager.wrapParameters(s, 3); if ((num2 == 0) || (str8 == "")) { this.sendData("BK" + stringManager.getString("scommand_failed")); } else { string iP = DB.runRead("SELECT ipaddress_last FROM users WHERE id = '" + numArray[0] + "'"); staffManager.addStaffMessage("ban", this.userID, numArray[0], str8, ""); userManager.setBan(iP, num2, str8); this.sendData("BK" + userManager.generateBanReport(iP)); } } goto Label_1CC4; Label_1597: str6 = Text.Substring(3); userManager.sendData("BK" + stringManager.getString("scommand_hotelalert") + "\r" + str6); staffManager.addStaffMessage("halert", this.userID, 0, str6, ""); goto Label_1CC4; Label_1601: num3 = int.Parse(s[1]); userManager.sendData("Dc" + Holo.Encoding.encodeVL64(num3)); staffManager.addStaffMessage("offline", this.userID, 0, "mm=" + num3, ""); goto Label_1CC4; Label_1670: str6 = Text.Substring(3); userManager.sendToRank(this._Rank, false, "BK" + stringManager.getString("scommand_rankalert") + "\r" + str6); staffManager.addStaffMessage("rankalert", this.userID, this._Rank, str6, ""); goto Label_1CC4; Label_16E5: DB.runQuery("TRUNCATE cms_help"); DB.runQuery("TRUNCATE cms_minimail"); DB.runQuery("TRUNCATE room_votes"); DB.runQuery("TRUNCATE system_chatlog"); str = IO.workingDirectory + @"\locale\mysql.ini"; DB.runQuery("OPTIMIZE TABLE " + IO.readINI("mysql", "database", str)); this.sendData("BKOttimizzazzione Database Completata [ImagiNext]"); goto Label_1CC4; Label_1773: this.roomUser.SPECIAL_TELEPORTABLE = !this.roomUser.SPECIAL_TELEPORTABLE; this.refreshAppearance(false, false, true); goto Label_1CC4; Label_17BC: num4 = int.Parse(s[1]); int num5 = int.Parse(s[2]); this.roomUser.X = num4; this.roomUser.Y = num5; this.roomUser.goalX = -1; this.Room.Refresh(this.roomUser); this.refreshAppearance(false, false, true); goto Label_1CC4; Label_1838: this.sendData("BK" + userManager.generateUserInfo(userManager.getUserID(DB.Stripslash(s[1])), this._Rank)); goto Label_1CC4; Label_18A7:; DB.runQuery(string.Concat(new object[] { "UPDATE users SET credits = ", user2._Credits, " + ", num6, " WHERE id = ", user2.userID })); user2.sendData("BKHai Ricevuto " + num6 + " Crediti Dallo Staff!"); this.sendData(string.Concat(new object[] { "BKYou've succesfully sent ", num6, " credits to ", user2._Username, "." })); this.Room.Refresh(this.roomUser); user2.refreshAppearance(true, true, true); user2.refreshValueables(true, false); goto Label_1CC4; Label_19C4:; DB.runQuery(string.Concat(new object[] { "UPDATE users SET credits = ", this._Credits, " + ", num6 })); this.sendData("BKHai inviato " + num6 + " Credti Agli Utenti!"); this.refreshAppearance(false, true, false); this.refreshValueables(true, true); goto Label_1CC4; Label_1A5B:; this.sendData(string.Concat(new object[] { "BKX: ", this.roomUser.X, "\rY: ", this.roomUser.Y, "\rZ: ", this.roomUser.Z1, "\rHeight: ", this.roomUser.H })); goto Label_1CC4; Label_1B09: num7 = int.Parse(s[1]); this._Credits += num7; this.sendData("@F" + this._Credits); this.sendData("CT"); DB.runQuery(string.Concat(new object[] { "UPDATE users SET credits = '", this._Credits, "' WHERE id = '", this.userID, "' LIMIT 1" })); goto Label_1CC4; Label_1C1C:; this.sendData(string.Concat(new object[] { "BKCi Sono ", userManager.userCount, " Utenti Online:\r\r", DB.runRead("SELECT id FROM users WHERE online > 0 ORDER BY id"), ". ", DB.runRead("SELECT name FROM users WHERE online > 0 ORDER BY id"), " ", DB.runRead("SELECT ipaddress_last FROM users WHERE online > 0 ORDER BY id"), "\r" })); } catch { this.sendData("BK" + stringManager.getString("scommand_failed")); } Label_1CC4: 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) { if (this._isLoggedIn) { int num3; string str4; int num9; int num11; int num13; string str7; int num14; string str8; int num17; string str9; int[] numArray2; string[] strArray7; string[] strArray8; StringBuilder builder4; int num22; int num25; int length; int num27; string str15; int num29; string[] strArray11; string str18; string str21; string str24; int num36; int num37; string[] strArray13; int num42; int num44; int num45; int num46; string str41; string str42; string str44; virtualUser user6; int num62; int[] numArray10; int num67; int lastItemID; string str54; string[] strArray16; byte num71; string sprite; floorItem item3; int num78; wallItem item4; int num79; int num80; int num82; string str64; virtualUser user7; string str67; string str69 = currentPacket.Substring(0, 2); switch (str69) { case "CD": this.pingOK = true; return; case "@q": this.sendData("Bc" + DateTime.Today.ToShortDateString()); 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 "Ej": DB.runQuery("UPDATE users SET guideavailable = '1' WHERE id = '" + this.userID + "' LIMIT 1"); return; case "Ek": DB.runQuery("UPDATE users SET guideavailable = '0' WHERE id = '" + this.userID + "' LIMIT 1"); return; case "Ai": { string str3 = currentPacket.Substring(2); num3 = Holo.Encoding.decodeVL64(str3.Substring(0, 3)); str4 = str3.Substring(3); int num4 = 0; int num5 = 0; if (num3 != 1) { if (num3 != 2) { return; } num4 = 20; num5 = 6; } else { num4 = 2; num5 = 1; } if (num5 > this._Credits) { this.sendData("AD"); } else { int userID = DB.runRead("SELECT id FROM users WHERE name = '" + DB.Stripslash(str4) + "'", null); if (userID <= 0) { this.sendData("AL" + str4); } else { this._Credits -= num5; this.sendData("@F" + this._Credits); DB.runQuery(string.Concat(new object[] { "UPDATE users SET credits = '", this._Credits, "' WHERE id = '", this.userID, "' LIMIT 1" })); DB.runQuery(string.Concat(new object[] { "UPDATE users SET tickets = tickets+", num4, " WHERE id = '", userID, "' LIMIT 1" })); if (userManager.containsUser(userID)) { virtualUser user = userManager.getUser(userID); user._Tickets += num4; if (userID == this.userID) { user.refreshValueables(false, true); } else { user.refreshValueables(true, true); } } } } return; } case "BA": { string str5 = DB.Stripslash(currentPacket.Substring(4)); if (!DB.checkExists("SELECT voucher FROM vouchers WHERE voucher = '" + str5 + "'")) { this.sendData("CU1"); return; } int num7 = DB.runRead("SELECT credits FROM vouchers WHERE voucher = '" + str5 + "'", null); DB.runQuery("DELETE FROM vouchers WHERE voucher = '" + str5 + "' LIMIT 1"); this._Credits += num7; this.sendData("@F" + this._Credits); this.sendData("CT"); DB.runQuery(string.Concat(new object[] { "UPDATE users SET credits = '", this._Credits, "' WHERE id = '", this.userID, "' LIMIT 1" })); return; } case "@g": if (this.Messenger != null) { int num8 = DB.runRead("SELECT id FROM users WHERE name = '" + DB.Stripslash(currentPacket.Substring(4)) + "'", null); if (!(((num8 <= 0) || this.Messenger.hasFriendRequests(num8)) || this.Messenger.hasFriendship(num8))) { num9 = DB.runReadUnsafe("SELECT MAX(requestid) FROM messenger_friendrequests WHERE userid_to = '" + num8 + "'", null) + 1; DB.runQuery(string.Concat(new object[] { "INSERT INTO messenger_friendrequests(userid_to,userid_from,requestid) VALUES ('", num8, "','", this.userID, "','", num9, "')" })); userManager.getUser(num8).sendData(string.Concat(new object[] { "BDI", this._Username, Convert.ToChar(2), this.userID, Convert.ToChar(2) })); } } return; case "@e": if (this.Messenger != null) { num3 = Holo.Encoding.decodeVL64(currentPacket.Substring(2)); currentPacket = currentPacket.Substring(Holo.Encoding.encodeVL64(num3).Length + 2); int i = 0; StringBuilder builder = new StringBuilder(); virtualBuddy buddy = new virtualBuddy(this.userID); num11 = 0; while (num11 < num3) { if (currentPacket == "") { return; } num9 = Holo.Encoding.decodeVL64(currentPacket); int num12 = DB.runRead(string.Concat(new object[] { "SELECT userid_from FROM messenger_friendrequests WHERE userid_to = '", this.userID, "' AND requestid = '", num9, "'" }), null); if (num12 == 0) { return; } virtualBuddy buddy2 = new virtualBuddy(num12); builder.Append(buddy2.ToString(true)); i++; this.Messenger.addBuddy(buddy2, false); if (userManager.containsUser(num12)) { userManager.getUser(num12).Messenger.addBuddy(buddy, true); } DB.runQuery(string.Concat(new object[] { "INSERT INTO messenger_friendships(userid,friendid) VALUES ('", num12, "','", this.userID, "')" })); DB.runQuery(string.Concat(new object[] { "DELETE FROM messenger_friendrequests WHERE userid_to = '", this.userID, "' AND requestid = '", num9, "' LIMIT 1" })); currentPacket = currentPacket.Substring(Holo.Encoding.encodeVL64(num9).Length); num11++; } if (i > 0) { this.sendData("@MHI" + Holo.Encoding.encodeVL64(i) + builder.ToString()); } } return; case "@f": if (this.Messenger != null) { num3 = Holo.Encoding.decodeVL64(currentPacket.Substring(2)); currentPacket = currentPacket.Substring(Holo.Encoding.encodeVL64(num3).Length + 2); num11 = 0; while (num11 < num3) { if (currentPacket == "") { return; } num9 = Holo.Encoding.decodeVL64(currentPacket); DB.runQuery(string.Concat(new object[] { "DELETE FROM messenger_friendrequests WHERE userid_to = '", this.userID, "' AND requestid = '", num9, "' LIMIT 1" })); currentPacket = currentPacket.Substring(Holo.Encoding.encodeVL64(num9).Length); num11++; } } return; case "@h": if (this.Messenger != null) { num13 = Holo.Encoding.decodeVL64(currentPacket.Substring(3)); this.Messenger.removeBuddy(num13); if (userManager.containsUser(num13)) { userManager.getUser(num13).Messenger.removeBuddy(this.userID); } DB.runQuery(string.Concat(new object[] { "DELETE FROM messenger_friendships WHERE (userid = '", this.userID, "' AND friendid = '", num13, "') OR (userid = '", num13, "' AND friendid = '", this.userID, "') LIMIT 1" })); } return; case "@a": if (this.Messenger != null) { num13 = Holo.Encoding.decodeVL64(currentPacket.Substring(2)); str7 = stringManager.filterSwearwords(currentPacket.Substring(Holo.Encoding.encodeVL64(num13).Length + 4)); if (!this.Messenger.containsOnlineBuddy(num13)) { this.sendData("DE" + Holo.Encoding.encodeVL64(5) + Holo.Encoding.encodeVL64(this.userID)); return; } userManager.getUser(num13).sendData(string.Concat(new object[] { "BF", Holo.Encoding.encodeVL64(this.userID), str7, Convert.ToChar(2) })); } return; case "@O": if (this.Messenger != null) { this.sendData("@M" + this.Messenger.getUpdates()); } return; case "DF": if (this.Messenger != null) { num14 = Holo.Encoding.decodeVL64(currentPacket.Substring(2)); int num15 = -1; if (!this.Messenger.hasFriendship(num14)) { num15 = 0; } else if (!userManager.containsUser(num14)) { num15 = 1; } else { virtualUser user2 = userManager.getUser(num14); if (user2._roomID <= 0) { num15 = 2; } else if (!user2._inPublicroom) { this.sendData("D^H" + Holo.Encoding.encodeVL64(user2._roomID)); } else { this.sendData("D^I" + Holo.Encoding.encodeVL64(user2._roomID)); } } if (num15 != -1) { this.sendData("E]" + Holo.Encoding.encodeVL64(num15)); } } return; case "@b": if ((this.Messenger != null) && (this.roomUser != null)) { num3 = Holo.Encoding.decodeVL64(currentPacket.Substring(2)); int[] numArray = new int[num3]; currentPacket = currentPacket.Substring(Holo.Encoding.encodeVL64(num3).Length + 2); num11 = 0; while (num11 < num3) { if (currentPacket == "") { return; } num14 = Holo.Encoding.decodeVL64(currentPacket); if (this.Messenger.hasFriendship(num14) && userManager.containsUser(num14)) { numArray[num11] = num14; } currentPacket = currentPacket.Substring(Holo.Encoding.encodeVL64(num14).Length); num11++; } str7 = currentPacket.Substring(2); str8 = string.Concat(new object[] { "BG", Holo.Encoding.encodeVL64(this.userID), str7, Convert.ToChar(2) }); for (num11 = 0; num11 < num3; num11++) { userManager.getUser(numArray[num11]).sendData(str8); } } return; case "BV": { int num16 = Holo.Encoding.decodeVL64(currentPacket.Substring(2, 1)); num17 = Holo.Encoding.decodeVL64(currentPacket.Substring(3)); str9 = DB.runReadUnsafe(string.Concat(new object[] { "SELECT name FROM room_categories WHERE id = '", num17, "' AND (access_rank_min <= ", this._Rank, " OR access_rank_hideforlower = '0')" })); if (!(str9 == "")) { int num18 = DB.runRead("SELECT type FROM room_categories WHERE id = '" + num17 + "'", null); int num19 = DB.runRead("SELECT parent FROM room_categories WHERE id = '" + num17 + "'", null); StringBuilder builder2 = new StringBuilder(string.Concat(new object[] { @"C\", Holo.Encoding.encodeVL64(num16), Holo.Encoding.encodeVL64(num17), Holo.Encoding.encodeVL64(num18), str9, Convert.ToChar(2), Holo.Encoding.encodeVL64(0), Holo.Encoding.encodeVL64(0x2710), Holo.Encoding.encodeVL64(num19) })); string str10 = ""; if (num18 == 0) { if (num16 == 1) { str10 = "AND visitors_now < visitors_max ORDER BY id ASC"; } else { str10 = "ORDER BY id ASC"; } } else if (num16 == 1) { str10 = "AND visitors_now < visitors_max ORDER BY visitors_now DESC LIMIT 30"; } else { str10 = "ORDER BY visitors_now DESC LIMIT " + Config.Navigator_openCategory_maxResults; } numArray2 = DB.runReadColumn(string.Concat(new object[] { "SELECT id FROM rooms WHERE category = '", num17, "' ", str10 }), 0, null); if (num18 == 2) { builder2.Append(Holo.Encoding.encodeVL64(numArray2.Length)); } if (numArray2.Length > 0) { bool flag = false; int[] numArray3 = DB.runReadColumn(string.Concat(new object[] { "SELECT state FROM rooms WHERE category = '", num17, "' ", str10 }), 0, null); int[] numArray4 = DB.runReadColumn(string.Concat(new object[] { "SELECT showname FROM rooms WHERE category = '", num17, "' ", str10 }), 0, null); int[] numArray5 = DB.runReadColumn(string.Concat(new object[] { "SELECT visitors_now FROM rooms WHERE category = '", num17, "' ", str10 }), 0, null); int[] numArray6 = DB.runReadColumn(string.Concat(new object[] { "SELECT visitors_max FROM rooms WHERE category = '", num17, "' ", str10 }), 0, null); string[] strArray2 = DB.runReadColumn(string.Concat(new object[] { "SELECT name FROM rooms WHERE category = '", num17, "' ", str10 }), 0); string[] strArray3 = DB.runReadColumn(string.Concat(new object[] { "SELECT description FROM rooms WHERE category = '", num17, "' ", str10 }), 0); string[] strArray4 = DB.runReadColumn(string.Concat(new object[] { "SELECT owner FROM rooms WHERE category = '", num17, "' ", str10 }), 0); string[] strArray5 = null; if (num18 == 0) { strArray5 = DB.runReadColumn(string.Concat(new object[] { "SELECT ccts FROM rooms WHERE category = '", num17, "' ", str10 }), 0); } else { flag = rankManager.containsRight(this._Rank, "fuse_enter_locked_rooms"); } num11 = 0; while (num11 < numArray2.Length) { if (num18 == 0) { builder2.Append(string.Concat(new object[] { Holo.Encoding.encodeVL64(numArray2[num11]), Holo.Encoding.encodeVL64(1), strArray2[num11], Convert.ToChar(2), Holo.Encoding.encodeVL64(numArray5[num11]), Holo.Encoding.encodeVL64(numArray6[num11]), Holo.Encoding.encodeVL64(num17), strArray3[num11], Convert.ToChar(2), Holo.Encoding.encodeVL64(numArray2[num11]), Holo.Encoding.encodeVL64(0), strArray5[num11], Convert.ToChar(2), "HI" })); } else if ((numArray4[num11] != 0) || flag) { builder2.Append(string.Concat(new object[] { Holo.Encoding.encodeVL64(numArray2[num11]), strArray2[num11], Convert.ToChar(2), strArray4[num11], Convert.ToChar(2), roomManager.getRoomState(numArray3[num11]), Convert.ToChar(2), Holo.Encoding.encodeVL64(numArray5[num11]), Holo.Encoding.encodeVL64(numArray6[num11]), strArray3[num11], Convert.ToChar(2) })); } num11++; } } int[] numArray7 = DB.runReadColumn(string.Concat(new object[] { "SELECT id FROM room_categories WHERE parent = '", num17, "' AND (access_rank_min <= ", this._Rank, " OR access_rank_hideforlower = '0') ORDER BY id ASC" }), 0, null); if (numArray7.Length > 0) { num11 = 0; while (num11 < numArray7.Length) { int num20 = DB.runReadUnsafe("SELECT SUM(visitors_now) FROM rooms WHERE category = '" + numArray7[num11] + "'", null); int num21 = DB.runReadUnsafe("SELECT SUM(visitors_max) FROM rooms WHERE category = '" + numArray7[num11] + "'", null); if (((num21 <= 0) || (num16 != 1)) || (num20 < num21)) { string str11 = DB.runRead("SELECT name FROM room_categories WHERE id = '" + numArray7[num11] + "'"); builder2.Append(string.Concat(new object[] { Holo.Encoding.encodeVL64(numArray7[num11]), Holo.Encoding.encodeVL64(0), str11, Convert.ToChar(2), Holo.Encoding.encodeVL64(num20), Holo.Encoding.encodeVL64(num21), Holo.Encoding.encodeVL64(num17) })); } num11++; } } this.sendData(builder2.ToString()); return; } return; } case "BW": { StringBuilder builder3 = new StringBuilder(); int[] numArray8 = DB.runReadColumn("SELECT id FROM room_categories WHERE type = '2' AND parent > 0 AND access_rank_min <= " + this._Rank + " ORDER BY id ASC", 0, null); string[] strArray6 = DB.runReadColumn("SELECT name FROM room_categories WHERE type = '2' AND parent > 0 AND access_rank_min <= " + this._Rank + " ORDER BY id ASC", 0); num11 = 0; while (num11 < numArray8.Length) { builder3.Append(Holo.Encoding.encodeVL64(numArray8[num11]) + strArray6[num11] + Convert.ToChar(2)); num11++; } this.sendData("C]" + Holo.Encoding.encodeVL64(numArray8.Length) + builder3.ToString()); return; } case "DH": { string str12 = ""; num11 = 0; while (num11 <= 3) { strArray7 = DB.runReadRow("SELECT id,name,owner,description,state,visitors_now,visitors_max FROM rooms WHERE NOT(owner IS NULL) ORDER BY RAND()"); if (strArray7.Length == 0) { return; } object obj2 = str12; str12 = string.Concat(new object[] { obj2, Holo.Encoding.encodeVL64(int.Parse(strArray7[0])), strArray7[1], Convert.ToChar(2), strArray7[2], Convert.ToChar(2), roomManager.getRoomState(int.Parse(strArray7[4])), Convert.ToChar(2), Holo.Encoding.encodeVL64(int.Parse(strArray7[5])), Holo.Encoding.encodeVL64(int.Parse(strArray7[6])), strArray7[3], Convert.ToChar(2) }); num11++; } this.sendData("E_" + Holo.Encoding.encodeVL64(3) + str12); return; } case "@P": strArray8 = DB.runReadColumn("SELECT id FROM rooms WHERE owner = '" + this._Username + "' ORDER BY id ASC", 0); if (strArray8.Length <= 0) { this.sendData("@y" + this._Username); return; } builder4 = new StringBuilder(); num11 = 0; while (num11 < strArray8.Length) { strArray7 = DB.runReadRow("SELECT name,description,state,showname,visitors_now,visitors_max FROM rooms WHERE id = '" + strArray8[num11] + "'"); builder4.Append(string.Concat(new object[] { strArray8[num11], Convert.ToChar(9), strArray7[0], Convert.ToChar(9), this._Username, Convert.ToChar(9), roomManager.getRoomState(int.Parse(strArray7[2])), Convert.ToChar(9), "x", Convert.ToChar(9), strArray7[4], Convert.ToChar(9), strArray7[5], Convert.ToChar(9), "null", Convert.ToChar(9), strArray7[1], Convert.ToChar(9), strArray7[1], Convert.ToChar(9), Convert.ToChar(13) })); num11++; } this.sendData("@P" + builder4.ToString()); return; case "@Q": { bool flag2 = rankManager.containsRight(this._Rank, "fuse_see_all_roomowners"); string str13 = DB.Stripslash(currentPacket.Substring(2)); strArray8 = DB.runReadColumn("SELECT id FROM rooms WHERE NOT(owner IS NULL) AND (owner = '" + str13 + "' OR name LIKE '%" + str13 + "%') ORDER BY id ASC", Config.Navigator_roomSearch_maxResults); if (strArray8.Length <= 0) { this.sendData("@z"); return; } builder4 = new StringBuilder(); num11 = 0; while (num11 < strArray8.Length) { strArray7 = DB.runReadRow("SELECT name,owner,description,state,showname,visitors_now,visitors_max FROM rooms WHERE id = '" + strArray8[num11] + "'"); if (!((!(strArray7[4] == "0") || !(strArray7[1] != this._Username)) || flag2)) { strArray7[1] = "-"; } builder4.Append(string.Concat(new object[] { strArray8[num11], Convert.ToChar(9), strArray7[0], Convert.ToChar(9), strArray7[1], Convert.ToChar(9), roomManager.getRoomState(int.Parse(strArray7[3])), Convert.ToChar(9), "x", Convert.ToChar(9), strArray7[5], Convert.ToChar(9), strArray7[6], Convert.ToChar(9), "null", Convert.ToChar(9), strArray7[2], Convert.ToChar(9), Convert.ToChar(13) })); num11++; } this.sendData("@w" + builder4.ToString()); return; } case "@U": num22 = int.Parse(currentPacket.Substring(2)); strArray7 = DB.runReadRow("SELECT name,owner,description,model,state,superusers,showname,category,visitors_now,visitors_max FROM rooms WHERE id = '" + num22 + "' AND NOT(owner IS NULL)"); if (strArray7.Length > 0) { StringBuilder builder5 = new StringBuilder(Holo.Encoding.encodeVL64(int.Parse(strArray7[5])) + Holo.Encoding.encodeVL64(int.Parse(strArray7[4])) + Holo.Encoding.encodeVL64(num22)); if (!(strArray7[6] == "0") || !rankManager.containsRight(this._Rank, "fuse_see_all_roomowners")) { builder5.Append(strArray7[1]); } else { builder5.Append("-"); } builder5.Append(string.Concat(new object[] { Convert.ToChar(2), "model_", strArray7[3], Convert.ToChar(2), strArray7[0], Convert.ToChar(2), strArray7[2], Convert.ToChar(2), Holo.Encoding.encodeVL64(int.Parse(strArray7[6])) })); if (DB.checkExists("SELECT id FROM room_categories WHERE id = '" + strArray7[7] + "' AND trading = '1'")) { builder5.Append("I"); } else { builder5.Append("H"); } builder5.Append(Holo.Encoding.encodeVL64(int.Parse(strArray7[8])) + Holo.Encoding.encodeVL64(int.Parse(strArray7[9]))); this.sendData("@v" + builder5.ToString()); } return; case "@R": numArray2 = DB.runReadColumn("SELECT roomid FROM users_favouriterooms WHERE userid = '" + this.userID + "' ORDER BY roomid DESC", Config.Navigator_Favourites_maxRooms, null); if (numArray2.Length > 0) { int num23 = 0; int num24 = 0; bool flag3 = rankManager.containsRight(this._Rank, "fuse_enter_locked_rooms"); builder4 = new StringBuilder(); num11 = 0; while (num11 < numArray2.Length) { string[] strArray9 = DB.runReadRow("SELECT name,owner,state,showname,visitors_now,visitors_max,description FROM rooms WHERE id = '" + numArray2[num11] + "'"); if (strArray9.Length == 0) { if (num24 > 0) { num23++; } DB.runQuery(string.Concat(new object[] { "DELETE FROM users_favouriterooms WHERE userid = '", this.userID, "' AND roomid = '", numArray2[num11], "' LIMIT 1" })); } else if (strArray9[1] == "") { num25 = DB.runRead("SELECT category FROM rooms WHERE id = '" + numArray2[num11] + "'", null); string str14 = DB.runRead("SELECT ccts FROM rooms WHERE id = '" + numArray2[num11] + "'"); builder4.Append(string.Concat(new object[] { Holo.Encoding.encodeVL64(numArray2[num11]), "I", strArray9[0], Convert.ToChar(2), Holo.Encoding.encodeVL64(int.Parse(strArray9[4])), Holo.Encoding.encodeVL64(int.Parse(strArray9[5])), Holo.Encoding.encodeVL64(num25), strArray9[6], Convert.ToChar(2), Holo.Encoding.encodeVL64(numArray2[num11]), "H", str14, Convert.ToChar(2), "HI" })); } else { if (!((!(strArray9[3] == "0") || !(this._Username != strArray9[1])) || flag3)) { strArray9[1] = "-"; } builder4.Append(string.Concat(new object[] { Holo.Encoding.encodeVL64(numArray2[num11]), strArray9[0], Convert.ToChar(2), strArray9[1], Convert.ToChar(2), roomManager.getRoomState(int.Parse(strArray9[2])), Convert.ToChar(2), Holo.Encoding.encodeVL64(int.Parse(strArray9[4])), Holo.Encoding.encodeVL64(int.Parse(strArray9[5])), strArray9[6], Convert.ToChar(2) })); num24++; } num11++; } this.sendData(string.Concat(new object[] { "@}HHJ", Convert.ToChar(2), "HHH", Holo.Encoding.encodeVL64(num24 - num23), builder4.ToString() })); } return; case "@S": num22 = Holo.Encoding.decodeVL64(currentPacket.Substring(3)); if (DB.checkExists("SELECT id FROM rooms WHERE id = '" + num22 + "'") && !DB.checkExists(string.Concat(new object[] { "SELECT userid FROM users_favouriterooms WHERE userid = '", this.userID, "' AND roomid = '", num22, "'" }))) { if (DB.runReadUnsafe("SELECT COUNT(userid) FROM users_favouriterooms WHERE userid = '" + this.userID + "'", null) >= Config.Navigator_Favourites_maxRooms) { this.sendData("@anav_error_toomanyfavrooms"); return; } DB.runQuery(string.Concat(new object[] { "INSERT INTO users_favouriterooms(userid,roomid) VALUES ('", this.userID, "','", num22, "')" })); } return; case "@T": num22 = Holo.Encoding.decodeVL64(currentPacket.Substring(3)); DB.runQuery(string.Concat(new object[] { "DELETE FROM users_favouriterooms WHERE userid = '", this.userID, "' AND roomid = '", num22, "' LIMIT 1" })); return; case "EA": this.sendData("Ep" + Holo.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{": num25 = Holo.Encoding.decodeVL64(currentPacket.Substring(2)); if (eventManager.categoryOK(num25)) { this.sendData("Eb" + Holo.Encoding.encodeVL64(num25)); } return; case "E^": num25 = Holo.Encoding.decodeVL64(currentPacket.Substring(2)); if ((num25 >= 1) && (num25 <= 11)) { this.sendData("Eq" + Holo.Encoding.encodeVL64(num25) + eventManager.getEvents(num25)); } return; case "EZ": if (((this._isOwner && !this._hostsEvent) && !this._inPublicroom) && (this.roomUser != null)) { num25 = Holo.Encoding.decodeVL64(currentPacket.Substring(2)); if (eventManager.categoryOK(num25)) { length = Holo.Encoding.encodeVL64(num25).Length; num27 = Holo.Encoding.decodeB64(currentPacket.Substring(length + 2, 2)); str9 = currentPacket.Substring(length + 4, num27); str15 = currentPacket.Substring((length + num27) + 6); this._hostsEvent = true; eventManager.createEvent(num25, this.userID, this._roomID, str9, str15); this.Room.sendData("Er" + eventManager.getEvent(this._roomID)); } } return; case @"E\": if (((this._hostsEvent && this._isOwner) && !this._inPublicroom) && (this.roomUser != null)) { num25 = Holo.Encoding.decodeVL64(currentPacket.Substring(2)); if (eventManager.categoryOK(num25)) { length = Holo.Encoding.encodeVL64(num25).Length; num27 = Holo.Encoding.decodeB64(currentPacket.Substring(length + 2, 2)); str9 = currentPacket.Substring(length + 4, num27); str15 = currentPacket.Substring((length + num27) + 6); eventManager.editEvent(num25, this._roomID, str9, str15); 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 "@]": { string[] strArray10 = currentPacket.Split(new char[] { '/' }); if (DB.runRead("SELECT COUNT(id) FROM rooms WHERE owner = '" + this._Username + "'", null) >= Config.Navigator_createRoom_maxRooms) { this.sendData("@aError creating a private room"); return; } strArray10[2] = stringManager.filterSwearwords(strArray10[2]); strArray10[3] = strArray10[3].Substring(6, 1); strArray10[4] = roomManager.getRoomState(strArray10[4]).ToString(); if (!(strArray10[5] != "0") || !(strArray10[5] != "1")) { DB.runQuery("INSERT INTO rooms (name,owner,model,state,showname) VALUES ('" + DB.Stripslash(strArray10[2]) + "','" + this._Username + "','" + strArray10[3] + "','" + strArray10[4] + "','" + strArray10[5] + "')"); string str16 = DB.runRead("SELECT MAX(id) FROM rooms WHERE owner = '" + this._Username + "'"); this.sendData(string.Concat(new object[] { "@{", str16, Convert.ToChar(13), strArray10[2] })); return; } return; } case "@Y": { num22 = 0; if (!(currentPacket.Substring(2, 1) == "/")) { num22 = int.Parse(currentPacket.Substring(2).Split(new char[] { '/' })[0]); } else { num22 = int.Parse(currentPacket.Split(new char[] { '/' })[1]); } int num28 = 0; num29 = 0x19; strArray11 = currentPacket.Split(new char[] { Convert.ToChar(13) }); string str17 = ""; str18 = ""; for (num11 = 1; num11 < strArray11.Length; num11++) { string str19 = strArray11[num11].Split(new char[] { '=' })[0]; string text = strArray11[num11].Substring(str19.Length + 1); str69 = str19; if (str69 == null) { return; } if (!(str69 == "description")) { if (str69 != "allsuperuser") { if (str69 == "maxvisitors") { goto Label_3321; } if (str69 != "password") { return; } goto Label_3348; } } else { str17 = DB.Stripslash(stringManager.filterSwearwords(text)); continue; } num28 = int.Parse(text); if ((num28 != 0) && (num28 != 1)) { num28 = 0; } continue; Label_3321: num29 = int.Parse(text); if ((num29 < 10) || (num29 > 0x19)) { num29 = 0x19; } continue; Label_3348: str18 = DB.Stripslash(text); } DB.runQuery(string.Concat(new object[] { "UPDATE rooms SET description = '", str17, "',superusers = '", num28, "',visitors_max = '", num29, "',password = '", str18, "' WHERE id = '", num22, "' AND owner = '", this._Username, "' LIMIT 1" })); return; } case "@X": { strArray11 = currentPacket.Substring(2).Split(new char[] { '/' }); num22 = int.Parse(strArray11[0]); str21 = DB.Stripslash(stringManager.filterSwearwords(strArray11[1])); string str22 = strArray11[2]; if ((str22 != "1") && (str22 != "0")) { str22 = "1"; } int num30 = roomManager.getRoomState(strArray11[2]); DB.runQuery(string.Concat(new object[] { "UPDATE rooms SET name = '", str21, "',state = '", num30, "',showname = '", str22, "' WHERE id = '", num22, "' AND owner = '", this._Username, "' LIMIT 1" })); return; } case "BX": { num22 = Holo.Encoding.decodeVL64(currentPacket.Substring(2)); string s = DB.runRead(string.Concat(new object[] { "SELECT category FROM rooms WHERE id = '", num22, "' AND owner = '", this._Username, "'" })); if (s != "") { this.sendData("C^" + Holo.Encoding.encodeVL64(num22) + Holo.Encoding.encodeVL64(int.Parse(s))); } return; } case "BY": num22 = Holo.Encoding.decodeVL64(currentPacket.Substring(2)); num17 = Holo.Encoding.decodeVL64(currentPacket.Substring(Holo.Encoding.encodeVL64(num22).Length + 2)); if (DB.checkExists(string.Concat(new object[] { "SELECT id FROM room_categories WHERE id = '", num17, "' AND type = '2' AND parent > 0 AND access_rank_min <= ", this._Rank }))) { DB.runQuery(string.Concat(new object[] { "UPDATE rooms SET category = '", num17, "' WHERE id = '", num22, "' AND owner = '", this._Username, "' LIMIT 1" })); } return; case "@W": num22 = int.Parse(currentPacket.Substring(2)); if (DB.checkExists(string.Concat(new object[] { "SELECT id FROM rooms WHERE id = '", num22, "' AND owner = '", this._Username, "'" }))) { DB.runQuery("DELETE FROM room_rights WHERE roomid = '" + num22 + "'"); DB.runQuery("DELETE FROM rooms WHERE id = '" + num22 + "' LIMIT 1"); DB.runQuery("DELETE FROM room_votes WHERE roomid = '" + num22 + "'"); DB.runQuery("DELETE FROM room_bans WHERE roomid = '" + num22 + "' LIMIT 1"); DB.runQuery("DELETE FROM furniture WHERE roomid = '" + num22 + "'"); DB.runQuery("DELETE FROM furniture_moodlight WHERE roomid = '" + num22 + "'"); } if (roomManager.containsRoom(num22)) { roomManager.getRoom(num22).kickUsers(byte.Parse("9"), "This room has been deleted"); } return; case "BZ": num22 = Holo.Encoding.decodeVL64(currentPacket.Substring(2)); if (!roomManager.containsRoom(num22)) { this.sendData("C_"); return; } this.sendData("C_" + roomManager.getRoom(num22).Userlist); return; case "@u": this.sendData("Dj" + Holo.Encoding.encodeVL64(userManager.userCount) + Holo.Encoding.encodeVL64(roomManager.roomCount)); 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": { num22 = Holo.Encoding.decodeVL64(currentPacket.Substring(3)); bool flag4 = currentPacket.Substring(2, 1) == "A"; this.sendData("@S"); this.sendData("Bfhttp://wwww.hansolaris.com/imaginext"); 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) { bool flag5 = rankManager.containsRight(this._Rank, "fuse_enter_locked_rooms"); int num31 = DB.runRead("SELECT state FROM rooms WHERE id = '" + num22 + "'", null); if (!(((num31 != 3) || this._clubMember) || flag5)) { this.sendData("C`Kc"); return; } if (!((num31 != 4) || flag5)) { this.sendData("BK" + stringManager.getString("room_stafflocked")); return; } int num32 = DB.runRead("SELECT SUM(visitors_now) FROM rooms WHERE id = '" + num22 + "'", null); if (num32 > 0) { num29 = DB.runRead("SELECT SUM(visitors_max) FROM rooms WHERE id = '" + num22 + "'", null); if ((num32 >= num29) && !rankManager.containsRight(this._Rank, "fuse_enter_full_rooms")) { if (!flag4) { this.sendData("C`I"); } else { this.sendData("BK" + stringManager.getString("room_full")); } return; } } } this._roomID = num22; this._inPublicroom = flag4; this._ROOMACCESS_PRIMARY_OK = true; if (flag4) { string str25 = DB.runRead("SELECT model FROM rooms WHERE id = '" + num22 + "'"); this.sendData(string.Concat(new object[] { "AE", str25, " ", num22 })); 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, " ", num22 })); this.sendData("Cs" + this.gamePlayer.Game.getMap()); str24 = this.gamePlayer.Game.getMap(); return; } case "@v": this.sendData("@S"); return; case "@y": if (this._inPublicroom) { return; } this._isOwner = DB.checkExists(string.Concat(new object[] { "SELECT id FROM rooms WHERE id = '", this._roomID, "' AND owner = '", this._Username, "'" })); if (!this._isOwner) { this._hasRights = DB.checkExists(string.Concat(new object[] { "SELECT userid FROM room_rights WHERE roomid = '", this._roomID, "' AND userid = '", this.userID, "'" })); } if (!this._hasRights) { this._hasRights = DB.checkExists("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")) { int num33 = DB.runRead("SELECT state FROM rooms WHERE id = '" + this._roomID + "'", null); if (!(this._ROOMACCESS_PRIMARY_OK || (num33 == 2))) { return; } if (DB.checkExists(string.Concat(new object[] { "SELECT roomid FROM room_bans WHERE roomid = '", this._roomID, "' AND userid = '", this.userID, "'" }))) { if (DateTime.Compare(DateTime.Parse(DB.runRead(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; } DB.runQuery(string.Concat(new object[] { "DELETE FROM room_bans WHERE roomid = '", this._roomID, "' AND userid = '", this.userID, "' LIMIT 1" })); } switch (num33) { 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 str26 = ""; try { str26 = currentPacket.Split(new char[] { '/' })[1]; } catch { } str18 = DB.runRead("SELECT password FROM rooms WHERE id = '" + this._roomID + "'"); if (str26 != str18) { this.sendData("@aIncorrect flat password"); return; } goto Label_3FAA; } } } goto Label_3FAA; case "Ab": if (this._hasRights || !rankManager.containsRight(this.roomUser.User._Rank, "fuse_enter_locked_rooms")) { string userName = currentPacket.Substring(4, Holo.Encoding.decodeB64(currentPacket.Substring(2, 2))); bool flag6 = currentPacket.Substring(currentPacket.Length - 1) == "A"; virtualUser user3 = userManager.getUser(userName); if ((user3 != null) && (user3._roomID == this._roomID)) { if (flag6) { user3._ROOMACCESS_SECONDARY_OK = true; this.Room.sendDataToRights("@i" + userName); user3.sendData("@i"); } else { user3.sendData("BC"); user3._roomID = 0; user3._inPublicroom = false; user3._ROOMACCESS_PRIMARY_OK = false; user3._ROOMACCESS_SECONDARY_OK = false; user3._isOwner = false; user3._hasRights = false; user3.Room = null; user3.roomUser = null; } } return; } return; case "@{": if (this._ROOMACCESS_SECONDARY_OK && !this._inPublicroom) { string str28 = "model_" + DB.runRead("SELECT model FROM rooms WHERE id = '" + this._roomID + "'"); this.sendData(string.Concat(new object[] { "AE", str28, " ", this._roomID })); int num34 = DB.runRead("SELECT wallpaper FROM rooms WHERE id = '" + this._roomID + "'", null); int num35 = DB.runRead("SELECT floor FROM rooms WHERE id = '" + this._roomID + "'", null); this.sendData("@nlandscape/" + DB.runRead("SELECT landscape FROM rooms WHERE id = '" + this._roomID + "'")); if (num34 > 0) { this.sendData("@nwallpaper/" + num34); } if (num35 > 0) { this.sendData("@nfloor/" + num35); } if (!this._isOwner) { this._isOwner = rankManager.containsRight(this._Rank, "fuse_any_room_controller"); } if (this._isOwner) { this._hasRights = true; this.sendData("@o"); } if (this._hasRights) { this.sendData("@j"); } num36 = -1; if (DB.checkExists(string.Concat(new object[] { "SELECT userid FROM room_votes WHERE userid = '", this.userID, "' AND roomid = '", this._roomID, "'" }))) { num36 = DB.runRead("SELECT SUM(vote) FROM room_votes WHERE roomid = '" + this._roomID + "'", null); if (num36 < 0) { num36 = 0; } } this.sendData("EY" + Holo.Encoding.encodeVL64(num36)); this.sendData("Er" + eventManager.getEvent(this._roomID)); } return; case "A~": { if (!this._inPublicroom || !DB.checkExists("SELECT roomid FROM room_ads WHERE roomid = '" + this._roomID + "'")) { this.sendData("CP0"); return; } string str30 = DB.runRead("SELECT img FROM room_ads WHERE roomid = '" + this._roomID + "'"); string str31 = DB.runRead("SELECT uri FROM room_ads WHERE roomid = '" + this._roomID + "'"); this.sendData(string.Concat(new object[] { "CP", str30, Convert.ToChar(9), str31 })); 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()); str24 = 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 "@}": this.sendData("Dj" + Holo.Encoding.encodeVL64(userManager.userCount) + Holo.Encoding.encodeVL64(roomManager.roomCount)); 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), Holo.Encoding.encodeVL64(this.Room.Lobby.Rank.minPoints), Holo.Encoding.encodeVL64(this.Room.Lobby.Rank.maxPoints) })); this.sendData("Cz" + this.Room.Lobby.playerRanks); } this.sendData("DiH"); if (!this._receivedSpriteIndex) { this.sendData("DgYNEshelves_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\x0002XhXsvnr_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*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]SPpost.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\x0002YA\\window_skyscraper\x0002[j\\netari_poster\x0002Y`]det_bhole\x0002Y`]ads_campguitar\x0002Xw]"); 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); } return; case "CH": { num37 = 0; str7 = ""; int num38 = 0; string note = ""; string str33 = ""; str69 = currentPacket.Substring(2, 2); if (str69 != null) { virtualUser user4; if (str69 == "HH") { if (!rankManager.containsRight(this._Rank, "fuse_alert")) { this.sendData("BK" + stringManager.getString("modtool_accesserror")); } else { num37 = Holo.Encoding.decodeB64(currentPacket.Substring(4, 2)); str7 = currentPacket.Substring(6, num37).Replace(Convert.ToChar(1).ToString(), " "); num38 = Holo.Encoding.decodeB64(currentPacket.Substring(num37 + 6, 2)); note = currentPacket.Substring(num37 + 8, num38); str33 = currentPacket.Substring((num37 + num38) + 10); if ((str7 != "") && !(str33 == "")) { user4 = userManager.getUser(str33); if (user4 == null) { this.sendData("BK" + stringManager.getString("modtool_actionfail") + "\r" + stringManager.getString("modtool_usernotfound")); } else { user4.sendData("B!" + str7 + Convert.ToChar(2)); staffManager.addStaffMessage("alert", this.userID, user4.userID, str7, note); } } } return; } if (str69 == "HI") { if (!rankManager.containsRight(this._Rank, "fuse_kick")) { this.sendData("BK" + stringManager.getString("modtool_accesserror")); } else { num37 = Holo.Encoding.decodeB64(currentPacket.Substring(4, 2)); str7 = currentPacket.Substring(6, num37).Replace(Convert.ToChar(1).ToString(), " "); num38 = Holo.Encoding.decodeB64(currentPacket.Substring(num37 + 6, 2)); note = currentPacket.Substring(num37 + 8, num38); str33 = currentPacket.Substring((num37 + num38) + 10); if ((str7 != "") && !(str33 == "")) { user4 = userManager.getUser(str33); if (user4 == null) { this.sendData("BK" + stringManager.getString("modtool_actionfail") + "\r" + stringManager.getString("modtool_usernotfound")); } else if ((user4.Room != null) && (user4.roomUser != null)) { if (user4._Rank < this._Rank) { user4.Room.removeUser(user4.roomUser.roomUID, true, str7); staffManager.addStaffMessage("kick", this.userID, user4.userID, str7, 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.sendData("BK" + stringManager.getString("modtool_accesserror")); } else { int num39 = 0; int hours = 0; bool flag7 = currentPacket.Substring(currentPacket.Length - 1, 1) == "I"; num37 = Holo.Encoding.decodeB64(currentPacket.Substring(4, 2)); str7 = currentPacket.Substring(6, num37).Replace(Convert.ToChar(1).ToString(), " "); num38 = Holo.Encoding.decodeB64(currentPacket.Substring(num37 + 6, 2)); note = currentPacket.Substring(num37 + 8, num38); num39 = Holo.Encoding.decodeB64(currentPacket.Substring((num37 + num38) + 8, 2)); str33 = currentPacket.Substring((num37 + num38) + 10, num39); hours = Holo.Encoding.decodeVL64(currentPacket.Substring(((num37 + num38) + num39) + 10)); if (((str7 != "") && (str33 != "")) && (hours != 0)) { string[] strArray12 = DB.runReadRow("SELECT id,rank,ipaddress_last FROM users WHERE name = '" + DB.Stripslash(str33) + "'"); if (strArray12.Length == 0) { this.sendData("BK" + stringManager.getString("modtool_actionfail") + "\r" + stringManager.getString("modtool_usernotfound")); } else if (byte.Parse(strArray12[1]) >= this._Rank) { this.sendData("BK" + stringManager.getString("modtool_actionfail") + "\r" + stringManager.getString("modtool_rankerror")); } else { int targetID = int.Parse(strArray12[0]); string str34 = ""; staffManager.addStaffMessage("ban", this.userID, targetID, str7, note); if (flag7 && rankManager.containsRight(this._Rank, "fuse_superban")) { userManager.setBan(strArray12[2], hours, str7); str34 = userManager.generateBanReport(strArray12[2]); } else { userManager.setBan(targetID, hours, str7); str34 = userManager.generateBanReport(targetID); } this.sendData("BK" + str34); } } } return; } if (str69 == "IH") { if (!rankManager.containsRight(this._Rank, "fuse_room_alert")) { this.sendData("BK" + stringManager.getString("modtool_accesserror")); } else if ((this.Room != null) && (this.roomUser != null)) { num37 = Holo.Encoding.decodeB64(currentPacket.Substring(4, 2)); str7 = currentPacket.Substring(6, num37).Replace(Convert.ToChar(1).ToString(), " "); num38 = Holo.Encoding.decodeB64(currentPacket.Substring(num37 + 6, 2)); note = currentPacket.Substring(num37 + 8, num38); if (str7 != "") { this.Room.sendData("B!" + str7 + Convert.ToChar(2)); staffManager.addStaffMessage("ralert", this.userID, this._roomID, str7, note); } } return; } if (str69 == "II") { if (!rankManager.containsRight(this._Rank, "fuse_room_kick")) { this.sendData("BK" + stringManager.getString("modtool_accesserror")); } else if ((this.Room != null) && (this.roomUser != null)) { num37 = Holo.Encoding.decodeB64(currentPacket.Substring(4, 2)); str7 = currentPacket.Substring(6, num37).Replace(Convert.ToChar(1).ToString(), " "); num38 = Holo.Encoding.decodeB64(currentPacket.Substring(num37 + 6, 2)); note = currentPacket.Substring(num37 + 8, num38); if (str7 != "") { this.Room.kickUsers(this._Rank, str7); staffManager.addStaffMessage("rkick", this.userID, this._roomID, str7, note); } } return; } } return; } case "Cm": strArray13 = DB.runReadRow("SELECT id, date, message, picked_up FROM cms_help WHERE username = '" + this._Username + "' AND picked_up = '0'"); if (strArray13.Length != 0) { this.sendData(string.Concat(new object[] { "D\x007fI", strArray13[0], Convert.ToChar(2), strArray13[1], Convert.ToChar(2), strArray13[2], Convert.ToChar(2) })); return; } this.sendData("D\x007fH"); return; case "Cn": num42 = DB.runRead("SELECT id FROM cms_help WHERE username = '" + this._Username + "' AND picked_up = '0'", null); DB.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", Holo.Encoding.encodeVL64(num42), Convert.ToChar(2), "IUser Deleted!", Convert.ToChar(2), "User Deleted!", Convert.ToChar(2), "User Deleted!", Convert.ToChar(2), Holo.Encoding.encodeVL64(0), Convert.ToChar(2), Convert.ToChar(2), "H", Convert.ToChar(2), Holo.Encoding.encodeVL64(0) })); return; case "AV": if (!DB.checkExists("SELECT id FROM cms_help WHERE username = '" + this._Username + "' AND picked_up = '0'")) { num37 = Holo.Encoding.decodeB64(currentPacket.Substring(2, 2)); if (num37 != 0) { string query = currentPacket.Substring(4, num37); DB.runQuery(string.Concat(new object[] { "INSERT INTO cms_help (username,ip,message,date,picked_up,subject,roomid) VALUES ('", this._Username, "','", this.connectionSocket.RemoteEndPoint.ToString().Split(new char[] { char.Parse(":") })[0], "','", DB.Stripslash(query), "','", DateTime.Now, "','0','CFH message [hotel]','", this._roomID.ToString(), "')" })); num42 = DB.runRead("SELECT id FROM cms_help WHERE username = '" + this._Username + "' AND picked_up = '0'", null); str21 = DB.runRead("SELECT name FROM rooms WHERE id = '" + this._roomID + "'"); this.sendData("EAH"); userManager.sendToRank(Config.Minimum_CFH_Rank, true, string.Concat(new object[] { "BT", Holo.Encoding.encodeVL64(num42), Convert.ToChar(2), "ISent: ", DateTime.Now, Convert.ToChar(2), this._Username, Convert.ToChar(2), query, Convert.ToChar(2), Holo.Encoding.encodeVL64(this._roomID), Convert.ToChar(2), str21, Convert.ToChar(2), "I", Convert.ToChar(2), Holo.Encoding.encodeVL64(this._roomID) })); } return; } return; case "CG": if (rankManager.containsRight(this._Rank, "fuse_receive_calls_for_help")) { num42 = Holo.Encoding.decodeVL64(currentPacket.Substring(4, Holo.Encoding.decodeB64(currentPacket.Substring(2, 2)))); string str36 = currentPacket.Substring(Holo.Encoding.decodeB64(currentPacket.Substring(2, 2)) + 6); string str37 = DB.runRead("SELECT username FROM cms_help WHERE id = '" + num42 + "'"); if (str37 == null) { this.sendData("BK" + stringManager.getString("cfh_fail")); } else { virtualUser user5 = userManager.getUser(userManager.getUserID(str37)); if (user5._isLoggedIn) { user5.sendData("DR" + str36 + Convert.ToChar(2)); DB.runQuery(string.Concat(new object[] { "UPDATE cms_help SET picked_up = '", this._Username, "' WHERE id = '", num42, "' LIMIT 1" })); } } return; } return; case "CF": if (rankManager.containsRight(this._Rank, "fuse_receive_calls_for_help")) { num42 = Holo.Encoding.decodeVL64(currentPacket.Substring(4, Holo.Encoding.decodeB64(currentPacket.Substring(2, 2)))); strArray13 = DB.runReadRow("SELECT username,message,date,picked_up,roomid FROM cms_help WHERE id = '" + num42 + "'"); if (strArray13.Length != 0) { if (strArray13[3] == "1") { this.sendData("BK" + stringManager.getString("cfh_picked_up")); } else { DB.runQuery("DELETE FROM cms_help WHERE id = '" + num42 + "' LIMIT 1"); userManager.sendToRank(Config.Minimum_CFH_Rank, true, string.Concat(new object[] { "BT", Holo.Encoding.encodeVL64(num42), Convert.ToChar(2), "HStaff Deleted!", Convert.ToChar(2), "Staff Deleted!", Convert.ToChar(2), "Staff Deleted!", Convert.ToChar(2), Holo.Encoding.encodeVL64(0), Convert.ToChar(2), Convert.ToChar(2), "H", Convert.ToChar(2), Holo.Encoding.encodeVL64(0) })); } } return; } return; case "@p": num42 = Holo.Encoding.decodeVL64(currentPacket.Substring(4)); if (DB.checkExists("SELECT id FROM cms_help WHERE id = '" + num42 + "'")) { string[] strArray14 = DB.runReadRow("SELECT picked_up,username,message,roomid FROM cms_help WHERE id = '" + num42 + "'"); str21 = DB.runRead("SELECT name FROM rooms WHERE id = '" + strArray14[3] + "'"); if (strArray14[0] == "1") { this.sendData("BK" + stringManager.getString("cfh_picked_up")); } else { userManager.sendToRank(Config.Minimum_CFH_Rank, true, string.Concat(new object[] { "BT", Holo.Encoding.encodeVL64(num42), Convert.ToChar(2), "IPicked up: ", DateTime.Now, Convert.ToChar(2), strArray14[1], Convert.ToChar(2), strArray14[2], Convert.ToChar(2), Holo.Encoding.encodeVL64(int.Parse(strArray14[3])), Convert.ToChar(2), str21, Convert.ToChar(2), "I", Convert.ToChar(2), Holo.Encoding.encodeVL64(int.Parse(strArray14[3])) })); } DB.runQuery("UPDATE cms_help SET picked_up = '1' WHERE id = '" + num42 + "' LIMIT 1"); return; } this.sendData(stringManager.getString("cfh_deleted")); return; case "EC": if (rankManager.containsRight(this._Rank, "fuse_receive_calls_for_help")) { num44 = Holo.Encoding.decodeB64(currentPacket.Substring(2, 2)); num22 = DB.runRead("SELECT roomid FROM cms_help WHERE id = '" + Holo.Encoding.decodeVL64(currentPacket.Substring(4, num44)) + "'", null); if (num22 != 0) { if (roomManager.getRoom(num22).isPublicroom) { this.sendData("D^I" + Holo.Encoding.encodeVL64(num22)); } else { this.sendData("D^H" + Holo.Encoding.encodeVL64(num22)); } } return; } return; case "AO": if (!((((this.Room == null) || (this.roomUser == null)) || this.statusManager.containsStatus("sit")) || this.statusManager.containsStatus("lay"))) { num45 = int.Parse(currentPacket.Substring(2).Split(new char[] { ' ' })[0]); num46 = int.Parse(currentPacket.Split(new char[] { ' ' })[1]); this.roomUser.Z1 = Rotation.Calculate(this.roomUser.X, this.roomUser.Y, num45, num46); this.roomUser.Z2 = this.roomUser.Z1; this.roomUser.Refresh(); } return; case "AK": if (((this.Room != null) && (this.roomUser != null)) && !this.roomUser.walkLock) { int num47 = Holo.Encoding.decodeB64(currentPacket.Substring(2, 2)); int num48 = Holo.Encoding.decodeB64(currentPacket.Substring(4, 2)); if (!this.roomUser.SPECIAL_TELEPORTABLE) { this.roomUser.goalX = num47; this.roomUser.goalY = num48; return; } this.roomUser.X = num47; this.roomUser.Y = num48; 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")) { string str38 = DB.Stripslash(currentPacket.Substring(2)); this.roomUser.SwimOutfit = str38; 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; DB.runQuery(string.Concat(new object[] { "UPDATE users SET figure_swim = '", str38, "' WHERE id = '", this.userID, "' LIMIT 1" })); userManager.getUser(this.userID).refreshAppearance(true, true, true); } } return; case "B^": if ((this.Room != null) && (this.roomUser != null)) { int num49 = Holo.Encoding.decodeB64(currentPacket.Substring(2, 2)); int num50 = Holo.Encoding.decodeVL64(currentPacket.Substring(num49 + 4, 1)); switch (num50) { case 0: case 1: { string str39 = DB.Stripslash(currentPacket.Substring(4, num49)); if (DB.checkExists(string.Concat(new object[] { "SELECT userid FROM users_badges WHERE userid = '", this.userID, "' AND badgeid = '", str39, "'" }))) { DB.runQuery(string.Concat(new object[] { "UPDATE users SET badge_status = '", num50, "' WHERE id = '", this.userID, "' LIMIT 1" })); DB.runQuery(string.Concat(new object[] { "UPDATE users_badges SET iscurrent = '0' WHERE userid = '", this.userID, "' AND badgeid = '", this._nowBadge, "' LIMIT 1" })); DB.runQuery(string.Concat(new object[] { "UPDATE users_badges SET iscurrent = '1' WHERE userid = '", this.userID, "' AND badgeid = '", str39, "' LIMIT 1" })); string data = "Cd" + Holo.Encoding.encodeVL64(this.roomUser.roomUID); if (num50 == 1) { this._nowBadge = str39; data = data + str39 + Convert.ToChar(2); } else { this._nowBadge = ""; } this.Room.sendData(data); } return; } } } return; case "DG": { int num51 = Holo.Encoding.decodeVL64(currentPacket.Substring(2)); string[] strArray15 = DB.runReadColumn("SELECT tag FROM cms_tags WHERE ownerid = '" + num51 + "'", 20); StringBuilder builder6 = new StringBuilder(Holo.Encoding.encodeVL64(num51) + Holo.Encoding.encodeVL64(strArray15.Length)); num11 = 0; while (num11 < strArray15.Length) { builder6.Append(strArray15[num11] + Convert.ToChar(2)); num11++; } this.sendData("E^" + builder6.ToString()); return; } case "Cg": if ((this.Room != null) && (this.roomUser != null)) { int num52 = Holo.Encoding.decodeVL64(currentPacket.Substring(2)); if (!DB.checkExists("SELECT id FROM groups_details WHERE id = '" + num52 + "'")) { return; } str9 = DB.runRead("SELECT name FROM groups_details WHERE id = '" + num52 + "'"); str15 = DB.runRead("SELECT description FROM groups_details WHERE id = '" + num52 + "'"); num22 = DB.runRead("SELECT roomid FROM groups_details WHERE id = '" + num52 + "'", null); str21 = ""; if (num22 <= 0) { num22 = -1; } else { str21 = DB.runRead("SELECT name FROM rooms WHERE id = '" + num22 + "'"); } this.sendData(string.Concat(new object[] { "Dw", Holo.Encoding.encodeVL64(num52), str9, Convert.ToChar(2), str15, Convert.ToChar(2), Holo.Encoding.encodeVL64(num22), str21, Convert.ToChar(2) })); } return; case "AX": if (this.statusManager != null) { str41 = currentPacket.Substring(2); if (!(str41 == "CarryItem")) { if (str41 == "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")) { return; } int num53 = Holo.Encoding.decodeVL64(currentPacket.Substring(2)); if ((num53 < 0) || (num53 > 4)) { return; } this.statusManager.addStatus("dance", num53.ToString()); } else { this.statusManager.addStatus("dance", ""); } this.statusManager.Refresh(); } return; case "AP": if ((this.Room != null) && (this.roomUser != null)) { str42 = currentPacket.Substring(2); if (!this.statusManager.containsStatus("lay") && !str42.Contains("/")) { try { int num54 = int.Parse(str42); if ((num54 < 1) || (num54 > 0x1a)) { return; } } catch { if (((!this._inPublicroom && (str42 != "Water")) && (str42 != "Milk")) && (str42 != "Juice")) { return; } } this.statusManager.carryItem(str42); return; } } return; case "Cl": if ((this.Room != null) && (this.roomUser != null)) { int startIndex = 2; int num56 = Holo.Encoding.decodeVL64(currentPacket.Substring(startIndex)); if (!DB.checkExists(string.Concat(new object[] { "SELECT aid FROM poll_results WHERE uid = '", this.userID, "' AND pid = '", num56, "'" }))) { int num58; startIndex += Holo.Encoding.encodeVL64(num56).Length; int num57 = Holo.Encoding.decodeVL64(currentPacket.Substring(startIndex)); startIndex += Holo.Encoding.encodeVL64(num57).Length; if (DB.checkExists("SELECT type FROM poll_questions WHERE qid = '" + num57 + "' AND type = '3'")) { num58 = Holo.Encoding.decodeB64(currentPacket.Substring(startIndex, 2)); startIndex += 2; string str43 = DB.Stripslash(currentPacket.Substring(startIndex, num58)); DB.runQuery(string.Concat(new object[] { "INSERT INTO poll_results (pid,qid,aid,answers,uid) VALUES ('", num56, "','", num57, "','0','", str43, "','", this.userID, "')" })); } else { num58 = Holo.Encoding.decodeVL64(currentPacket.Substring(startIndex)); startIndex += Holo.Encoding.encodeVL64(num58).Length; int[] numArray9 = new int[num58]; for (num11 = 0; num11 < num58; num11++) { numArray9[num11] = Holo.Encoding.decodeVL64(currentPacket.Substring(startIndex)); startIndex += Holo.Encoding.encodeVL64(numArray9[num11]).Length; } foreach (int num59 in numArray9) { DB.runQuery(string.Concat(new object[] { "INSERT INTO poll_results (pid,qid,aid,answers,uid) VALUES ('", num56, "','", num57, "','", num59, "',' ','", this.userID, "')" })); } } } return; } return; case "cl": if ((((this.Room != null) && (this.roomUser != null)) && this.statusManager.containsStatus("sit")) && this.statusManager.containsStatus("lay")) { this.statusManager.dropCarrydItem(); if (currentPacket.Length == 2) { this.statusManager.addStatus("ignore", ""); } this.statusManager.Refresh(); } return; case "@t": case "@w": if (((!this._isMuted && (this.Room != null)) && (this.roomUser != null)) || ((this.Room == null) && (this.gamePlayer != null))) { str7 = currentPacket.Substring(4); userManager.addChatMessage(this._Username, this._roomID, str7); str7 = stringManager.filterSwearwords(str7); if (!(str7.Substring(0, 1) == ":") || !this.isSpeechCommand(str7.Substring(1))) { if (currentPacket.Substring(1, 1) == "w") { if (this.gamePlayer == null) { this.Room.sendShout(this.roomUser, str7); } else { this.gamePlayer.Game.sendData(string.Concat(new object[] { "Ei", Holo.Encoding.encodeVL64(this.gamePlayer.roomUID), "H", Convert.ToChar(1), "@Z", Holo.Encoding.encodeVL64(this.gamePlayer.roomUID), str7, Convert.ToChar(2) })); } } else if (this.gamePlayer == null) { this.Room.sendSaying(this.roomUser, str7); } else { this.gamePlayer.Game.sendData(string.Concat(new object[] { "Ei", Holo.Encoding.encodeVL64(this.gamePlayer.roomUID), "H", Convert.ToChar(1), "@X", Holo.Encoding.encodeVL64(this.gamePlayer.roomUID), str7, Convert.ToChar(2) })); } return; } if (this.roomUser == null) { this.gamePlayer.Game.sendData("Ei" + Holo.Encoding.encodeVL64(this.gamePlayer.roomUID) + "H"); return; } if (this.roomUser.isTyping) { this.Room.sendData("Ei" + Holo.Encoding.encodeVL64(this.roomUser.roomUID) + "H"); this.roomUser.isTyping = false; } } return; case "@x": if ((!this._isMuted && (this.Room != null)) && (this.roomUser != null)) { str4 = currentPacket.Substring(4).Split(new char[] { ' ' })[0]; str7 = currentPacket.Substring(str4.Length + 5); userManager.addChatMessage(this._Username, this._roomID, str7); str7 = stringManager.filterSwearwords(str7); this.Room.sendWhisper(this.roomUser, str4, str7); } return; case "D}": if (((!this._isMuted && (this.Room != null)) && (this.roomUser != null)) || ((this.Room == null) && (this.gamePlayer != null))) { if (this.gamePlayer != null) { this.gamePlayer.Game.sendData("Ei" + Holo.Encoding.encodeVL64(this.gamePlayer.roomUID) + "I"); return; } this.Room.sendData("Ei" + Holo.Encoding.encodeVL64(this.roomUser.roomUID) + "I"); this.roomUser.isTyping = true; } return; case "D~": if (((this.Room != null) && (this.roomUser != null)) || ((this.Room == null) && (this.gamePlayer != null))) { if (this.gamePlayer != null) { this.gamePlayer.Game.sendData("Ei" + Holo.Encoding.encodeVL64(this.gamePlayer.roomUID) + "H"); return; } this.Room.sendData("Ei" + Holo.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)) { user6 = userManager.getUser(str44); if (((user6._roomID == this._roomID) && !user6._hasRights) && !user6._isOwner) { DB.runQuery(string.Concat(new object[] { "INSERT INTO room_rights(roomid,userid) VALUES ('", this._roomID, "','", user6.userID, "')" })); user6._hasRights = true; user6.statusManager.addStatus("flatctrl", "onlyfurniture"); user6.roomUser.Refresh(); user6.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)) { user6 = userManager.getUser(str44); if (((user6._roomID == this._roomID) && user6._hasRights) && !user6._isOwner) { DB.runQuery(string.Concat(new object[] { "DELETE FROM room_rights WHERE roomid = '", this._roomID, "' AND userid = '", user6.userID, "' LIMIT 1" })); user6._hasRights = false; user6.statusManager.removeStatus("flatctrl"); user6.roomUser.Refresh(); user6.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)) { user6 = userManager.getUser(str44); if ((user6._roomID == this._roomID) && (!user6._isOwner || ((user6._Rank <= this._Rank) && !rankManager.containsRight(user6._Rank, "fuse_any_room_controller")))) { user6.roomUser.walkLock = true; user6.roomUser.walkDoor = true; user6.roomUser.goalX = this.Room.doorX; user6.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)) { user6 = userManager.getUser(str44); if ((user6._roomID == this._roomID) && (!user6._isOwner || ((user6._Rank <= this._Rank) && !rankManager.containsRight(user6._Rank, "fuse_any_room_controller")))) { string str45 = DateTime.Now.AddMinutes((double) Config.Rooms_roomBan_banDuration).ToString(); DB.runQuery(string.Concat(new object[] { "INSERT INTO room_bans (roomid,userid,ban_expire) VALUES ('", this._roomID, "','", user6.userID, "','", str45, "')" })); user6.roomUser.walkLock = true; user6.roomUser.walkDoor = true; user6.roomUser.goalX = this.Room.doorX; user6.roomUser.goalY = this.Room.doorY; } } return; } return; case "DE": if ((!this._inPublicroom && (this.Room != null)) && (this.roomUser != null)) { int num60 = Holo.Encoding.decodeVL64(currentPacket.Substring(2)); if (((num60 == 1) || (num60 == -1)) && !DB.checkExists(string.Concat(new object[] { "SELECT userid FROM room_votes WHERE userid = '", this.userID, "' AND roomid = '", this._roomID, "'" }))) { DB.runQuery(string.Concat(new object[] { "INSERT INTO room_votes (userid,roomid,vote) VALUES ('", this.userID, "','", this._roomID, "','", num60, "')" })); num36 = DB.runRead("SELECT SUM(vote) FROM room_votes WHERE roomid = '" + this._roomID + "'", null); if (num36 < 0) { num36 = 0; } this.roomUser.hasVoted = true; if (this._isOwner) { this.Room.sendNewVoteAmount(num36); } } return; } return; case "Ae": this.sendData("A~" + catalogueManager.getPageIndex(this._Rank)); return; case "Af": { string pageName = currentPacket.Split(new char[] { '/' })[1]; this.sendData("A\x007f" + catalogueManager.getPage(pageName, this._Rank)); return; } case "Ad": { strArray11 = currentPacket.Split(new char[] { Convert.ToChar(13) }); string str47 = strArray11[1]; str42 = strArray11[3]; int num61 = DB.runRead(string.Concat(new object[] { "SELECT indexid FROM catalogue_pages WHERE indexname = '", DB.Stripslash(str47), "' AND minrank <= ", this._Rank }), null); num62 = DB.runRead("SELECT tid FROM catalogue_items WHERE name_cct = '" + DB.Stripslash(str42) + "'", null); int num63 = DB.runRead(string.Concat(new object[] { "SELECT catalogue_cost FROM catalogue_items WHERE catalogue_id_page = '", num61, "' AND tid = '", num62, "'" }), null); if ((num63 != 0) && (num63 <= this._Credits)) { int receiverID = this.userID; int presentBoxID = 0; num22 = 0; if (strArray11[5] == "1") { string str48 = strArray11[6]; if (str48 != this._Username) { num11 = DB.runRead("SELECT id FROM users WHERE name = '" + DB.Stripslash(str48) + "'", null); if (num11 > 0) { receiverID = num11; } else { this.sendData("AL" + str48); return; } } string str50 = DB.runRead("SELECT tid FROM catalogue_items WHERE name_cct = '" + ("present_gen" + new Random().Next(1, 7)) + "'"); string str51 = DB.Stripslash(stringManager.filterSwearwords(strArray11[7])); DB.runQuery(string.Concat(new object[] { "INSERT INTO furniture(tid,ownerid,var) VALUES ('", str50, "','", receiverID, "','!", str51, "')" })); presentBoxID = catalogueManager.lastItemID; num22 = -1; } this._Credits -= num63; this.sendData("@F" + this._Credits); DB.runQuery(string.Concat(new object[] { "UPDATE users SET credits = '", this._Credits, "' WHERE id = '", this.userID, "' LIMIT 1" })); if (stringManager.getStringPart(str42, 0, 4) == "deal") { int num66 = int.Parse(str42.Substring(4)); numArray10 = DB.runReadColumn("SELECT tid FROM catalogue_deals WHERE id = '" + num66 + "'", 0, null); int[] numArray11 = DB.runReadColumn("SELECT amount FROM catalogue_deals WHERE id = '" + num66 + "'", 0, null); for (num11 = 0; num11 < numArray10.Length; num11++) { for (num67 = 1; num67 <= numArray11[num11]; num67++) { DB.runQuery(string.Concat(new object[] { "INSERT INTO furniture(tid,ownerid,roomid) VALUES ('", numArray10[num11], "','", receiverID, "','", num22, "')" })); catalogueManager.handlePurchase(numArray10[num11], receiverID, num22, 0, presentBoxID); } } } else { DB.runQuery(string.Concat(new object[] { "INSERT INTO furniture(tid,ownerid,roomid) VALUES ('", num62, "','", receiverID, "','", num22, "')" })); if ((catalogueManager.getTemplate(num62).Sprite == "wallpaper") || (catalogueManager.getTemplate(num62).Sprite == "floor")) { int decorID = int.Parse(strArray11[4]); catalogueManager.handlePurchase(num62, receiverID, 0, decorID, presentBoxID); } else if (stringManager.getStringPart(str42, 0, 11) == "prizetrophy") { string str52 = DB.Stripslash(stringManager.filterSwearwords(strArray11[4])); string str53 = this._Username + "\t" + DateTime.Today.ToShortDateString() + "\t" + strArray11[4]; DB.runQuery(string.Concat(new object[] { "UPDATE furniture SET var = '", str53, "' WHERE id = '", catalogueManager.lastItemID, "' LIMIT 1" })); } else { catalogueManager.handlePurchase(num62, receiverID, num22, 0, presentBoxID); } } if (receiverID == this.userID) { this.refreshHand("last"); } else if (userManager.containsUser(receiverID)) { userManager.getUser(receiverID).refreshHand("last"); } return; } this.sendData("AD"); return; } case "Ca": if ((Config.enableRecycler && (this.Room != null)) && !recyclerManager.sessionExists(this.userID)) { int itemCount = Holo.Encoding.decodeVL64(currentPacket.Substring(2)); if (recyclerManager.rewardExists(itemCount)) { recyclerManager.createSession(this.userID, itemCount); currentPacket = currentPacket.Substring(Holo.Encoding.encodeVL64(itemCount).Length + 2); for (num11 = 0; num11 < itemCount; num11++) { lastItemID = Holo.Encoding.decodeVL64(currentPacket); if (DB.checkExists("SELECT id FROM furniture WHERE ownerid = '" + this.userID + "' AND roomid = '0'")) { DB.runQuery("UPDATE furniture SET roomid = '-2' WHERE id = '" + lastItemID + "' LIMIT 1"); currentPacket = currentPacket.Substring(Holo.Encoding.encodeVL64(lastItemID).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)) { str54 = currentPacket.Substring(2); this.refreshHand(str54); return; } return; case "LB": if ((this.Room != null) && (this.roomUser != null)) { str54 = currentPacket.Substring(2); this.refreshHand(str54); return; } return; case "AB": if (((this._hasRights && !this._inPublicroom) && (this.Room != null)) && (this.roomUser != null)) { lastItemID = int.Parse(currentPacket.Split(new char[] { '/' })[1]); string str55 = currentPacket.Substring(2).Split(new char[] { '/' })[0]; if ((!(str55 != "wallpaper") || !(str55 != "floor")) && (catalogueManager.getTemplate(DB.runRead(string.Concat(new object[] { "SELECT tid FROM furniture WHERE id = '", lastItemID, "' AND ownerid = '", this.userID, "' AND roomid = '0'" }), null)).Sprite == str55)) { string str56 = DB.runRead("SELECT var FROM furniture WHERE id = '" + lastItemID + "'"); this.Room.sendData("@n" + str55 + "/" + str56); DB.runQuery(string.Concat(new object[] { "UPDATE rooms SET ", str55, " = '", str56, "' WHERE id = '", this._roomID, "' LIMIT 1" })); DB.runQuery("DELETE FROM furniture WHERE id = '" + lastItemID + "' LIMIT 1"); } return; } return; case "AZ": if (((this._hasRights && !this._inPublicroom) && (this.Room != null)) && (this.roomUser != null)) { lastItemID = int.Parse(currentPacket.Split(new char[] { ' ' })[0].Substring(2)); num62 = DB.runRead(string.Concat(new object[] { "SELECT tid FROM furniture WHERE id = '", lastItemID, "' AND ownerid = '", this.userID, "' AND roomid = '0'" }), null); if (num62 != 0) { if (catalogueManager.getTemplate(num62).typeID == 0) { string wallPosition = currentPacket.Substring(lastItemID.ToString().Length + 3); string str58 = catalogueManager.wallPositionOK(wallPosition); if (str58 == wallPosition) { string str59 = DB.runRead("SELECT var FROM furniture WHERE id = '" + lastItemID + "'"); if (stringManager.getStringPart(catalogueManager.getTemplate(num62).Sprite, 0, 7) == "post.it") { if (int.Parse(str59) > 1) { DB.runQuery("UPDATE furniture SET var = var - 1 WHERE id = '" + lastItemID + "' LIMIT 1"); } else { DB.runQuery("DELETE FROM furniture WHERE id = '" + lastItemID + "' LIMIT 1"); } DB.runQuery(string.Concat(new object[] { "INSERT INTO furniture(tid,ownerid) VALUES ('", num62, "','", this.userID, "')" })); lastItemID = catalogueManager.lastItemID; DB.runQuery("INSERT INTO furniture_stickies(id) VALUES ('" + lastItemID + "')"); str59 = "FFFF33"; DB.runQuery(string.Concat(new object[] { "UPDATE furniture SET var = '", str59, "' WHERE id = '", lastItemID, "' LIMIT 1" })); } this.Room.wallItemManager.addItem(lastItemID, num62, str58, str59, true); } } else { strArray16 = currentPacket.Split(new char[] { ' ' }); num45 = int.Parse(strArray16[1]); num46 = int.Parse(strArray16[2]); num71 = byte.Parse(strArray16[3]); byte typeID = catalogueManager.getTemplate(num62).typeID; this.Room.floorItemManager.placeItem(lastItemID, num62, num45, num46, typeID, num71); } } return; } return; case "AC": if (((this._isOwner && !this._inPublicroom) && (this.Room != null)) && (this.roomUser != null)) { lastItemID = int.Parse(currentPacket.Split(new char[] { ' ' })[2]); if (this.Room.floorItemManager.containsItem(lastItemID)) { this.Room.floorItemManager.removeItem(lastItemID, this.userID); } else { if (!this.Room.wallItemManager.containsItem(lastItemID) || !(stringManager.getStringPart(this.Room.wallItemManager.getItem(lastItemID).Sprite, 0, 7) != "post.it")) { return; } this.Room.wallItemManager.removeItem(lastItemID, this.userID); } this.refreshHand("update"); return; } return; case "AI": if (((this._hasRights && !this._inPublicroom) && (this.Room != null)) && (this.roomUser != null)) { lastItemID = int.Parse(currentPacket.Split(new char[] { ' ' })[0].Substring(2)); if (this.Room.floorItemManager.containsItem(lastItemID)) { strArray16 = currentPacket.Split(new char[] { ' ' }); num45 = int.Parse(strArray16[1]); num46 = int.Parse(strArray16[2]); num71 = byte.Parse(strArray16[3]); this.Room.floorItemManager.relocateItem(lastItemID, num45, num46, num71); } return; } return; case "CV": if ((!this._inPublicroom && (this.Room != null)) && (this.roomUser != null)) { lastItemID = int.Parse(currentPacket.Substring(4, Holo.Encoding.decodeB64(currentPacket.Substring(2, 2)))); int toStatus = Holo.Encoding.decodeVL64(currentPacket.Substring(lastItemID.ToString().Length + 4)); this.Room.wallItemManager.toggleItemStatus(lastItemID, toStatus); return; } return; case "AJ": try { lastItemID = int.Parse(currentPacket.Substring(4, Holo.Encoding.decodeB64(currentPacket.Substring(2, 2)))); string str60 = DB.Stripslash(currentPacket.Substring(lastItemID.ToString().Length + 6)); this.Room.floorItemManager.toggleItemStatus(lastItemID, str60, this._hasRights); } catch { } return; case "AN": if (((this._isOwner && !this._inPublicroom) && (this.Room != null)) && (this.roomUser != null)) { lastItemID = int.Parse(currentPacket.Substring(2)); if (this.Room.floorItemManager.containsItem(lastItemID)) { numArray10 = DB.runReadColumn("SELECT itemid FROM furniture_presents WHERE id = '" + lastItemID + "'", 0, null); if (numArray10.Length > 0) { num11 = 0; while (num11 < numArray10.Length) { DB.runQuery("UPDATE furniture SET roomid = '0' WHERE id = '" + numArray10[num11] + "' LIMIT 1"); num11++; } this.Room.floorItemManager.removeItem(lastItemID, 0); catalogueManager.itemTemplate template = catalogueManager.getTemplate(DB.runRead("SELECT tid FROM furniture WHERE id = '" + numArray10[numArray10.Length - 1] + "'", null)); if (template.typeID > 0) { this.sendData(string.Concat(new object[] { "BA", template.Sprite, Convert.ToChar(13), template.Sprite, Convert.ToChar(13), template.Length, Convert.ToChar(30), template.Width, Convert.ToChar(30), template.Colour })); } else { this.sendData(string.Concat(new object[] { "BA", template.Sprite, Convert.ToChar(13), template.Sprite, " ", template.Colour, Convert.ToChar(13) })); } } DB.runQuery(string.Concat(new object[] { "DELETE FROM furniture_presents WHERE id = '", lastItemID, "' LIMIT ", numArray10.Length })); DB.runQuery("DELETE FROM furniture WHERE id = '" + lastItemID + "' LIMIT 1"); this.refreshHand("last"); } return; } return; case "Bw": if (((this._isOwner && !this._inPublicroom) && (this.Room != null)) && (this.roomUser != null)) { lastItemID = Holo.Encoding.decodeVL64(currentPacket.Substring(2)); if (this.Room.floorItemManager.containsItem(lastItemID)) { sprite = this.Room.floorItemManager.getItem(lastItemID).Sprite; if ((sprite.Substring(0, 3).ToLower() == "cf_") || (sprite.Substring(0, 4).ToLower() == "cfc_")) { int num75 = 0; try { num75 = int.Parse(sprite.Split(new char[] { '_' })[1]); } catch { return; } this.Room.floorItemManager.removeItem(lastItemID, 0); this._Credits += num75; this.sendData("@F" + this._Credits); DB.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)) { lastItemID = int.Parse(currentPacket.Substring(2)); if (this.Room.floorItemManager.containsItem(lastItemID)) { floorItem item = this.Room.floorItemManager.getItem(lastItemID); 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)) { lastItemID = int.Parse(currentPacket.Substring(2)); if (this.Room.floorItemManager.containsItem(lastItemID)) { floorItem item2 = this.Room.floorItemManager.getItem(lastItemID); if ((this.roomUser.X == item2.X) || (this.roomUser.Y == item2.Y)) { int num76 = DB.runRead("SELECT teleportid FROM furniture WHERE id = '" + lastItemID + "'", null); int num77 = DB.runRead("SELECT roomid FROM furniture WHERE id = '" + num76 + "'", null); if (num77 > 0) { new TeleporterUsageSleep(this.useTeleporter).BeginInvoke(item2, num76, num77, null, null); } } } return; } return; case "AM": if (((this.Room != null) && (this.roomUser != null)) && !this._inPublicroom) { lastItemID = int.Parse(currentPacket.Substring(2)); if (this.Room.floorItemManager.containsItem(lastItemID)) { item3 = this.Room.floorItemManager.getItem(lastItemID); 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", lastItemID, " ", lastItemID * 0x26 })); DB.runQuery("UPDATE furniture SET var = '0' WHERE id = '" + lastItemID + "' LIMIT 1"); } } return; } return; case "AL": if (((this.Room != null) && (this.roomUser != null)) && !this._inPublicroom) { lastItemID = int.Parse(currentPacket.Substring(2)); if (this.Room.floorItemManager.containsItem(lastItemID)) { item3 = this.Room.floorItemManager.getItem(lastItemID); 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" + lastItemID); num78 = new Random(DateTime.Now.Millisecond).Next(1, 7); this.Room.sendData(string.Concat(new object[] { "AZ", lastItemID, " ", (lastItemID * 0x26) + num78 }), 0x7d0); item3.Var = num78.ToString(); DB.runQuery(string.Concat(new object[] { "UPDATE furniture SET var = '", num78, "' WHERE id = '", lastItemID, "' LIMIT 1" })); } } return; } return; case "Cw": if (((this._hasRights && (this.Room != null)) && (this.roomUser != null)) && !this._inPublicroom) { lastItemID = Holo.Encoding.decodeVL64(currentPacket.Substring(2)); if (this.Room.wallItemManager.containsItem(lastItemID)) { item4 = this.Room.wallItemManager.getItem(lastItemID); if (item4.Sprite == "habbowheel") { num78 = new Random(DateTime.Now.Millisecond).Next(0, 10); this.Room.sendData(string.Concat(new object[] { "AU", lastItemID, Convert.ToChar(9), "habbowheel", Convert.ToChar(9), " ", item4.wallPosition, Convert.ToChar(9), "-1" })); this.Room.sendData(string.Concat(new object[] { "AU", lastItemID, Convert.ToChar(9), "habbowheel", Convert.ToChar(9), " ", item4.wallPosition, Convert.ToChar(9), num78 }), 0x109a); DB.runQuery(string.Concat(new object[] { "UPDATE furniture SET var = '", num78, "' WHERE id = '", lastItemID, "' LIMIT 1" })); } } return; } return; case "Dz": str7 = currentPacket.Substring(4); if (((this.Room != null) && (this.roomUser != null)) && !this._inPublicroom) { lastItemID = Holo.Encoding.decodeVL64(currentPacket.Substring(2)); if (this.Room.floorItemManager.containsItem(lastItemID) && (this.Room.floorItemManager.getItem(lastItemID).Sprite == "val_randomizer")) { num78 = new Random(DateTime.Now.Millisecond).Next(1, 5); this.Room.sendData(string.Concat(new object[] { "AX", lastItemID, Convert.ToChar(2), "123456789", Convert.ToChar(2) })); this.Room.sendData(string.Concat(new object[] { "AX", lastItemID, Convert.ToChar(2), num78, Convert.ToChar(2) }), 0x1388); DB.runQuery(string.Concat(new object[] { "UPDATE furniture SET var = '", num78, "' WHERE id = '", lastItemID, "' LIMIT 1" })); } return; } return; case "AS": str7 = currentPacket.Substring(4); if (((this.Room != null) && (this.roomUser != null)) && !this._inPublicroom) { lastItemID = int.Parse(currentPacket.Substring(2)); if (this.Room.wallItemManager.containsItem(lastItemID)) { str7 = DB.runRead("SELECT text FROM furniture_stickies WHERE id = '" + lastItemID + "'"); this.sendData(string.Concat(new object[] { "@p", lastItemID, Convert.ToChar(9), this.Room.wallItemManager.getItem(lastItemID).Var, " ", str7 })); } return; } return; case "AT": if (((this._hasRights && (this.Room != null)) && (this.roomUser != null)) && !this._inPublicroom) { lastItemID = int.Parse(currentPacket.Substring(2, currentPacket.IndexOf("/") - 2)); if (this.Room.wallItemManager.containsItem(lastItemID)) { item4 = this.Room.wallItemManager.getItem(lastItemID); sprite = item4.Sprite; string str62 = currentPacket.Substring((2 + lastItemID.ToString().Length) + 1, 6); if (((sprite == "post.it") || (sprite == "post.it.vd")) && ((sprite != "post.it") || ((((str62 == "FFFF33") || (str62 == "FF9CFF")) || (str62 == "9CFF9C")) || (str62 == "9CCEFF")))) { str7 = currentPacket.Substring((2 + lastItemID.ToString().Length) + 7); if (str7.Length <= 0x2ac) { if (str62 != item4.Var) { DB.runQuery(string.Concat(new object[] { "UPDATE furniture SET var = '", str62, "' WHERE id = '", lastItemID, "' LIMIT 1" })); } item4.Var = str62; this.Room.sendData(string.Concat(new object[] { "AU", lastItemID, Convert.ToChar(9), sprite, Convert.ToChar(9), " ", item4.wallPosition, Convert.ToChar(9), str62 })); str7 = DB.Stripslash(stringManager.filterSwearwords(str7)).Replace("/r", Convert.ToChar(13).ToString()); DB.runQuery(string.Concat(new object[] { "UPDATE furniture_stickies SET text = '", str7, "' WHERE id = '", lastItemID, "' LIMIT 1" })); } } } return; } return; case "AU": if (((this._isOwner && (this.Room != null)) && (this.roomUser != null)) && !this._inPublicroom) { lastItemID = int.Parse(currentPacket.Substring(2)); if (this.Room.wallItemManager.containsItem(lastItemID) && (stringManager.getStringPart(this.Room.wallItemManager.getItem(lastItemID).Sprite, 0, 7) == "post.it")) { this.Room.wallItemManager.removeItem(lastItemID, 0); DB.runQuery("DELETE FROM furniture_stickies WHERE id = '" + lastItemID + "' LIMIT 1"); } return; } return; case "Ah": if ((((this.Room != null) && (this.roomUser != null)) && !this.statusManager.containsStatus("sit")) && !this.statusManager.containsStatus("lay")) { if (currentPacket.Length != 2) { string str63 = currentPacket.Substring(2); this.statusManager.handleStatus("sign", str63, Config.Statuses_Wave_waveDuration); } else { this.statusManager.addStatus("sign", ""); } this.statusManager.Refresh(); } return; case "Ct": if (((this._isOwner && (this.Room != null)) && this._isOwner) && (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)) { num79 = Holo.Encoding.decodeVL64(currentPacket.Substring(2)); this.sendData("Dl" + soundMachineManager.getSong(num79)); } return; case "Cs": if (((this._isOwner && (this.Room != null)) && this._isOwner) && (this.Room.floorItemManager.soundMachineID > 0)) { num3 = Holo.Encoding.decodeVL64(currentPacket.Substring(2)); if (num3 >= 6) { return; } currentPacket = currentPacket.Substring(Holo.Encoding.encodeVL64(num3).Length + 2); DB.runQuery("DELETE FROM soundmachine_playlists WHERE machineid = '" + this.Room.floorItemManager.soundMachineID + "'"); num11 = 0; while (num11 < num3) { num79 = Holo.Encoding.decodeVL64(currentPacket); DB.runQuery(string.Concat(new object[] { "INSERT INTO soundmachine_playlists(machineid,songid,pos) VALUES ('", this.Room.floorItemManager.soundMachineID, "','", num79, "','", num11, "')" })); currentPacket = currentPacket.Substring(Holo.Encoding.encodeVL64(num79).Length); num11++; } this.Room.sendData("EC" + soundMachineManager.getMachinePlaylist(this.Room.floorItemManager.soundMachineID)); } return; case "C~": if (((this._isOwner && (this.Room != null)) && this._isOwner) && (this.Room.floorItemManager.soundMachineID > 0)) { num79 = Holo.Encoding.decodeVL64(currentPacket.Substring(2)); if ((this._Credits <= 0) || !DB.checkExists(string.Concat(new object[] { "SELECT id FROM soundmachine_songs WHERE id = '", num79, "' AND userid = '", this.userID, "' AND machineid = '", this.Room.floorItemManager.soundMachineID, "'" }))) { this.sendData("AD"); return; } string[] strArray17 = DB.runReadRow("SELECT title,length FROM soundmachine_songs WHERE id = '" + num79 + "'"); num80 = DB.runRead("SELECT length FROM soundmachine_songs WHERE id = '" + num79 + "'", null); str41 = string.Concat(new object[] { Holo.Encoding.encodeVL64(num79), this._Username, Convert.ToChar(10), DateTime.Today.Day, Convert.ToChar(10), DateTime.Today.Month, Convert.ToChar(10), DateTime.Today.Year, Convert.ToChar(10), strArray17[1], Convert.ToChar(10), strArray17[0] }); DB.runQuery(string.Concat(new object[] { "INSERT INTO furniture(tid,ownerid,var) VALUES ('", Config.Soundmachine_burnToDisk_diskTemplateID, "','", this.userID, "','", str41, "')" })); DB.runQuery("UPDATE soundmachine_songs SET burnt = '1' WHERE id = '" + num79 + "' LIMIT 1"); DB.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._isOwner) && (this.Room.floorItemManager.soundMachineID > 0)) { num79 = Holo.Encoding.decodeVL64(currentPacket.Substring(2)); if (DB.checkExists(string.Concat(new object[] { "SELECT id FROM soundmachine_songs WHERE id = '", num79, "' AND machineid = '", this.Room.floorItemManager.soundMachineID, "'" }))) { DB.runQuery("UPDATE soundmachine_songs SET machineid = '0' WHERE id = '" + num79 + "' AND burnt = '1'"); DB.runQuery("DELETE FROM soundmachine_songs WHERE id = '" + num79 + "' AND burnt = '0' LIMIT 1"); DB.runQuery(string.Concat(new object[] { "DELETE FROM soundmachine_playlists WHERE machineid = '", this.Room.floorItemManager.soundMachineID, "' AND songid = '", num79, "'" })); this.Room.sendData("EC" + soundMachineManager.getMachinePlaylist(this.Room.floorItemManager.soundMachineID)); } } return; case "Co": if (((this._isOwner && (this.Room != null)) && this._isOwner) && (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._isOwner)) && (this.Room.floorItemManager.soundMachineID > 0)) { int num81 = Holo.Encoding.decodeVL64(currentPacket.Substring(2)); num82 = Holo.Encoding.decodeVL64(currentPacket.Substring(Holo.Encoding.encodeVL64(num81).Length + 2)); if (((num82 > 0) && (num82 < 5)) && this.songEditor.slotFree(num82)) { this.songEditor.addSoundset(num81, num82); 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._isOwner)) && (this.Room.floorItemManager.soundMachineID > 0)) { num82 = Holo.Encoding.decodeVL64(currentPacket.Substring(2)); if (!this.songEditor.slotFree(num82)) { this.songEditor.removeSoundset(num82); 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._isOwner)) && (this.Room.floorItemManager.soundMachineID > 0)) { num27 = Holo.Encoding.decodeB64(currentPacket.Substring(2, 2)); str64 = currentPacket.Substring(4, num27); str8 = currentPacket.Substring(num27 + 6); num80 = soundMachineManager.calculateSongLength(str8); if (num80 != -1) { str64 = DB.Stripslash(stringManager.filterSwearwords(str64)); str8 = DB.Stripslash(str8); DB.runQuery(string.Concat(new object[] { "INSERT INTO soundmachine_songs (userid,machineid,title,length,data) VALUES ('", this.userID, "','", this.Room.floorItemManager.soundMachineID, "','", str64, "','", num80, "','", DB.Stripslash(str8), "')" })); this.sendData("EB" + soundMachineManager.getMachineSongList(this.Room.floorItemManager.soundMachineID)); this.sendData(string.Concat(new object[] { "EK", Holo.Encoding.encodeVL64(this.Room.floorItemManager.soundMachineID), str64, Convert.ToChar(2) })); } } return; case "Cq": if (((this._isOwner && (this.Room != null)) && this._isOwner) && (this.Room.floorItemManager.soundMachineID > 0)) { num79 = Holo.Encoding.decodeVL64(currentPacket.Substring(2)); this.sendData("Dl" + soundMachineManager.getSong(num79)); 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 "Cr": if ((((this.songEditor != null) && this._isOwner) && ((this.Room != null) && this._isOwner)) && (this.Room.floorItemManager.soundMachineID > 0)) { num79 = Holo.Encoding.decodeVL64(currentPacket.Substring(2)); if (DB.checkExists(string.Concat(new object[] { "SELECT id FROM soundmachine_songs WHERE id = '", num79, "' AND userid = '", this.userID, "' AND machineid = '", this.Room.floorItemManager.soundMachineID, "'" }))) { num44 = Holo.Encoding.encodeVL64(num79).Length; num27 = Holo.Encoding.decodeB64(currentPacket.Substring(num44 + 2, 2)); str64 = currentPacket.Substring(num44 + 4, num27); str8 = currentPacket.Substring((num44 + num27) + 6); num80 = soundMachineManager.calculateSongLength(str8); if (num80 != -1) { str64 = DB.Stripslash(stringManager.filterSwearwords(str64)); str8 = DB.Stripslash(str8); DB.runQuery(string.Concat(new object[] { "UPDATE soundmachine_songs SET title = '", str64, "',data = '", str8, "',length = '", num80, "' WHERE id = '", num79, "' 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._tradePartnerUID == -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._tradePartnerUID = roomUID; this.statusManager.addStatus("trd", ""); this.roomUser.Refresh(); user7._tradePartnerUID = 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._tradePartnerUID != -1)) && this.Room.containsUser(this._tradePartnerUID)) { lastItemID = int.Parse(currentPacket.Substring(2)); num62 = DB.runRead(string.Concat(new object[] { "SELECT id FROM furniture WHERE id = '", lastItemID, "' AND ownerid = '", this.userID, "' AND roomid = '0'" }), null); if (num62 != 0) { if (catalogueManager.getTemplate(num62).isTradeable) { this.sendData("BK" + stringManager.getString("trading_nottradeable")); } else { this._tradeItems[this._tradeItemCount] = lastItemID; this._tradeItemCount++; user7 = this.Room.getUser(this._tradePartnerUID); this._tradeAccept = false; user7._tradeAccept = false; this.refreshTradeBoxes(); user7.refreshTradeBoxes(); } return; } } return; case "AD": if ((((this.Room != null) && (this.roomUser != null)) && (this._tradePartnerUID != -1)) && this.Room.containsUser(this._tradePartnerUID)) { user7 = this.Room.getUser(this._tradePartnerUID); this._tradeAccept = false; user7._tradeAccept = false; this.refreshTradeBoxes(); user7.refreshTradeBoxes(); } return; case "AE": if ((((this.Room != null) && (this.roomUser != null)) && (this._tradePartnerUID != -1)) && this.Room.containsUser(this._tradePartnerUID)) { user7 = this.Room.getUser(this._tradePartnerUID); this._tradeAccept = true; this.refreshTradeBoxes(); user7.refreshTradeBoxes(); if (!user7._tradeAccept) { return; } num11 = 0; while (num11 < this._tradeItemCount) { if (this._tradeItems[num11] > 0) { DB.runQuery(string.Concat(new object[] { "UPDATE furniture SET ownerid = '", user7.userID, "',roomid = '0' WHERE id = '", this._tradeItems[num11], "' LIMIT 1" })); } num11++; } num11 = 0; while (num11 < user7._tradeItemCount) { if (user7._tradeItems[num11] > 0) { DB.runQuery(string.Concat(new object[] { "UPDATE furniture SET ownerid = '", this.userID, "',roomid = '0' WHERE id = '", user7._tradeItems[num11], "' LIMIT 1" })); } num11++; } this.abortTrade(); } return; case "AF": if ((((this.Room != null) && (this.roomUser != null)) && (this._tradePartnerUID != -1)) && this.Room.containsUser(this._tradePartnerUID)) { 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 = Holo.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; str9 = ""; int num87 = Holo.Encoding.decodeVL64(currentPacket.Substring(2)); currentPacket = currentPacket.Substring(Holo.Encoding.encodeVL64(num87).Length + 2); for (num11 = 0; num11 < num87; num11++) { int num89; int num90; num67 = Holo.Encoding.decodeB64(currentPacket.Substring(0, 2)); string str65 = currentPacket.Substring(2, num67); if (!(currentPacket.Substring(num67 + 2, 1) == "H")) { goto Label_A86E; } int num88 = Holo.Encoding.decodeVL64(currentPacket.Substring(num67 + 3)); str69 = str65; if (str69 != null) { if (!(str69 == "fieldType")) { if (str69 == "numTeams") { goto Label_A845; } } else { mapID = num88; } } goto Label_A84B; Label_A845: teamAmount = num88; Label_A84B: num89 = Holo.Encoding.encodeVL64(num88).Length; currentPacket = currentPacket.Substring((num67 + num89) + 3); continue; Label_A86E: num90 = Holo.Encoding.decodeB64(currentPacket.Substring(num67 + 3, 2)); string str66 = currentPacket.Substring(num67 + 5, num90); str69 = str65; if (str69 != null) { if (!(str69 == "allowedPowerups")) { if (str69 == "name") { goto Label_A931; } } else { string[] strArray18 = str66.Split(new char[] { ',' }); enabledPowerups = new int[strArray18.Length]; for (int j = 0; j < strArray18.Length; j++) { int iD = int.Parse(strArray18[j]); if (!this.Room.Lobby.allowsPowerup(iD)) { return; } enabledPowerups[j] = iD; } } } goto Label_A93C; Label_A931: str9 = stringManager.filterSwearwords(str66); Label_A93C: currentPacket = currentPacket.Substring((num67 + num90) + 5); } if (((mapID != -1) && (teamAmount != -1)) && (str9 != "")) { this.gamePlayer = new Holo.Virtual.Rooms.Games.gamePlayer(this, this.roomUser.roomUID, null); this.Room.Lobby.createGame(this.gamePlayer, str9, 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; } num67 = Holo.Encoding.decodeVL64(currentPacket.Substring(2)); int teamID = Holo.Encoding.decodeVL64(currentPacket.Substring(Holo.Encoding.encodeVL64(num67).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 num94 = Holo.Encoding.decodeVL64(currentPacket.Substring(2)); for (num11 = 0; num11 < this.gamePlayer.Game.Teams.Length; num11++) { foreach (Holo.Virtual.Rooms.Games.gamePlayer player in this.gamePlayer.Game.Teams[num11]) { if (player.roomUID == num94) { player.sendData("ClRA"); this.gamePlayer.Game.movePlayer(player, num11, -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 = Holo.Encoding.decodeVL64(currentPacket.Substring(3)); this.gamePlayer.goalY = Holo.Encoding.decodeVL64(currentPacket.Substring(Holo.Encoding.encodeVL64(this.gamePlayer.goalX).Length + 3)); Out.WriteLine(string.Concat(new object[] { this._Username, ": ", this.gamePlayer.goalX, ",", this.gamePlayer.goalY })); } 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 "EW": if (this._isOwner) { roomManager.moodlight.setSettings(this._roomID, false, 0, 0, null, 0); return; } return; case "EU": if (this._isOwner) { str67 = roomManager.moodlight.getSettings(this._roomID); if (str67 != null) { this.sendData("Em" + str67); } return; } return; case "EV": if (((this._hasRights && (this.Room != null)) && (this.roomUser != null)) && !this._inPublicroom) { int presetID = Holo.Encoding.decodeVL64(currentPacket.Substring(2, 1)); int bgState = Holo.Encoding.decodeVL64(currentPacket.Substring(3, 1)); currentPacket = DB.Stripslash(currentPacket); string presetColour = currentPacket.Substring(6, Holo.Encoding.decodeB64(currentPacket.Substring(4, 2))); int alphaDarkF = Holo.Encoding.decodeVL64(currentPacket.Substring(presetColour.Length + 6)); roomManager.moodlight.setSettings(this._roomID, true, presetID, bgState, presetColour, alphaDarkF); str67 = roomManager.moodlight.getSettings(this._roomID); if (str67 != null) { this.Room.sendData("Em" + str67); } return; } return; } return; } 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.holographemulator.com", Convert.ToChar(2), "QBH" })); return; case "_R": { Habbo_V24_Crypto crypto = new Habbo_V24_Crypto(); string str = DB.Stripslash(currentPacket.Substring(4)); Out.WriteError(crypto.deciphper(str)); return; } case "CL": { int num = DB.runRead("SELECT id FROM users WHERE ticket_sso = '" + DB.Stripslash(currentPacket.Substring(4)) + "'", null); if (num == 0) { this.Disconnect(); } else { string str2 = userManager.getBanReason(num); if (str2 != "") { this.sendData("@c" + str2); this.Disconnect(0x3e8); } else { this.userID = num; string[] strArray = DB.runReadRow("SELECT name,figure,sex,mission,rank,consolemission FROM users WHERE id = '" + num + "'"); this._Username = strArray[0]; this._Figure = strArray[1]; this._Sex = char.Parse(strArray[2]); this._Mission = strArray[3]; this._Rank = byte.Parse(strArray[4]); this._consoleMission = strArray[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" })); this.sendData("@B" + rankManager.fuseRights(this._Rank)); this.sendData("DbIH"); this.sendData("@C"); if (DB.runRead("SELECT guide FROM users WHERE id = '" + this.userID + "'", null) == 1) { this.sendData("BKhoi"); } this.sendData("FiI"); this.sendData("Dj" + Holo.Encoding.encodeVL64(userManager.userCount) + Holo.Encoding.encodeVL64(roomManager.roomCount)); if (Config.enableWelcomeMessage) { this.sendData("BK" + stringManager.getString("welcomemessage_text")); } } } return; } default: this.Disconnect(); return; } Label_3FAA: this._ROOMACCESS_SECONDARY_OK = true; this.sendData("@i"); } internal void refreshAppearance(bool Reload, bool refreshSettings, bool refreshRoom) { if (Reload) { string[] strArray = DB.runReadRow("SELECT figure,sex,mission FROM users WHERE id = '" + this.userID + "'"); this._Figure = strArray[0]; this._Sex = char.Parse(strArray[1]); this._Mission = strArray[2]; } 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", Holo.Encoding.encodeVL64(this.roomUser.roomUID), this._Figure, Convert.ToChar(2), this._Sex, Convert.ToChar(2), this._Mission, Convert.ToChar(2) })); } } internal void refreshBadges() { this._nowBadge = ""; int i = 0; int num2 = 0; string[] strArray = DB.runReadColumn("SELECT badgeid FROM users_badges WHERE userid = '" + this.userID + "'", 0); StringBuilder builder = new StringBuilder(); if (strArray.Length > 0) { num2 = DB.runRead("SELECT badge_status FROM users WHERE id = '" + this.userID + "'", null); string str = DB.runRead("SELECT badgeid FROM users_badges WHERE userid = '" + this.userID + "' AND iscurrent = '1'"); for (int j = 0; j < strArray.Length; j++) { builder.Append(strArray[j] + Convert.ToChar(2)); if (strArray[j] == str) { i = j; } } if (num2 == 1) { this._nowBadge = str; } } this.sendData("Ce" + Holo.Encoding.encodeVL64(strArray.Length) + builder.ToString() + Holo.Encoding.encodeVL64(i) + Holo.Encoding.encodeVL64(num2)); } internal void refreshClub() { int i = 0; int num2 = 0; int num3 = 0; string[] strArray = DB.runReadRow("SELECT months_expired,months_left,date_monthstarted FROM users_club WHERE userid = '" + this.userID + "'"); if (strArray.Length > 0) { num2 = int.Parse(strArray[0]); num3 = int.Parse(strArray[1]) - 1; i = ((int) DateTime.Parse(strArray[2]).Subtract(DateTime.Now).TotalDays) + 0x20; this._clubMember = true; } this.sendData(string.Concat(new object[] { "@Gclub_habbo", Convert.ToChar(2), Holo.Encoding.encodeVL64(i), Holo.Encoding.encodeVL64(num2), Holo.Encoding.encodeVL64(num3), Holo.Encoding.encodeVL64(1) })); } internal void refreshGroupStatus() { this._groupID = DB.runReadUnsafe("SELECT groupid FROM groups_memberships WHERE userid = '" + this.userID + "' AND is_current = '1'", null); if (this._groupID > 0) { this._groupMemberRank = DB.runRead(string.Concat(new object[] { "SELECT member_rank FROM groups_memberships WHERE userid = '", this.userID, "' AND groupID = '", this._groupID, "'" }), null); } } internal void refreshHand(string Mode) { int[] numArray = DB.runReadColumn("SELECT id FROM furniture WHERE ownerid = '" + this.userID + "' AND roomid = '0' ORDER BY id ASC", 0, null); StringBuilder builder = new StringBuilder("BL"); int num = 0; int length = numArray.Length; string str2 = Mode; if (str2 != null) { if (!(str2 == "next")) { if (str2 == "prev") { this._handPage--; goto Label_00AE; } if (str2 == "last") { this._handPage = (length - 1) / 9; goto Label_00AE; } if (str2 == "update") { goto Label_00AE; } } else { this._handPage++; goto Label_00AE; } } this._handPage = 0; Label_00AE: try { if (numArray.Length <= 0) { goto Label_04A4; } Label_00C2: num = this._handPage * 9; if (length > (num + 9)) { length = num + 9; } if ((num > length) || (num == length)) { this._handPage--; goto Label_00C2; } for (int i = num; i < length; i++) { catalogueManager.itemTemplate template = catalogueManager.getTemplate(DB.runRead("SELECT tid FROM furniture WHERE id = '" + numArray[i] + "'", null)); char ch = '1'; if (!template.isRecycleable) { ch = '0'; } if (template.typeID == 0) { string colour = template.Colour; if ((template.Sprite == "post.it") || (template.Sprite == "post.it.vd")) { colour = DB.runRead("SELECT var FROM furniture WHERE id = '" + numArray[i] + "'"); } builder.Append(string.Concat(new object[] { "SI", Convert.ToChar(30).ToString(), numArray[i], Convert.ToChar(30).ToString(), i, Convert.ToChar(30).ToString(), "I", Convert.ToChar(30).ToString(), numArray[i], 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(), numArray[i], Convert.ToChar(30).ToString(), i, Convert.ToChar(30).ToString(), "S", Convert.ToChar(30).ToString(), numArray[i], Convert.ToChar(30).ToString(), template.Sprite, Convert.ToChar(30).ToString(), template.Length, Convert.ToChar(30).ToString(), template.Width, Convert.ToChar(30).ToString(), DB.runRead("SELECT var FROM furniture WHERE id = '" + numArray[i] + "'"), Convert.ToChar(30).ToString(), template.Colour, Convert.ToChar(30).ToString(), ch, Convert.ToChar(30).ToString(), template.Sprite, Convert.ToChar(30).ToString(), "/" })); } } Label_04A4: builder.Append(Convert.ToChar(13).ToString() + numArray.Length); this.sendData(builder.ToString()); } catch { this.sendData("BL" + Convert.ToChar(13) + "0"); } } internal void refreshTradeBoxes() { if (((this.Room != null) && this.Room.containsUser(this._tradePartnerUID)) && (this.roomUser != null)) { virtualUser user = this.Room.getUser(this._tradePartnerUID); StringBuilder builder = new StringBuilder(string.Concat(new object[] { "Al", this._Username, Convert.ToChar(9), this._tradeAccept.ToString().ToLower(), Convert.ToChar(9) })); if (this._tradeItemCount > 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 (user._tradeItemCount > 0) { builder.Append(catalogueManager.tradeItemList(user._tradeItems)); } this.sendData(builder.ToString()); } } internal void refreshValueables(bool Credits, bool Tickets) { if (Credits) { this._Credits = DB.runRead("SELECT credits FROM users WHERE id = '" + this.userID + "'", null); this.sendData("@F" + this._Credits); } if (Tickets) { this._Tickets = DB.runRead("SELECT tickets FROM users WHERE id = '" + this.userID + "'", null); this.sendData("A|" + this._Tickets); } } internal void sendData(string Data) { try { byte[] bytes = System.Text.Encoding.Default.GetBytes(Data.Replace(Convert.ToChar(1), Convert.ToChar(160)) + 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 useTeleporter(floorItem Teleporter1, int idTeleporter2, int roomIDTeleporter2) { 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("@~" + Holo.Encoding.encodeVL64(idTeleporter2) + Holo.Encoding.encodeVL64(roomIDTeleporter2)); this.Room.sendData(string.Concat(new object[] { "AY", Teleporter1.ID, "/", this._Username, "/", sprite })); } } 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); } }