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); }
//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; }
internal void Stop() { if (GetMessageHandler() != null) MessageHandler.Destroy(); if (GetHabboDataContainer() != null) { GetHabboDataContainer().Destroy(); } this.MessageHandler = null; this.Habbo = null; this.Connection = null; }
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; }