Пример #1
0
        internal AvatarEffectsInventoryComponent(uint UserId, GameClient pClient, UserData data)
        {
            this.mClient = pClient;
            this.Effects = new ArrayList();
            this.UserId = UserId;
            this.CurrentEffect = -1;
            this.Effects.Clear();

            StringBuilder QueryBuilder = new StringBuilder();
            foreach (AvatarEffect effect in data.effects)
            {
                if (!effect.HasExpired)
                {
                    Effects.Add(effect);
                    EffectCount++;
                }
                else
                    QueryBuilder.Append("DELETE FROM user_effects WHERE user_id = " + UserId + " AND effect_id = " + effect.EffectId + "; ");
            }

            if (QueryBuilder.Length > 0)
            {
                using (IQueryAdapter dbClient = ButterflyEnvironment.GetDatabaseManager().getQueryreactor())
                    dbClient.runFastQuery(QueryBuilder.ToString());
            }
        }
Пример #2
0
        internal BadgeComponent(uint userId, UserData data)
        {
            this.Badges = new Hashtable();
            foreach (Badge badge in data.badges)
            {
                if (!Badges.ContainsKey(badge.Code))
                    Badges.Add(badge.Code, badge);
            }

            this.UserId = userId;
        }
Пример #3
0
        internal BadgeComponent(uint userId, UserData data)
        {
            Badges = new List<Badge>();

            foreach (Badge badge in data.badges)
            {
                if (!Badges.Contains(badge))
                    Badges.Add(badge);
            }

            this.UserId = userId;
        }
Пример #4
0
 internal static InventoryComponent GetInventory(uint UserId, GameClient Client, UserData data)
 {
     return new InventoryComponent(UserId, Client, data);
     //InventoryComponent component;
     //if (storage.TryGetValue(UserId, out component))
     //    return component;
     //else
     //{
     //    InventoryComponent toReturn = 
     //    storage.Add(UserId, toReturn);
     //    return toReturn;
     //}
 }
Пример #5
0
        public HabboMessenger GetUserMessenger(uint uid, bool loadData = false, UserData data = null)
        {
            if (userMessengers.ContainsKey(uid) && data == null)
                return (HabboMessenger)userMessengers[uid];

            HabboMessenger result = new HabboMessenger(uid);
            Dictionary<uint, MessengerBuddy> friends = new Dictionary<uint, MessengerBuddy>();

            if (loadData)
            {
                DataTable dFriends;
                using (IQueryAdapter dbClient = ButterflyEnvironment.GetDatabaseManager().getQueryreactor())
                {
                    dbClient.setQuery("SELECT users.id,users.username,users.motto,users.look,users.last_online,messenger_friendships.relationship " +
                                "FROM users " +
                                "JOIN messenger_friendships " +
                                "ON users.id = messenger_friendships.sender " +
                                "WHERE messenger_friendships.receiver = " + uid + " " +
                                "UNION ALL " +
                                "SELECT users.id,users.username,users.motto,users.look,users.last_online,messenger_friendships.relationship " +
                                "FROM users " +
                                "JOIN messenger_friendships " +
                                "ON users.id = messenger_friendships.receiver " +
                                "WHERE messenger_friendships.sender = " + uid);
                    dFriends = dbClient.getTable();
                }

                UInt32 friendID;
                foreach (DataRow dRow in dFriends.Rows)
                {
                    friendID = (uint)dRow["id"];
                    if (friendID != uid && !friends.ContainsKey(friendID))
                        friends.Add(friendID, new MessengerBuddy(friendID, (string)dRow["username"], (string)dRow["look"], (string)dRow["motto"], (string)dRow["last_online"], (int)dRow["relationship"]));
                }

                result.Init(friends, new Dictionary<uint, MessengerRequest>());
            }
            else if (data != null)
            {
                result.Init(data.friends, data.requests);
            }

            result.Init(new Dictionary<uint, MessengerBuddy>(), new Dictionary<uint, MessengerRequest>());

            if (userMessengers.ContainsKey(uid))
                userMessengers[uid] = result;
            else
                userMessengers.Add(uid, result);
            return result;
        }
Пример #6
0
        internal InventoryComponent(uint UserId, GameClient Client, UserData UserData)
        {
            this.mClient = Client;
            this.UserId = UserId;
            this.floorItems = new Hashtable();
            this.wallItems = new Hashtable();
            this.discs = new Hashtable();

            foreach (UserItem item in UserData.inventory)
            {
                if (item.GetBaseItem().InteractionType == InteractionType.musicdisc)
                    discs.Add(item.Id, item);
                if (item.isWallItem)
                    wallItems.Add(item.Id, item);
                else
                    floorItems.Add(item.Id, item);
            }

            this.InventoryPets = new SafeDictionary<UInt32, Pet>(UserData.pets);
            this.mAddedItems = new Hashtable();
            this.mRemovedItems = new ArrayList();
            this.isUpdated = false;
        }
Пример #7
0
        internal InventoryComponent(uint UserId, GameClient Client, UserData UserData)
        {
            this.mClient = Client;
            this.UserId = UserId;
            this.floorItems = new Hashtable();
            this.wallItems = new Hashtable();
            this.bots = new Hashtable(UserData.bots);
            this.baseIDRegister = new Hashtable();


            foreach (UserItem item in UserData.inventory)
            {
                if (item.IsWallItem())
                    wallItems.Add(item.itemID, item);
                else
                    floorItems.Add(item.itemID, item);
                RegisterItem(item);
            }

            this.InventoryPets = new Hashtable(UserData.pets);
            this.mAddedItems = new Hashtable();
            this.mRemovedItems = new ArrayList();
            this.isUpdated = false;
        }
Пример #8
0
 internal SubscriptionManager(uint userID, UserData userData)
 {
     this.userID = userID;
     this.currentSubscription = userData.subscription;
 }
Пример #9
0
 internal SubscriptionManager(uint userID, UserData userData)
 {
     this.UserId = userID;
     Subscriptions = userData.subscriptions;
 }
Пример #10
0
 internal void LoadData(UserData data)
 {
     LoadAchievements(data.achievements);
     LoadFavorites(data.favouritedRooms);
     LoadMutedUsers(data.ignores);
     LoadTags(data.tags);
 }
Пример #11
0
        internal void Init(GameClient client, UserData data)
        {
            this.mClient = client;

            this.SubscriptionManager = new SubscriptionManager(Id, data);
            this.BadgeComponent = new BadgeComponent(Id, data);
            this.InventoryComponent = InventoryGlobal.GetInventory(Id, client, data);
            this.InventoryComponent.SetActiveState(client);
            this.AvatarEffectsInventoryComponent = new AvatarEffectsInventoryComponent(Id, client, data);
            this.quests = data.quests;
            this.chatMessageManager = new ChatMessageManager();

            this.Messenger = new HabboMessenger(Id);
            this.Messenger.Init(data.friends, data.requests);

            this.SpectatorMode = false;
            this.Disconnected = false;
            this.UsersRooms = data.rooms;
        }