示例#1
0
        public static string SpecialReplace(string baseMessage, RoomUser user)
        {
            string message     = baseMessage.ToString();
            Room   room        = OtanixEnvironment.GetGame().GetRoomManager().GetRoom(user.RoomId);
            string tempoprisao = OtanixEnvironment.UnixTimeStampToDateTime(user.GetTempoPreso()).ToString();

            message = message.Replace("%username%", user.GetUsername());
            message = message.Replace("%name%", user.GetUsername());
            message = message.Replace("%userid%", user.HabboId.ToString());
            if (user.GetTempoPreso() > OtanixEnvironment.GetUnixTimestamp())
            {
                message = message.Replace("%tempoprisao%", tempoprisao);
            }
            else
            {
                message = message.Replace("%tempoprisao%", "");
            }
            message = message.Replace("%usersonline%", OtanixEnvironment.GetGame().GetClientManager().connectionCount.ToString());
            message = message.Replace("%roomname%", room.RoomData.Name);
            message = message.Replace("%roomid%", room.RoomData.Id.ToString());
            message = message.Replace("%user_count%", room.RoomData.UsersNow.ToString());
            message = message.Replace("%floor_item_count%", room.GetRoomItemHandler().mFloorItems.Count.ToString());
            message = message.Replace("%wall_item_count%", room.GetRoomItemHandler().mWallItems.Count.ToString());
            message = message.Replace("%roomowner%", room.RoomData.Owner);
            message = message.Replace("%owner%", room.RoomData.Owner);
            message = message.Replace("%item_count%", (room.GetRoomItemHandler().mFloorItems.Count + room.GetRoomItemHandler().mWallItems.Count).ToString());

            return(message);
        }
示例#2
0
 internal Habbo(uint Id, string Username, string RealName, uint Rank, string Motto, double Created, string Look, string Gender, uint Diamonds, string MachineId, uint achievementPoints, double LastOnline, uint FavoriteGroup, bool blocknewfriends, bool blocktrade, bool ignoreRoomInvitations, bool dontfocususers, bool preferoldchat, uint coins_purchased)
 {
     this.Id                        = Id;
     this.Username                  = Username;
     this.RealName                  = RealName;
     this.Rank                      = Rank;
     this.Motto                     = Motto;
     this.Created                   = OtanixEnvironment.UnixTimeStampToDateTime(Created);
     this.Look                      = OtanixEnvironment.FilterFigure(Look.ToLower());
     this.Gender                    = Gender.ToLower();
     this.Diamonds                  = Diamonds;
     this.MachineId                 = MachineId;
     this.LastOnline                = LastOnline;
     this.AchievementPoints         = achievementPoints;
     this.FavoriteGroup             = FavoriteGroup;
     this.HasFriendRequestsDisabled = blocknewfriends;
     this.BlockTrade                = blocktrade;
     this.IgnoreRoomInvitations     = ignoreRoomInvitations;
     this.DontFocusUser             = dontfocususers;
     this.preferOldChat             = preferoldchat;
     this.alertasAtivados           = true;
     this.RoomsVisited              = new LinkedList <RoomVisits>();
     this.mygroups                  = new List <uint>();
     this.CoinsPurchased            = coins_purchased;
 }
示例#3
0
        internal static ServerMessage SerializeStatistics(int junk, uint SpriteId)
        {
            DateTime dt            = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day);
            double   UnixActualDay = OtanixEnvironment.DateTimeToUnixTimestamp(dt);
            double   Unix30DaysAgo = UnixActualDay - (86400 * 30);

            uint ItemId = OtanixEnvironment.GetGame().GetItemManager().GetBaseIdFromSpriteId(SpriteId);

            uint Average = 0;
            uint Count   = 0;

            GetAverageAndCountFromBaseId(ItemId, out Average, out Count);

            DataTable dTable = null;

            ServerMessage Message = new ServerMessage(Outgoing.MarketSpriteItemStatics);

            Message.AppendUInt(Average); // average
            Message.AppendUInt(Count);   // count (Número de ofertas)
            Message.AppendInt32(30);     // days (Precio medio de venta en los últimos X días)

            using (IQueryAdapter dbClient = OtanixEnvironment.GetDatabaseManager().getQueryreactor())
            {
                dbClient.setQuery("SELECT date, price_avg, trade_count FROM catalog_marketplace_statistics WHERE item_id = '" + ItemId + "' AND date > '" + Unix30DaysAgo + "'");
                dTable = dbClient.getTable();
            }

            Message.AppendInt32(dTable.Rows.Count); // foreach

            foreach (DataRow dRow in dTable.Rows)
            {
                DateTime rowTime = OtanixEnvironment.UnixTimeStampToDateTime((double)dRow["date"]);

                Message.AppendInt32((rowTime - dt).Days);                  // day(-29, -28... 0)
                Message.AppendUInt(Convert.ToUInt32(dRow["price_avg"]));   // Evolución de los precios
                Message.AppendUInt(Convert.ToUInt32(dRow["trade_count"])); // Volumen de tradeos
            }

            Message.AppendInt32(junk);
            Message.AppendUInt(SpriteId);
            return(Message);
        }
示例#4
0
        internal static void MuteUser(GameClient ModSession, Habbo Client, int Length, String Message)
        {
            if (OtanixEnvironment.GetGame().GetMuteManager().UserIsMuted(Client.Id))
            {
                if (ModSession != null)
                {
                    ModSession.SendNotif("El usuario ya está muteado.");
                }

                return;
            }

            OtanixEnvironment.GetGame().GetMuteManager().AddUserMute(Client.Id, Length);

            if (Client.GetClient() != null)
            {
                DateTime newDateTime = OtanixEnvironment.UnixTimeStampToDateTime(OtanixEnvironment.GetGame().GetMuteManager().UsersMuted[Client.Id].ExpireTime);

                ServerMessage nMessage = new ServerMessage(Outgoing.SendLinkNotif);
                nMessage.AppendString("Tu keko no podrá hablar hasta " + newDateTime.ToString() + " Eh, levanta el pie. Tú también puedes hacer que tod@s pasen un rato agradable en " + EmuSettings.HOTEL_LINK + ". ¡Respeto sí! ¡Bullyng no! Vale, vale, ¡tiempo muerto! No vendría mal releer la Manera " + EmuSettings.HOTEL_LINK + " y los Términos de Servicio.");
                nMessage.AppendString("http://www." + EmuSettings.HOTEL_LINK + "/legal/terms-of-service");
                Client.GetClient().SendMessage(nMessage);
            }
        }
示例#5
0
        internal static ServerMessage SerializeUserInfo(uint UserId)
        {
            using (var dbClient = OtanixEnvironment.GetDatabaseManager().getQueryreactor())
            {
                dbClient.setQuery("SELECT id, username, mail, look, last_purchase, last_online, account_created FROM users WHERE id = " + UserId + "");
                var User = dbClient.getRow();

                dbClient.setQuery("SELECT cfhs, cfhs_abusive, cautions, bans FROM user_info WHERE user_id = " + UserId + "");
                var Info = dbClient.getRow();

                if (User == null)
                {
                    throw new NullReferenceException("No user found in database");
                }

                double lastOnlinetimer = 0;
                double.TryParse((Convert.ToDouble(User["last_online"])).ToString(), out lastOnlinetimer);
                double LastLoginMinutes = OtanixEnvironment.GetUnixTimestamp() - lastOnlinetimer;
                int    RegisterTimer    = (DateTime.Now - OtanixEnvironment.UnixTimeStampToDateTime(Convert.ToUInt32(User["account_created"]))).Minutes;
                string LastPurchase     = "";
                if (OtanixEnvironment.GetGame().GetClientManager().GetClientByUserID(Convert.ToUInt32(User["id"])) != null)
                {
                    Habbo habbo = OtanixEnvironment.GetGame().GetClientManager().GetClientByUserID(Convert.ToUInt32(User["id"])).GetHabbo();
                    if (habbo != null)
                    {
                        LastLoginMinutes = OtanixEnvironment.GetUnixTimestamp() - habbo.LastOnline;
                        LastPurchase     = habbo.LastPurchase;
                    }
                }

                var Message = new ServerMessage(Outgoing.UserTool);
                Message.AppendUInt(Convert.ToUInt32(User["id"]));
                Message.AppendString((string)User["username"]);
                Message.AppendString((string)User["look"]);
                Message.AppendInt32(RegisterTimer);
                Message.AppendInt32((Int32)LastLoginMinutes);
                Message.AppendBoolean(OtanixEnvironment.GetGame().GetClientManager().GetClientByUserID(Convert.ToUInt32(User["id"])) != null);

                if (Info != null)
                {
                    Message.AppendInt32((int)Info["cfhs"]);
                    Message.AppendInt32((int)Info["cfhs_abusive"]);
                    Message.AppendInt32((int)Info["cautions"]);
                    Message.AppendInt32((int)Info["bans"]);
                    Message.AppendInt32(0); // Added on RELEASE20140108
                }
                else
                {
                    Message.AppendInt32(0);                                                              // cfhs
                    Message.AppendInt32(0);                                                              // abusive cfhs
                    Message.AppendInt32(0);                                                              // cautions
                    Message.AppendInt32(0);                                                              // bans
                    Message.AppendInt32(0);                                                              // Added on RELEASE20140108
                }
                Message.AppendString("");                                                                // trading_lock_expiry_txt
                Message.AppendString(LastPurchase == "" ? (string)User["last_purchase"] : LastPurchase); // last_purchase_txt
                Message.AppendInt32(0);                                                                  // identityinformationtool.url + this
                Message.AppendInt32(0);                                                                  // id_bans_txt
                Message.AppendString((string)User["mail"]);                                              // email_address_txt
                Message.AppendString("");                                                                // user_classification
                return(Message);
            }
        }
示例#6
0
        internal bool tryLogin(string AuthTicket)
        {
            try
            {
                if (GetConnection() == null)
                {
                    return(false);
                }

                var userData = UserDataFactory.GetUserData(AuthTicket);
                if (userData == null)
                {
                    this.Disconnect();
                    return(false);
                }

                OtanixEnvironment.GetGame().GetClientManager().RegisterClient(this, userData.user.Id, userData.user.Username);
                Habbo = userData.user;

                if (userData.user.Username == null || GetHabbo() == null)
                {
                    SendBanMessage("Você não possui um nome.");
                    return(false);
                }

                userData.user.Init(userData);
                Habbo.MachineId = MachineId;

                var response = new QueuedServerMessage(Connection);

                var authok = new ServerMessage(Outgoing.AuthenticationOK);
                response.appendResponse(authok);

                var HomeRoom = new ServerMessage(Outgoing.HomeRoom);
                HomeRoom.AppendUInt((OtanixEnvironment.GetGame().GetPrisaoManager().estaPreso(GetHabbo().Id)) ? OtanixEnvironment.prisaoId() : GetHabbo().HomeRoom); // first home
                HomeRoom.AppendUInt((OtanixEnvironment.GetGame().GetPrisaoManager().estaPreso(GetHabbo().Id)) ? OtanixEnvironment.prisaoId() : GetHabbo().HomeRoom); // current home
                response.appendResponse(HomeRoom);

                var FavouriteRooms = new ServerMessage(Outgoing.FavouriteRooms);
                FavouriteRooms.AppendInt32(30); // max rooms
                FavouriteRooms.AppendInt32(userData.user.FavoriteRooms.Count);
                foreach (var Id in userData.user.FavoriteRooms.ToArray())
                {
                    FavouriteRooms.AppendUInt(Id);
                }
                response.appendResponse(FavouriteRooms);

                var sendClub = new ServerMessage(Outgoing.SerializeClub);
                sendClub.AppendString("club_habbo");
                sendClub.AppendInt32(0);      // days left
                sendClub.AppendInt32(0);      // days multiplier
                sendClub.AppendInt32(0);      // months left
                sendClub.AppendInt32(0);      // ???
                sendClub.AppendBoolean(true); // HC PRIVILEGE
                sendClub.AppendBoolean(true); // VIP PRIVILEGE
                sendClub.AppendInt32(0);      // days i have on hc
                sendClub.AppendInt32(0);      // days i've purchased
                sendClub.AppendInt32(495);    // value 4 groups
                response.appendResponse(sendClub);

                var roomAccessConfig = new ServerMessage(Outgoing.RoomAccessConfig);
                roomAccessConfig.AppendBoolean(true); // isOpen
                roomAccessConfig.AppendBoolean(false);
                roomAccessConfig.AppendBoolean(true);
                response.appendResponse(roomAccessConfig);

                var fuserights = new ServerMessage(Outgoing.Fuserights);
                fuserights.AppendInt32(2);                                       // normal|hc|vip
                fuserights.AppendUInt(GetHabbo().Rank);
                fuserights.AppendBoolean(GetHabbo().HasFuse("fuse_ambassador")); // embajador ?
                // fuserights.AppendInt32(0); // New Identity (1 == 1 min and Alert!)
                response.appendResponse(fuserights);

                var newidentity = new ServerMessage(Outgoing.SendNewIdentityState);
                newidentity.AppendInt32(GetHabbo().NewIdentity);
                response.appendResponse(newidentity);

                var HabboInformation = new ServerMessage(Outgoing.HabboInfomation);
                HabboInformation.AppendUInt(GetHabbo().Id);
                HabboInformation.AppendString(GetHabbo().Username);
                HabboInformation.AppendString(GetHabbo().Look);
                HabboInformation.AppendString(GetHabbo().Gender.ToUpper());
                HabboInformation.AppendString(GetHabbo().Motto);
                HabboInformation.AppendString(GetHabbo().RealName);
                HabboInformation.AppendBoolean(false);
                HabboInformation.AppendUInt(GetHabbo().Respect);
                HabboInformation.AppendUInt(GetHabbo().DailyRespectPoints); // respect to give away
                HabboInformation.AppendUInt(GetHabbo().DailyPetRespectPoints);
                HabboInformation.AppendBoolean(true);
                HabboInformation.AppendString(OtanixEnvironment.UnixTimeStampToDateTime(GetHabbo().LastOnline).ToString());
                HabboInformation.AppendBoolean(GetHabbo().NameChanges < EmuSettings.MAX_NAME_CHANGES); // CHANGENAME - HabboInformation.AppendBoolean((this.GetHabbo().Diamonds<=0||this.GetHabbo().NameChanges>=ButterflyEnvironment.maxNameChanges)?false:true);
                HabboInformation.AppendBoolean(false);
                response.appendResponse(HabboInformation);

                var IsGuide            = (Habbo.Rank > 1) ? true : false;
                var VoteInCompetitions = false;
                var Trade     = true;
                var Citizien  = (Habbo.CitizenshipLevel >= 4) ? true : false;
                var JudgeChat = (Habbo.Rank > 2) ? true : false;
                var NavigatorThumbailCamera = false;
                var navigatorphaseTwo       = true;
                var Camera        = true;
                var CallHelpers   = true;
                var BuilderAtWork = true;
                var MouseZoom     = false;

                var Allows = new ServerMessage(Outgoing.PerkAllowancesMessageParser);
                Allows.AppendInt32(11); // count
                Allows.AppendString("TRADE");
                Allows.AppendString((!Trade) ? "requirement.unfulfilled.citizenship_level_3" : "");
                Allows.AppendBoolean(Trade);
                Allows.AppendString("NAVIGATOR_ROOM_THUMBNAIL_CAMERA");
                Allows.AppendString((!NavigatorThumbailCamera) ? "" : "");
                Allows.AppendBoolean(NavigatorThumbailCamera);
                Allows.AppendString("NAVIGATOR_PHASE_TWO_2014");
                Allows.AppendString((!navigatorphaseTwo) ? "requirement.unfulfilled.feature_disabled" : "");
                Allows.AppendBoolean(navigatorphaseTwo);
                Allows.AppendString("VOTE_IN_COMPETITIONS");
                Allows.AppendString((!VoteInCompetitions) ? "requirement.unfulfilled.helper_level_2" : "");
                Allows.AppendBoolean(VoteInCompetitions);
                Allows.AppendString("BUILDER_AT_WORK");
                Allows.AppendString((!BuilderAtWork) ? "requirement.unfulfilled.group_membership" : "");
                Allows.AppendBoolean(BuilderAtWork);
                Allows.AppendString("MOUSE_ZOOM");
                Allows.AppendString((!MouseZoom) ? "requirement.unfulfilled.feature_disabled" : "");
                Allows.AppendBoolean(MouseZoom);
                Allows.AppendString("CAMERA");
                Allows.AppendString((!Camera) ? "requirement.unfulfilled.feature_disabled" : "");
                Allows.AppendBoolean(Camera);
                Allows.AppendString("CALL_ON_HELPERS");
                Allows.AppendString((!CallHelpers) ? "requirement.unfulfilled.citizenship_level_1" : "");
                Allows.AppendBoolean(CallHelpers);
                Allows.AppendString("CITIZEN");
                Allows.AppendString((!Citizien) ? "requirement.unfulfilled.citizenship_level_3" : "");
                Allows.AppendBoolean(Citizien);
                Allows.AppendString("USE_GUIDE_TOOL");
                Allows.AppendString((!IsGuide) ? "requirement.unfulfilled.helper_level_4" : "");
                Allows.AppendBoolean(IsGuide);
                Allows.AppendString("JUDGE_CHAT_REVIEWS");
                Allows.AppendString((!JudgeChat) ? "requirement.unfulfilled.citizenship_level_6" : "");
                Allows.AppendBoolean(JudgeChat);
                response.appendResponse(Allows);

                var enabledBuilderClub = new ServerMessage(Outgoing.EnableBuilderClub);
                enabledBuilderClub.AppendInt32(GetHabbo().IsPremium() ? GetHabbo().GetPremiumManager().GetRemainingTime() : 0); // Tiempo restante de Constructor (2678400 = 1 mes entero (s))
                enabledBuilderClub.AppendUInt(GetHabbo().IsPremium() ? GetHabbo().GetPremiumManager().GetMaxItems() : 50);      // Furnis que puedo alquilar
                enabledBuilderClub.AppendInt32(20000);                                                                          // Se puede ampliar la alquilación hasta..
                enabledBuilderClub.AppendInt32(0);
                response.appendResponse(enabledBuilderClub);

                response.appendResponse(GetHabbo().GetUserClothingManager().SerializeClothes());

                var achivPoints = new ServerMessage(Outgoing.AchievementPoints);
                achivPoints.AppendUInt(GetHabbo().AchievementPoints);
                response.appendResponse(achivPoints);

                var loadVolumen = new ServerMessage(Outgoing.LoadVolumen);
                loadVolumen.AppendInt32(int.Parse(GetHabbo().volumenSystem.Split(';')[0]));
                loadVolumen.AppendInt32(int.Parse(GetHabbo().volumenSystem.Split(';')[1]));
                loadVolumen.AppendInt32(int.Parse(GetHabbo().volumenSystem.Split(';')[2]));
                loadVolumen.AppendBoolean(GetHabbo().preferOldChat);
                loadVolumen.AppendBoolean(GetHabbo().IgnoreRoomInvitations);
                loadVolumen.AppendBoolean(GetHabbo().DontFocusUser); // fcus user
                loadVolumen.AppendInt32(0);                          //
                loadVolumen.AppendInt32(0);                          // freeFlowChat
                response.appendResponse(loadVolumen);

                var muteUsers = new ServerMessage(Outgoing.SerializeMuteUsers);
                muteUsers.AppendInt32(GetHabbo().MutedUsers.Count);
                foreach (string IgnoreName in GetHabbo().MutedUsers)
                {
                    muteUsers.AppendString(IgnoreName);
                }
                response.appendResponse(muteUsers);

                TargetedOffer to = OtanixEnvironment.GetGame().GetTargetedOfferManager().GetRandomStaticTargetedOffer();
                if (to != null)
                {
                    if (!GetHabbo().TargetedOffers.ContainsKey(to.Id) || GetHabbo().TargetedOffers[to.Id] < to.PurchaseLimit)
                    {
                        response.appendResponse(OtanixEnvironment.GetGame().GetTargetedOfferManager().SerializeTargetedOffer(to));
                    }
                }

                /*var giftOptions = new ServerMessage(Outgoing.NewUserExperienceGiftOfferParser);
                 * giftOptions.AppendInt32(1); // foreach
                 * {
                 *  giftOptions.AppendInt32(0);
                 *  giftOptions.AppendInt32(0);
                 *  giftOptions.AppendInt32(1); // foreach (items?)
                 *  {
                 *      giftOptions.AppendString("Testeando"); // itemName ??
                 *      giftOptions.AppendInt32(1); // foreach
                 *      {
                 *          giftOptions.AppendString("a1_kumiankka"); // item 1
                 *          giftOptions.AppendString(""); // item 2 (if is empty == null)
                 *      }
                 *  }
                 * }
                 * response.appendResponse(giftOptions);*/

                response.appendResponse(OtanixEnvironment.GetGame().GetAchievementManager().AchievementPrede);

                if (GetHabbo().HomeRoom <= 0)
                {
                    var homeRoom = new ServerMessage(Outgoing.OutOfRoom);
                    response.appendResponse(homeRoom);
                }
                else
                {
                    Room room = OtanixEnvironment.GetGame().GetRoomManager().GetRoom(GetHabbo().HomeRoom);
                    if (room != null)
                    {
                        this.GetMessageHandler().enterOnRoom3(room);
                    }
                }

                response.sendResponse();

                // Verifica a conta staff
                if (GetHabbo().Rank > 5)
                {
                    ServerMessage VerificaSenha = new ServerMessage(Outgoing.MobilePhoneNumero);
                    VerificaSenha.AppendInt32(1);
                    VerificaSenha.AppendInt32(1);
                    SendMessage(VerificaSenha);
                }
                // Termina de verificar a conta staff

                Ban BanReason = OtanixEnvironment.GetGame().GetBanManager().GetBanReason(Habbo.Username, Habbo.MachineId);
                if (BanReason != null)
                {
                    SendScrollNotif("Você tem um banimento do tipo: " + BanReason.Type + "\r\nMotivo: " + BanReason.ReasonMessage);
                    Disconnect();
                    return(false);
                }

                GetHabbo().InitMessenger();

                if (GetHabbo().GetAvatarEffectsInventoryComponent() != null)
                {
                    SendMessage(GetHabbo().GetAvatarEffectsInventoryComponent().Serialize());
                }

                SendMessage(OtanixEnvironment.GetGame().GetModerationTool().SerializeCfhTopics());

                if (LanguageLocale.welcomeAlertEnabled)
                {
                    string strAlert = BlackWordsManager.SpecialReplace(LanguageLocale.welcomeAlert, this);

                    if (LanguageLocale.welcomeAlertType == 0)
                    {
                        SendScrollNotif(strAlert);
                    }
                    else if (LanguageLocale.welcomeAlertType == 1)
                    {
                        SendNotif(strAlert);
                    }
                    else if (LanguageLocale.welcomeAlertType == 2)
                    {
                        SendNotifWithImage(strAlert, LanguageLocale.welcomeAlertImage);
                    }
                }

                OtanixEnvironment.GetGame().GetAchievementManager().ProgressUserAchievement(Habbo.Id, "ACH_EmailVerification", 1);

                GetHabbo().UpdateCreditsBalance();
                GetHabbo().UpdateExtraMoneyBalance();
                GetHabbo().setMeOnline();
                GetHabbo().InitExtra();

                UsersCache.enterProvisionalRoom(this);

                return(true);
            }
            catch (UserDataNotFoundException e)
            {
                SendScrollNotif(LanguageLocale.GetValue("login.invalidsso") + "extra data: " + e);
            }
            catch (Exception e)
            {
                Logging.LogCriticalException("Invalid Dario bug duing user login: "******"Login error: " + e);
            }
            return(false);
        }
示例#7
0
        internal Habbo(uint Id, string Username, string RealName, uint Rank, string Motto, double UnixTime, string Look, string Gender, uint Diamonds,
                       uint HomeRoom, uint Respect, uint DailyRespectPoints, uint DailyPetRespectPoints, bool HasFriendRequestsDisabled, bool FollowEnable, uint currentQuestID, uint currentQuestProgress, uint achievementPoints,
                       uint nameChanges, uint FavoriteGroup, bool block_trade, string _volumenSystem, bool preferoldchat, string lastpurchase, List <uint> pollparticipation, List <uint> votedrooms,
                       string lastfollowinglogin, bool ignoreRoomInvitations, int citizenshipLevel, int helperLevel, string wiredactrewards, bool dontFocusUser, Dictionary <int, NaviLogs> naviLogs, Dictionary <uint, uint> targetedOffers,
                       string chatColor, int newIdentity, int newBot, bool frankJaApareceu, int moedas, int corAtual, string coresjaTenho, uint coinsPurchased, uint SpentCredits, int Duckets, int speechBubble, bool HiddenOnline)
        {
            this.Id                        = Id;
            this.Username                  = Username;
            this.RealName                  = RealName;
            this.Rank                      = Rank;
            this.Diamonds                  = Diamonds;
            this.Look                      = OtanixEnvironment.FilterFigure(Look.ToLower());
            this.Gender                    = Gender.ToLower();
            this.Motto                     = Motto;
            this.alertasAtivados           = true;
            this.LastOnline                = OtanixEnvironment.GetUnixTimestamp();
            this.HomeRoom                  = HomeRoom;
            this.Respect                   = Respect;
            this.DailyRespectPoints        = DailyRespectPoints;
            this.DailyPetRespectPoints     = DailyPetRespectPoints;
            this.HasFriendRequestsDisabled = HasFriendRequestsDisabled;
            this.FollowEnable              = FollowEnable;
            this.BlockTrade                = block_trade;
            this.AchievementPoints         = achievementPoints;
            this.FavoriteGroup             = FavoriteGroup;
            this.NameChanges               = nameChanges;
            this.CurrentQuestId            = currentQuestID;
            this.CurrentQuestProgress      = currentQuestProgress;
            this.LastQuestId               = 0;
            this.volumenSystem             = _volumenSystem;
            this.Created                   = OtanixEnvironment.UnixTimeStampToDateTime(UnixTime);
            this.preferOldChat             = preferoldchat;
            this.LastPurchase              = lastpurchase;
            this.PollParticipation         = pollparticipation;
            this.IgnoreRoomInvitations     = ignoreRoomInvitations;
            this.CitizenshipLevel          = citizenshipLevel;
            this.HelperLevel               = helperLevel;
            this.AlfaGuideEnabled          = false;
            this.AlfaHelperEnabled         = false;
            this.AlfaGuardianEnabled       = false;
            this.WiredRewards              = new Dictionary <uint, WiredActReward>();
            this.CoinsPurchased            = coinsPurchased;
            if (wiredactrewards.Length > 0)
            {
                uint   itemId      = 0;
                double dTime       = 0;
                int    aRewards    = 0;
                int    originalInt = 0;
                foreach (string str in wiredactrewards.Split(';'))
                {
                    itemId      = Convert.ToUInt32(str.Split(',')[0]);
                    dTime       = Convert.ToDouble(str.Split(',')[1]);
                    aRewards    = Convert.ToInt32(str.Split(',')[2]);
                    originalInt = Convert.ToInt32(str.Split(',')[3]);

                    this.WiredRewards.Add(itemId, new WiredActReward(itemId, dTime, aRewards, originalInt));
                }
            }
            this.LastAlfaSend              = OtanixEnvironment.GetUnixTimestamp() - 1200; // 20 min.
            this.DontFocusUser             = dontFocusUser;
            this.navigatorLogs             = naviLogs;
            this.ConvertedOnPet            = false;
            this.PetType                   = -1;
            this.DiamondsCycleUpdate       = OtanixEnvironment.GetUnixTimestamp();
            this.MoedasCycleUpdate         = OtanixEnvironment.GetUnixTimestamp();
            this.ClubExpirationCycleUpdate = OtanixEnvironment.GetUnixTimestamp();
            this.TargetedOffers            = targetedOffers;
            this.ChatColor                 = chatColor;
            this.NewIdentity               = newIdentity;
            this.NewBot = newBot;

            this.LoadingRoom         = 0;
            this.LoadingChecksPassed = false;
            this.CurrentRoomId       = 0;
            this.IsTeleporting       = false;
            this.TeleporterId        = 0;
            this.SpectatorMode       = false;
            this.Disconnected        = false;

            this.FavoriteRooms      = new List <uint>();
            this.MutedUsers         = new List <string>();
            this.RatedRooms         = votedrooms;
            this.UsersRooms         = new List <uint>();
            this.RoomsVisited       = new LinkedList <RoomVisits>();
            this.mygroups           = new List <uint>();
            this.quests             = new Dictionary <uint, int>();
            this.wardrobes          = new Dictionary <int, Wardrobe>();
            this.HabboQuizQuestions = new List <int>(5);
            this.showingStaffBadge  = true;
            this.frankJaApareceu    = frankJaApareceu;
            this.Moedas             = moedas;
            this.Duckets            = Duckets;
            this.corAtual           = corAtual;
            this.coresjaTenho       = coresjaTenho;
            if (lastfollowinglogin == "" || !DateTime.TryParse(lastfollowinglogin, out this.LastFollowingLogin))
            {
                this.LastFollowingLogin = DateTime.Now;
            }

            this.SpentCredits = SpentCredits;
            LastSpeechBubble  = speechBubble;
            this.HiddenOnline = HiddenOnline;
        }