Exemple #1
0
 public UserData(uint userID, Dictionary<string, UserAchievement> achievements, List<uint> favouritedRooms, List<uint> ignores,
     Subscription subscription, List<Badge> badges, List<UserItem> inventory, List<AvatarEffect> effects,
     Dictionary<uint, MessengerBuddy> friends, Dictionary<uint, MessengerRequest> requests, List<RoomData> rooms, Dictionary<uint, Pet> pets, Dictionary<uint, int> quests, Hashtable inventorySongs, Habbo user, Hashtable bots)
 {
     this.userID = userID;
     this.achievements = achievements;
     this.favouritedRooms = favouritedRooms;
     this.ignores = ignores;
     this.subscription = subscription;
     this.badges = badges;
     this.inventory = inventory;
     this.effects = effects;
     this.friends = friends;
     this.requests = requests;
     this.rooms = rooms;
     this.pets = pets;
     this.quests = quests;
     this.inventorySongs = inventorySongs;
     this.bots = bots;
     this.user = new HabboDataContainer(user);
 }
Exemple #2
0
        //internal Role GetRole(UInt32 Id)
        //{
        //    if (!ContainsRole(Id))
        //    {
        //        return null;
        //    }

        //    return Roles[Id];
        //}

        internal List<string> GetRightsForHabbo(HabboDataContainer Habbo)
        {
            List<string> UserRights = new List<string>();

            if (Habbo == null)
                return UserRights;

            UserRights.AddRange(GetRightsForRank(Habbo.data.Rank));


            if (Habbo.GetSubscriptionManager().HasSubscription())
                UserRights.Add(Habbo.GetSubscriptionManager().GetSubscription().SubscriptionId);

            return UserRights;
        }
Exemple #3
0
        internal void Stop()
        {
            if (GetMessageHandler() != null)
                MessageHandler.Destroy();

            if (GetHabboDataContainer() != null)
            {
                GetHabboDataContainer().Destroy();
            }

            this.MessageHandler = null;
            this.Habbo = null;
            this.Connection = null;
        }
Exemple #4
0
        internal bool tryLogin(string AuthTicket, bool useSSO = true)
        {
            try
            {
                string ip = GetConnection().GetIP();
                byte errorCode = 0;
                UserData userData = UserDataFactory.GetUserData(AuthTicket, ip, out errorCode, useSSO);

                if (errorCode == 1 || errorCode == 2)
                {
                    return false;
                }

                ButterflyEnvironment.GetGame().GetClientManager().RegisterClient(this, userData.userID, userData.user.data.Username);

                this.Habbo = userData.user;
                userData.user.LoadData(userData);

                if (userData.user.data.Username == null)
                {
                    return false;
                }

                string banReason = ButterflyEnvironment.GetGame().GetBanManager().GetBanReason(userData.user.data.Username, userData.user.getIP());

                if (!string.IsNullOrEmpty(banReason))
                {
                    SendBanMessage(banReason);
                    return false;
                }
                userData.user.Init(this, userData);

                ServerMessage message;

                message = PacketHandelingManager.GetRecycledItem(OutputCode.UniqueIDEvent);
                message.AddString(this.machineID);
                SendMessage(message);

                message = PacketHandelingManager.GetRecycledItem(OutputCode.AuthenticationOKEvent);
                SendMessage(message);

                message = PacketHandelingManager.GetRecycledItem(OutputCode.EnableConsole);
                message.AddBoolean(true);
                SendMessage(message);

                message = PacketHandelingManager.GetRecycledItem(OutputCode.NewIndenty);
                message.AddInt32(0);
                SendMessage(message);

                message = PacketHandelingManager.GetRecycledItem(OutputCode.AllowancesMessageEvent);
                message.AddInt32(16);
                message.AddString("VOTE_IN_COMPETITIONS");
                message.AddString("requirement.unfulfilled.helper_level_2");
                message.AddBoolean(false);
                message.AddString("NEW_UI");
                message.AddString(string.Empty);
                message.AddBoolean(true);
                message.AddString("NAVIGATOR_PHASE_ONE_2014");
                message.AddString("requirement.unfulfilled.feature_disabled");
                message.AddBoolean(false);
                message.AddString("NAVIGATOR_PHASE_TWO_2014");
                message.AddString("requirement.unfulfilled.feature_disabled");
                message.AddBoolean(false);
                message.AddString("HEIGHTMAP_EDITOR_BETA");
                message.AddString("requirement.unfulfilled.feature_disabled");
                message.AddBoolean(false);
                message.AddString("TRADE");
                message.AddString(string.Empty);
                message.AddBoolean(true);
                message.AddString("USE_GUIDE_TOOL");
                message.AddString("requirement.unfulfilled.helper_level_4");
                message.AddBoolean(false);
                message.AddString("JUDGE_CHAT_REVIEWS");
                message.AddString("requirement.unfulfilled.helper_level_6");
                message.AddBoolean(false);
                message.AddString("CAMERA");
                message.AddString(string.Empty);
                message.AddBoolean(false);
                message.AddString("EXPERIMENTAL_TOOLBAR");
                message.AddString("requirement.unfulfilled.feature_disabled");
                message.AddBoolean(false);
                message.AddString("CITIZEN");
                message.AddString(string.Empty);
                message.AddBoolean(false);
                message.AddString("USE_GUIDE_TOOL");
                message.AddString(string.Empty);
                message.AddBoolean(false);
                message.AddString("EXPERIMENTAL_CHAT_BETA");
                message.AddString(string.Empty);
                message.AddBoolean(true);
                message.AddString("CALL_ON_HELPERS");
                message.AddString(string.Empty);
                message.AddBoolean(true);
                message.AddString("HEIGHTMAP_EDITOR_BETA");
                message.AddString(string.Empty);
                message.AddBoolean(false);
                message.AddString("BUILDER_AT_WORK");
                message.AddString(string.Empty);
                message.AddBoolean(true);
                SendMessage(message);

                if (userData.user.HasFuse("fuse_mod"))
                {
                    ServerMessage ModTool = ButterflyEnvironment.GetGame().GetModerationTool().SerializeTool();
                    SendMessage(ModTool);
                }

                SendMessage(userData.user.GetAvatarEffectsInventoryComponent().Serialize());

                message = PacketHandelingManager.GetRecycledItem(OutputCode.AvailabilityStatusMessageEvent);
                message.AddBoolean(true);
                message.AddBoolean(false);
                SendMessage(message);

                message = PacketHandelingManager.GetRecycledItem(OutputCode.NavigatorSettingsEvent);
                message.AddUInt32(GetHabbo().HomeRoom);
                message.AddUInt32(0);
                SendMessage(message);

                if (GetHabbo().HomeRoom > 0)
                {
                    message = PacketHandelingManager.GetRecycledItem(OutputCode.RoomForwardMessageEvent);
                    message.AddUInt32(GetHabbo().HomeRoom);
                    SendMessage(message);
                }

                if (ButterflyEnvironment.GetGame().GetClientManager().pixelsOnLogin > 0)
                {
                    PixelManager.GivePixels(this, ButterflyEnvironment.GetGame().GetClientManager().pixelsOnLogin);
                }

                if (ButterflyEnvironment.GetGame().GetClientManager().creditsOnLogin > 0)
                {
                    userData.user.data.Credits += ButterflyEnvironment.GetGame().GetClientManager().creditsOnLogin;
                    userData.user.UpdateCreditsBalance();
                }

                message = PacketHandelingManager.GetRecycledItem(OutputCode.SerializeMiniMailCount);
                message.AddInt32(0);
                SendMessage(message);

                message = PacketHandelingManager.GetRecycledItem(OutputCode.BuildersClubLimit);
                message.AddInt32(100000);
                message.AddInt32(100000); 
                message.AddInt32(20000000); 
                SendMessage(message);

                message = PacketHandelingManager.GetRecycledItem(OutputCode.FavouritesEvent);
                message.AddInt32(30);
                message.AddInt32(userData.user.data.FavoriteRooms.Count);

                foreach (uint Id in userData.user.data.FavoriteRooms.ToArray())
                {
                    message.AddUInt32(Id);
                }

                SendMessage(message);

                userData.user.UpdateCreditsBalance();
                userData.user.UpdateActivityPointsBalance();

                if (userData.user.GetSubscriptionManager().HasSubscription(SubscriptionManager.SUBSCRIPTION_TYPE_CLUB) && !userData.user.GetBadgeComponent().HasBadge("HC1"))
                {
                    userData.user.GetBadgeComponent().GiveBadge("HC1", true, this);
                }
                else if (!userData.user.GetSubscriptionManager().HasSubscription(SubscriptionManager.SUBSCRIPTION_TYPE_CLUB) && userData.user.GetBadgeComponent().HasBadge("HC1"))
                {
                    userData.user.GetBadgeComponent().RemoveBadge("HC1");
                }

                if (!userData.user.GetBadgeComponent().HasBadge("VIP"))
                {
                    userData.user.GetBadgeComponent().GiveBadge("VIP", true, this);
                }
                
                ServerMessage fuserights = PacketHandelingManager.GetRecycledItem(OutputCode.FuserightEvent);
                fuserights.AddInt32(2);
                fuserights.AddInt32((int)GetHabbo().Rank);
                fuserights.AddBoolean(false);
                SendMessage(fuserights);

                GetHabboDataContainer().SerializeClub();

                GetHabboDataContainer().InitMessenger();
                GetHabboDataContainer().InitGroups();

                Logging.WriteLine("[" + GetHabbo().Username + "] logged in");

                return true;
            }
            catch (Exception e)
            {
                Logging.LogCriticalException("login -400: " + e.Message);
                Logging.HandleException(e, "TryLogin");

                ServerMessage NoserverConnection = PacketHandelingManager.GetRecycledItem(OutputCode.NoServerConnectionMessageComposer);
                NoserverConnection.AddInt32(-400);
                SendMessage(NoserverConnection);
            }

            return false;
        }