コード例 #1
0
        public virtual void Handle(GameClient session, ClientMessage message)
        {
            if (session?.GetHabbo()?.GetUserStats()?.DailyRespectPoints > 0)
            {
                RoomUnitUser target = session?.GetHabbo()?.GetRoomSession()?.GetRoom()?.RoomUserManager?.GetUserByID(this.UserID);
                if (target != null && target.Session.GetHabbo().ID != session.GetHabbo().ID)
                {
                    session.GetHabbo().GetRoomSession().GetRoomUser().Unidle();

                    session.GetHabbo().GetUserStats().DailyRespectPoints--;
                    session.GetHabbo().GetUserStats().RespectGiven++;
                    session.GetHabbo().GetUserAchievements().CheckAchievement("RespectGiven");

                    target.Session.GetHabbo().GetUserStats().RespectReceived++;
                    target.Session.GetHabbo().GetUserAchievements().CheckAchievement("RespectReceived");

                    using (DatabaseClient dbClient = Skylight.GetDatabaseManager().GetClient())
                    {
                        dbClient.AddParamWithValue("giverId", session.GetHabbo().ID);
                        dbClient.AddParamWithValue("giverRespectsGiven", session.GetHabbo().GetUserStats().RespectGiven);
                        dbClient.AddParamWithValue("giverDailyRespects", session.GetHabbo().GetUserStats().DailyRespectPoints);
                        dbClient.AddParamWithValue("receiverId", target.Session.GetHabbo().ID);
                        dbClient.AddParamWithValue("receiverRespects", target.Session.GetHabbo().GetUserStats().RespectReceived);
                        dbClient.ExecuteQuery("UPDATE user_stats SET daily_respect_points = @giverDailyRespects, respect_given = @giverRespectsGiven WHERE user_id = @giverId LIMIT 1; UPDATE user_stats SET respect_received = @receiverRespects WHERE user_id = @receiverId LIMIT 1;");
                    }

                    session.GetHabbo().GetRoomSession().GetRoom().SendToAll(new MultiRevisionServerMessage(OutgoingPacketsEnum.GiveRespect, new ValueHolder("UserID", this.UserID, "Total", target.Session.GetHabbo().GetUserStats().RespectReceived)));
                    session.GetHabbo().GetRoomSession().GetRoom().SendToAll(new UserActionComposerHandler(this.UserID, ActionType.Thumb));
                }
            }
        }
コード例 #2
0
        public void parse(GameClient session, ClientMessage message)
        {
            int id     = message.PopWiredInt32();
            int userid = message.PopWiredInt32();

            if (id <= 0 || userid <= 0)
            {
                return;
            }

            using (DatabaseClient dbclient = PhoenixEnvironment.GetDatabase().GetClient())
            {
                DataRow datarow = dbclient.ReadDataRow("SELECT id FROM friend_stream_likes WHERE friend_stream_id = '" + id + "' AND userid = '" + userid + "' LIMIT 1");

                if (datarow == null)
                {
                    dbclient.AddParamWithValue("fsi", id);
                    dbclient.AddParamWithValue("userid", userid);
                    dbclient.ExecuteQuery("INSERT INTO friend_stream_likes (friend_stream_id, userid) VALUES (@fsi, @userid)");
                }
                else
                {
                    session.SendNotif("You cant like twice!");
                }
            }
        }
コード例 #3
0
        public void Handle(GameClient session, ClientMessage message)
        {
            if (session.GetHabbo().GetUserStats().DailyRespectPoints > 0)
            {
                Room room = session.GetHabbo().GetRoomSession().GetRoom();
                if (room != null)
                {
                    uint         userId = message.PopWiredUInt();
                    RoomUnitUser target = room.RoomUserManager.GetUserByID(userId);
                    if (target != null && target.Session.GetHabbo().ID != session.GetHabbo().ID)
                    {
                        session.GetHabbo().GetUserStats().DailyRespectPoints--;
                        session.GetHabbo().GetUserStats().RespectGiven++;
                        target.Session.GetHabbo().GetUserStats().RespectReceived++;

                        using (DatabaseClient dbClient = Skylight.GetDatabaseManager().GetClient())
                        {
                            dbClient.AddParamWithValue("giverId", session.GetHabbo().ID);
                            dbClient.AddParamWithValue("giverRespectsGiven", session.GetHabbo().GetUserStats().RespectGiven);
                            dbClient.AddParamWithValue("giverDailyRespects", session.GetHabbo().GetUserStats().DailyRespectPoints);
                            dbClient.ExecuteQuery("UPDATE user_stats SET daily_respect_points = @giverDailyRespects, respect_given = @giverRespectsGiven WHERE user_id = @giverId LIMIT 1");

                            dbClient.AddParamWithValue("receiverId", target.Session.GetHabbo().ID);
                            dbClient.AddParamWithValue("receiverRespects", target.Session.GetHabbo().GetUserStats().RespectReceived);
                            dbClient.ExecuteQuery("UPDATE user_stats SET respect_received = @receiverRespects WHERE user_id = @receiverId LIMIT 1");
                        }

                        room.SendToAll(new MultiRevisionServerMessage(OutgoingPacketsEnum.GiveRespect, new ValueHolder("UserID", target.Session.GetHabbo().ID, "Total", target.Session.GetHabbo().GetUserStats().RespectReceived)));

                        session.GetHabbo().GetUserAchievements().CheckAchievement("RespectGiven");
                        target.Session.GetHabbo().GetUserAchievements().CheckAchievement("RespectReceived");
                    }
                }
            }
        }
コード例 #4
0
        public List <UserInventory> GetUserInventory(uint userid, bool b, int id)
        {
            List <UserInventory> rDetails = new List <UserInventory>();

            using (DatabaseClient dbClient = AleedaEnvironment.GetDatabase().GetClient())
            {
                if (b == true)
                {
                    dbClient.AddParamWithValue("@userid", userid);
                    foreach (DataRow row in dbClient.ReadDataTable("SELECT * FROM user_inventory WHERE userid = @userid").Rows)
                    {
                        UserInventory details = UserInventory.Parse(row, false);
                        if (details != null)
                        {
                            rDetails.Add(details);
                        }
                    }
                }
                else if (b == false)
                {
                    dbClient.AddParamWithValue("@id", id);
                    foreach (DataRow row in dbClient.ReadDataTable("SELECT * FROM user_inventory WHERE id = @id").Rows)
                    {
                        UserInventory details = UserInventory.Parse(row, false);
                        if (details != null)
                        {
                            rDetails.Add(details);
                        }
                    }
                }
            }
            return(rDetails);
        }
コード例 #5
0
ファイル: RoomItemManager.cs プロジェクト: aromaa/Skylight
        public void Pickall(GameClient session)
        {
            session.GetHabbo().GetInventoryManager().SetQueueBytes(true);

            foreach (RoomItem item in this.FloorItems.Values)
            {
                this.RemoveItem(session, item);
                session.GetHabbo().GetInventoryManager().AddRoomItemToHand(item);
            }

            foreach (RoomItem item in this.WallItems.Values)
            {
                this.RemoveItem(session, item);
                session.GetHabbo().GetInventoryManager().AddRoomItemToHand(item);
            }

            using (DatabaseClient dbClient = Skylight.GetDatabaseManager().GetClient())
            {
                dbClient.AddParamWithValue("userid", session.GetHabbo().ID);
                dbClient.AddParamWithValue("roomid", this.Room.ID);
                dbClient.ExecuteQuery("UPDATE items SET room_id = 0, user_id = @userid WHERE room_id = @roomid");
            }

            this.AddedAndMovedRoomItems.Clear();
            this.RoomItemStateUpdated.Clear();

            this.Room.RoomGamemapManager.UpdateTiles();

            session.GetHabbo().GetInventoryManager().SetQueueBytes(false);
        }
コード例 #6
0
        ///// <summary>
        ///// Finds all groups that the a given group contains of including all groups those groups contain, etc...
        ///// This given group is included.
        ///// </summary>
        ///// <param name="ID">The ID of the group to get the groups of.</param>
        ///// <param name="GroupIDs">This will be filled with the group IDs that the given group contains.</param>
        ///// <param name="dbClient">The DatabaseClient to use for this.</param>
        //private void RecursiveGetGroup(ushort ID, out HashSet<ushort> GroupIDs, DatabaseClient dbClient)
        //{
        //    GroupIDs.Add(ID); // Add the given group to start with.

        //    dbClient.ClearParams(); // Remove any prevois parameters for the database.
        //    dbClient.AddParamWithValue("id", ID); // Set the new parameter
        //    DataColumn dCol = dbClient.ReadDataColumn("SELECT valueid FROM fuse_item WHERE type = 'group' AND id = @id"); // Get all child group IDs

        //    if (dCol != null) // Is their are any more?
        //        for (int i = 0; i < dCol.Table.Rows.Count; i++) // Yes, loop through them all.
        //            if (!GroupIDs.Contains((ushort)dCol.Table.Rows[i]["id"])) // Is the next group already added?
        //                RecursiveGetGroup((ushort)dCol.Table.Rows[i]["id"], out GroupIDs, dbClient); // No, add it and all it's children.
        //}

        /// <summary>
        /// Get all fuserights that a user has.
        /// </summary>
        /// <param name="ID">The user ID of the user</param>
        /// <returns>A string array containing all fuse rights of the user.</returns>
        public string[] GetUserRights(uint ID)
        {
            DataColumn dCol;

            using (DatabaseClient dbClient = Core.GetDatabaseManager().GetClient())
            {
                dbClient.AddParamWithValue("id", ID);                                                                                   // User groups that have been specifically given to the user.
                dbClient.AddParamWithValue("global", uint.MaxValue);                                                                    // User groups that are given by default.
                dCol = dbClient.ReadDataColumn("SELECT groupid FROM fuse_item WHERE type='user' AND (valueid=@id OR valueid=@global)"); // Get all the fuse groups this user is a member of
            }

            if (dCol == null)          // Are they in any groups?
            {
                return(new string[0]); // No - Return no rights
            }
            HashSet <string> Return = new HashSet <string>();

            HashSet <ushort> Groups = new HashSet <ushort>();

            for (int i = 0; i < dCol.Table.Rows.Count; i++)                                          // For every group the user is a direct member of...
            {
                Groups.Add((ushort)dCol.Table.Rows[i]["groupid"]);                                   // Add it to the collection of every group they user is in (including children).
                Groups.UnionWith(this.mGroups[(ushort)dCol.Table.Rows[i]["groupid"]].GetChildren()); // And then add all child groups too.
            }

            foreach (ushort Group in Groups)                       // For every group in the collection...
            {
                Return.UnionWith(this.mGroups[Group].GetRights()); // Add the rights from it to the collection of rights the user has.
            }

            string[] ReturnArray = new string[Return.Count];
            Return.CopyTo(ReturnArray); // Convert the collection to a string array
            return(ReturnArray);        // Return the array.
        }
コード例 #7
0
        public void Handle(GameClient Session, ClientMessage Event)
        {
            string message = Event.PopFixedString();

            using (DatabaseClient dbClient = Essential.GetDatabase().GetClient())
            {
                DataRow dr          = dbClient.ReadDataRow("SELECT * FROM friend_stream WHERE userid='" + Session.GetHabbo().Id.ToString() + "' ORDER BY time DESC LIMIT 1");
                double  currentTime = Essential.GetUnixTimestamp();
                if (dr == null)
                {
                    string Id     = Session.GetHabbo().Id.ToString();
                    string Gender = Session.GetHabbo().Gender.ToString();
                    string look   = Session.GetHabbo().Figure.ToString();
                    dbClient.AddParamWithValue("@endstring", message);
                    dbClient.ExecuteQuery("INSERT INTO friend_stream (`type`,`userid`,`gender`,`look`,`time`,`data`,`data_extra`) VALUES ('1','" + Id + "','" + Gender + "','" + look + "','" + currentTime + "', @endstring, '0');");
                }
                else
                {
                    double lastTime = (double)dr["time"];
                    double seconds  = currentTime - lastTime;
                    if (seconds > 300)
                    {
                        string Id     = Session.GetHabbo().Id.ToString();
                        string Gender = Session.GetHabbo().Gender.ToString();
                        string look   = Session.GetHabbo().Figure.ToString();
                        dbClient.AddParamWithValue("@endstring", message);
                        dbClient.ExecuteQuery("INSERT INTO friend_stream (`type`,`userid`,`gender`,`look`,`time`,`data`,`data_extra`) VALUES ('1','" + Id + "','" + Gender + "','" + look + "','" + currentTime + "', @endstring, '0');");
                    }
                    else
                    {
                        Session.SendNotification("Du kannst nur alle 15 Minuten einen Friendstream Eintrag erstellen! Versuchs später nochmal.");
                    }
                }
            }
        }
コード例 #8
0
        public void SavePetData()
        {
            string query = "";

            using (DatabaseClient dbClient = Skylight.GetDatabaseManager().GetClient())
            {
                foreach (Pet pet in this.Pets.Values.ToList())
                {
                    if (pet.NeedUpdate)
                    {
                        dbClient.AddParamWithValue("petId" + pet.ID, pet.ID);
                        dbClient.AddParamWithValue("expirience" + pet.ID, pet.Expirience);
                        dbClient.AddParamWithValue("energy" + pet.ID, pet.Energy);
                        dbClient.AddParamWithValue("happiness" + pet.ID, pet.Happiness);
                        dbClient.AddParamWithValue("respect" + pet.ID, pet.Respect);

                        query += "UPDATE user_pets SET room_id = '0', expirience = @expirience" + pet.ID + ", energy = @energy" + pet.ID + ", happiness = @happiness" + pet.ID + ", respect = @respect" + pet.ID + ", x = '0', y = '0', z = '0' WHERE id = @petId" + pet.ID + " LIMIT 1; ";
                    }

                    if (query.Length > 0)
                    {
                        dbClient.ExecuteQuery(query);
                    }
                }
            }
        }
コード例 #9
0
ファイル: WardrobeManager.cs プロジェクト: aromaa/Skylight
        public void UpdateSlot(int slotID, string gender, string look)
        {
            WardrobeSlot slot = this.TryGetSlot(slotID);

            if (slot != null)
            {
                slot.Gender = gender;
                slot.Look   = look;

                using (DatabaseClient dbClient = Skylight.GetDatabaseManager().GetClient())
                {
                    dbClient.AddParamWithValue("userId", this.HabboID);
                    dbClient.AddParamWithValue("slotId", slotID);
                    dbClient.AddParamWithValue("gender", gender);
                    dbClient.AddParamWithValue("look", look);

                    dbClient.ExecuteQuery("UPDATE user_wardrobe SET gender = @gender, look = @look WHERE user_id = @userId AND slot_id = @slotId LIMIT 1");
                }
            }
            else
            {
                this.WardrobeItems.Add(slotID, new WardrobeSlot(slotID, gender, look));

                using (DatabaseClient dbClient = Skylight.GetDatabaseManager().GetClient())
                {
                    dbClient.AddParamWithValue("userId", this.HabboID);
                    dbClient.AddParamWithValue("slotId", slotID);
                    dbClient.AddParamWithValue("gender", gender);
                    dbClient.AddParamWithValue("look", look);

                    dbClient.ExecuteQuery("INSERT INTO user_wardrobe(user_id, slot_id, gender, look) VALUES(@userId, @slotId, @gender, @look)");
                }
            }
        }
コード例 #10
0
ファイル: RoomvisitManager.cs プロジェクト: aromaa/Skylight
        public void PushRoomvisitsToDB()
        {
            StringBuilder query = new StringBuilder();

            using (DatabaseClient dbClient = Skylight.GetDatabaseManager().GetClient())
            {
                int       i = 0;
                Roomvisit roomvisit;
                while (this.RoomvisitsInsertNeeded.TryDequeue(out roomvisit))
                {
                    i++; //needed so params works correctly

                    dbClient.AddParamWithValue("userId" + i, roomvisit.UserID);
                    dbClient.AddParamWithValue("roomId" + i, roomvisit.RoomID);
                    dbClient.AddParamWithValue("entryTimestamp" + i, roomvisit.EntryTimestamp);

                    query.Append("INSERT INTO user_roomvisits(user_id, room_id, entry_timestamp) VALUES(@userId" + i + ", @roomId" + i + ", @entryTimestamp" + i + "); ");
                }

                if (query.Length > 0)
                {
                    dbClient.ExecuteQuery(query.ToString());
                }
            }
        }
コード例 #11
0
ファイル: User.cs プロジェクト: habb0/IHI
        /// <summary>
        /// Construct a User object for the user with the given ID.
        /// DO NOT USE THIS FOR GETTING A USER - USE THE USER DISTRIBUTOR
        /// </summary>
        /// <param name="Username">The username of user you wish to a User object for.</param>
        internal User(string Username)
        {
            this.fUsername = Username;

            DataRow   UserRow;
            DataTable LongTermValues;

            using (DatabaseClient dbClient = Core.GetDatabaseManager().GetClient())
            {
                dbClient.AddParamWithValue("username", this.fUsername);
                UserRow = dbClient.ReadDataRow("SELECT id FROM users WHERE name = @username");

                this.fID = (uint)UserRow["id"];

                dbClient.AddParamWithValue("userid", this.fID);
                LongTermValues = dbClient.ReadDataTable("SELECT name, value FROM users_data_values WHERE userid = @userid");
            }

            this.fMotto      = (string)UserRow["motto"];
            this.fFigure     = (string)UserRow["figure"];
            this.fGender     = (bool)UserRow["gender"];
            this.fLastAccess = (DateTime)UserRow["lastaccess"];

            this.fLongTermValues = new Dictionary <string, string>();
            foreach (DataRow LongTermValue in LongTermValues.Rows)
            {
                this.fLongTermValues.Add((string)LongTermValue["name"], (string)LongTermValue["value"]);
            }
        }
コード例 #12
0
ファイル: Habbo.cs プロジェクト: aromaa/Skylight
        public void UpdateActivityPoints(int type, bool save)
        {
            if (type == -1)
            {
                foreach (int id in this.ActivityPoints.Keys.ToList())
                {
                    this.HandleActivityPointsUpdate(id);
                }
            }
            else
            {
                this.HandleActivityPointsUpdate(type);
            }

            if (save)
            {
                using (DatabaseClient dbClient = Skylight.GetDatabaseManager().GetClient())
                {
                    dbClient.AddParamWithValue("activityPoints", CurrenceUtilies.ActivityPointsToString(this.ActivityPoints));
                    dbClient.AddParamWithValue("userId", this.ID);

                    dbClient.ExecuteQuery("UPDATE users SET activity_points = @activityPoints WHERE id = @userId LIMIT 1");
                }
            }
        }
コード例 #13
0
        public virtual void Handle(GameClient session, ClientMessage message)
        {
            if (session?.GetHabbo()?.GetMessenger() != null)
            {
                uint userId = 0;
                bool blockFriendRequests = false;

                GameClient target = Skylight.GetGame().GetGameClientManager().GetGameClientByUsername(this.Username);
                if (target?.GetHabbo()?.GetUserSettings() == null)
                {
                    DataRow dataRow = null;
                    using (DatabaseClient dbClient = Skylight.GetDatabaseManager().GetClient())
                    {
                        dbClient.AddParamWithValue("username", this.Username);
                        dataRow = dbClient.ReadDataRow("SELECT id, block_newfriends FROM users WHERE username = @username LIMIT 1");
                    }

                    if (dataRow != null)
                    {
                        userId = (uint)dataRow["id"];
                        blockFriendRequests = TextUtilies.StringToBool((string)dataRow["block_newfriends"]);
                    }
                }
                else
                {
                    userId = target.GetHabbo().ID;
                    blockFriendRequests = target.GetHabbo().GetUserSettings().BlockNewFriends;
                }

                if (userId > 0 && userId != session.GetHabbo().ID)
                {
                    if (blockFriendRequests)
                    {
                        session.SendMessage(new MessengerSendFriendRequestErrorComposerHandler(MessengerSendFriendRequestErrorCode.FriendRequestsDisabled));
                    }
                    else
                    {
                        if (session.GetHabbo().GetMessenger().TrySendFriendRequestTo(userId) && !(target?.GetHabbo()?.GetMessenger()?.HasFriendRequestPendingFrom(session.GetHabbo().ID) ?? true))
                        {
                            bool insertSuccess = false;
                            using (DatabaseClient dbClient = Skylight.GetDatabaseManager().GetClient())
                            {
                                dbClient.AddParamWithValue("toid", userId);
                                dbClient.AddParamWithValue("userid", session.GetHabbo().ID);
                                insertSuccess = dbClient.ExecuteNonQuery("INSERT INTO messenger_requests (to_id, from_id) VALUES (@toid, @userid)") > 0;
                            }

                            if (insertSuccess)
                            {
                                target?.GetHabbo()?.GetMessenger()?.AddFriendRequest(new MessengerRequest(userId, session.GetHabbo().ID, session.GetHabbo().Username, session.GetHabbo().Look));
                            }
                        }
                    }
                }
                else
                {
                    session.SendMessage(new MessengerSendFriendRequestErrorComposerHandler(MessengerSendFriendRequestErrorCode.RequestNotFound));
                }
            }
        }
コード例 #14
0
ファイル: TeleHandler.cs プロジェクト: aromaa/Skylight
 //tele and room id
 public static KeyValuePair <uint, uint> GetTeleDestiny(uint teleId)
 {
     using (DatabaseClient dbClient = Skylight.GetDatabaseManager().GetClient())
     {
         dbClient.AddParamWithValue("teleId", teleId);
         DataRow teleTwoData = dbClient.ReadDataRow("SELECT IF(tele_one_id != @teleId, tele_one_id, tele_two_id) AS tele_id FROM items_teleports_links WHERE tele_one_id = @teleId OR tele_two_id = @teleId LIMIT 1");
         if (teleTwoData != null)
         {
             uint teleTwoId = (uint)teleTwoData["tele_id"];
             if (teleTwoId > 0)
             {
                 dbClient.AddParamWithValue("teleTwoId", teleTwoId);
                 DataRow roomIdData = dbClient.ReadDataRow("SELECT room_id FROM items WHERE id = @teleTwoId LIMIT 1");
                 if (roomIdData != null)
                 {
                     return(new KeyValuePair <uint, uint>(teleTwoId, (uint)roomIdData["room_id"]));
                 }
                 else
                 {
                     return(new KeyValuePair <uint, uint>(0, 0));
                 }
             }
             else
             {
                 return(new KeyValuePair <uint, uint>(0, 0));
             }
         }
         else
         {
             return(new KeyValuePair <uint, uint>(0, 0));
         }
     }
 }
コード例 #15
0
        public RoomData CreateRoom(GameClient Session, string Name, string Model)
        {
            Name = PhoenixEnvironment.FilterInjectionChars(Name);

            if (!this.Models.ContainsKey(Model))
            {
                Session.SendNotif("Sorry, this room model has not been added yet. Try again later.");
                return(null);
            }
            else if (Models[Model].ClubOnly && !Session.GetHabbo().GetSubscriptionManager().HasSubscription("habbo_club") && !Session.GetHabbo().GetSubscriptionManager().HasSubscription("habbo_vip"))
            {
                Session.SendNotif("You must be an Phoenix Club member to use that room layout.");
                return(null);
            }
            else if (Name.Length < 3)
            {
                Session.SendNotif("Room name is too short for room creation!");
                return(null);
            }
            else
            {
                uint RoomId = 0;
                using (DatabaseClient adapter = PhoenixEnvironment.GetDatabase().GetClient())
                {
                    adapter.AddParamWithValue("caption", Name);
                    adapter.AddParamWithValue("model", Model);
                    adapter.AddParamWithValue("username", Session.GetHabbo().Username);
                    adapter.ExecuteQuery("INSERT INTO rooms (roomtype,caption,owner,model_name) VALUES ('private',@caption,@username,@model)");
                    Session.GetHabbo().GetHabboData.GetUsersRooms = adapter.ReadDataTable("SELECT * FROM rooms WHERE owner = @username ORDER BY Id ASC");
                    RoomId = (uint)adapter.ReadDataRow("SELECT Id FROM rooms WHERE owner = @username AND caption = @caption ORDER BY Id DESC")[0];
                    Session.GetHabbo().UpdateRooms(adapter);
                }
                return(this.GenerateRoomData(RoomId));
            }
        }
コード例 #16
0
ファイル: userManager.cs プロジェクト: Habbotard/HoloPooling
        /// <summary>
        /// (Re)bans all the users on a certain IP address, making them unable to login, and making them unable to connect to the system. The ban is applied with a specified amount and reason. All affected users receive the ban message (which contains the reason) and they are disconnected.
        /// </summary>
        /// <param name="IP">The IP address to ban.</param>
        /// <param name="Hours">The amount of hours (starts now) till the ban is lifted.</param>
        /// <param name="Reason">The reason for the ban, that describes thes user why their IP address/accounts are blocked from the system.</param>
        public static void setBan(string IP, int Hours, string Reason)
        {
            string     Expires = DateTime.Now.AddHours(Hours).ToString().Replace("/", "-").Replace(".", "-");
            DataColumn dCol;

            using (DatabaseClient dbClient = Eucalypt.dbManager.GetClient())
            {
                dbClient.AddParamWithValue("ip", IP);
                dbClient.AddParamWithValue("expires", Expires);
                dbClient.AddParamWithValue("reason", Reason);
                dbClient.runQuery("INSERT INTO users_bans (ipaddress,date_expire,descr) VALUES (@ip,@expires,@reason)");

                dCol = dbClient.getColumn("SELECT id FROM users WHERE ipaddress_last = '" + IP + "'");
            }
            virtualUser User;

            foreach (DataRow dRow in dCol.Table.Rows)
            {
                if (_Users.ContainsKey(Convert.ToInt32(dRow["id"])))
                {
                    User = ((virtualUser)_Users[Convert.ToInt32(dRow["ID"])]);
                    User.sendData("@c" + Reason);
                    User.Disconnect(1000);
                }
            }
        }
コード例 #17
0
 public void method_3(GameClient Session, int int_0, uint uint_0, string string_0)
 {
     if (Session.GetHabbo().CurrentRoomId > 0u)
     {
         RoomData @class = GoldTree.GetGame().GetRoomManager().method_11(Session.GetHabbo().CurrentRoomId);
         uint     uint_  = 0u;
         using (DatabaseClient class2 = GoldTree.GetDatabase().GetClient())
         {
             class2.AddParamWithValue("message", string_0);
             class2.AddParamWithValue("name", @class.Name);
             class2.ExecuteQuery(string.Concat(new object[]
             {
                 "INSERT INTO moderation_tickets (score,type,status,sender_id,reported_id,moderator_id,message,room_id,room_name,timestamp) VALUES (1,'",
                 int_0,
                 "','open','",
                 Session.GetHabbo().Id,
                 "','",
                 uint_0,
                 "','0',@message,'",
                 @class.Id,
                 "',@name,UNIX_TIMESTAMP())"
             }));
             class2.ExecuteQuery("UPDATE user_info SET cfhs = cfhs + 1 WHERE user_id = '" + Session.GetHabbo().Id + "' LIMIT 1");
             uint_ = (uint)class2.ReadDataRow("SELECT Id FROM moderation_tickets WHERE sender_id = '" + Session.GetHabbo().Id + "' ORDER BY Id DESC LIMIT 1")[0];
         }
         SupportTicket class3 = new SupportTicket(uint_, 1, int_0, Session.GetHabbo().Id, uint_0, string_0, @class.Id, @class.Name, GoldTree.GetUnixTimestamp(), 0u);
         this.Tickets.Add(class3);
         this.method_11(class3);
     }
 }
コード例 #18
0
        public void method_16(GameClient Session, uint uint_0, string string_0, bool bool_0)
        {
            GameClient @class = Essential.GetGame().GetClientManager().GetClient(uint_0);

            if (@class != null && @class.GetHabbo().Id != Session.GetHabbo().Id)
            {
                if (bool_0 && @class.GetHabbo().Rank >= Session.GetHabbo().Rank)
                {
                    Session.SendNotification(EssentialEnvironment.GetExternalText("mod_error_permission_caution"));
                    //bool_0 = false;
                    return;
                }
                @class.SendNotification(string_0, 0);
                //if (bool_0)
                //{
                using (DatabaseClient class2 = Essential.GetDatabase().GetClient())
                {
                    try
                    {
                        class2.AddParamWithValue("description", string_0);
                        class2.AddParamWithValue("timestamp", (int)Essential.GetUnixTimestamp());
                        class2.ExecuteQuery("INSERT INTO hp_verwarnungen (user_id,title,beschreibung,timestamp,endtimestamp_verwarnung,mod_id,mod_ip) VALUES (" + uint_0 + ",'Mod-Tool',@description,@timestamp,'0'," + Session.GetHabbo().Id + ",'" + Session.GetConnection().LocalEndPoint.ToString().Split(':')[0] + "')");
                        class2.ExecuteQuery("UPDATE user_info SET cautions = cautions + 1 WHERE user_id = '" + uint_0 + "' LIMIT 1");
                    }catch (Exception ex)
                    {
                        Console.WriteLine(ex.ToString());
                    }
                }
                //}
            }
        }
コード例 #19
0
        public void AddSubscription(string subscription, double secounds)
        {
            //pretty sure we don't want do that on here
            if (secounds <= 0)
            {
                return;
            }

            if (this.Subscriptions.ContainsKey(subscription))
            {
                foreach (Subscription subscription_ in this.Subscriptions[subscription])
                {
                    if (subscription_.IsActive())
                    {
                        subscription_.Expand(secounds);

                        using (DatabaseClient dbClient = Skylight.GetDatabaseManager().GetClient())
                        {
                            dbClient.AddParamWithValue("id", subscription_.ID);
                            dbClient.AddParamWithValue("expires", subscription_.GetExpires());

                            dbClient.ExecuteQuery("UPDATE user_subscriptions SET subscription_expires = @expires WHERE id = @id LIMIT 1;");
                        }

                        return;
                    }
                }
            }

            //it we didint found active sub

            int    id      = 0;
            double started = TimeUtilies.GetUnixTimestamp();
            double expires = started + secounds;

            using (DatabaseClient dbClient = Skylight.GetDatabaseManager().GetClient())
            {
                dbClient.AddParamWithValue("userId", this.ID);
                dbClient.AddParamWithValue("subscription", subscription);
                dbClient.AddParamWithValue("started", started);
                dbClient.AddParamWithValue("expires", expires);

                id = (int)dbClient.ExecuteQuery("INSERT INTO user_subscriptions(user_id, subscription_name, subscription_started, subscription_expires) VALUES(@userId, @subscription, @started, @expires)");
            }

            if (id > 0) //lets do it for sure :/
            {
                Subscription newSub = new Subscription(id, subscription, started, expires);
                if (!this.Subscriptions.ContainsKey(subscription))
                {
                    this.Subscriptions.Add(subscription, new List <Subscription> {
                        newSub
                    });
                }
                else
                {
                    this.Subscriptions[subscription].Add(newSub);
                }
            }
        }
コード例 #20
0
        public void method_8(uint uint_0, GameClient Session)
        {
            Session.GetHabbo().CurrentQuestId = 0u;
            Session.GetHabbo().uint_7         = uint_0;
            using (DatabaseClient @class = GoldTree.GetDatabase().GetClient())
            {
                @class.AddParamWithValue("userid", Session.GetHabbo().Id);
                @class.AddParamWithValue("questid", uint_0);
                @class.ExecuteQuery(string.Concat(new string[]
                {
                    "UPDATE user_stats SET quest_id = '0',quest_progress = '0', lev_",
                    this.method_6(uint_0).Type.Replace("room_", ""),
                    " = lev_",
                    this.method_6(uint_0).Type.Replace("room_", ""),
                    " + 1 WHERE Id = @userid LIMIT 1"
                }));
                @class.ExecuteQuery("INSERT INTO user_quests (user_id,quest_id) VALUES (@userid,@questid)");
            }
            string text = this.method_6(uint_0).Type.ToLower();

            if (text != null)
            {
                if (!(text == "identity"))
                {
                    if (!(text == "room_builder"))
                    {
                        if (!(text == "social"))
                        {
                            if (text == "explore")
                            {
                                Session.GetHabbo().int_9++;
                            }
                        }
                        else
                        {
                            Session.GetHabbo().int_7++;
                        }
                    }
                    else
                    {
                        Session.GetHabbo().int_6++;
                    }
                }
                else
                {
                    Session.GetHabbo().int_8++;
                }
            }
            Session.GetHabbo().method_25();
            ServerMessage Message = new ServerMessage(801u);
            Quest         class2  = this.method_6(uint_0);

            class2.Serialize(Message, Session, true);
            this.method_9(Session, Message);
            Message.AppendInt32(1);
            Session.SendMessage(Message);
            Session.GetHabbo().ActivityPoints += class2.PixelReward;
            Session.GetHabbo().method_15(true);
            Session.GetHabbo().CurrentQuestProgress = 0;
        }
コード例 #21
0
        public void Handle(GameClient session, ClientMessage message)
        {
            Room room = session.GetHabbo().GetRoomSession().GetRoom();

            if (room != null)
            {
                string       username = message.PopFixedString();
                RoomUnitUser user     = room.RoomUserManager.GetUserByName(username);
                if (user != null && !user.Session.GetHabbo().HasPermission("acc_unignorable"))
                {
                    uint userId = user.Session.GetHabbo().ID;
                    if (!session.GetHabbo().IgnoredUsers.Contains(userId))
                    {
                        session.GetHabbo().IgnoredUsers.Add(userId);

                        using (DatabaseClient dbClient = Skylight.GetDatabaseManager().GetClient())
                        {
                            dbClient.AddParamWithValue("userId", session.GetHabbo().ID);
                            dbClient.AddParamWithValue("targetId", userId);
                            dbClient.ExecuteQuery("INSERT INTO user_ignores(user_id, ignored_id) VALUES(@userId, @targetId)");
                        }

                        ServerMessage message_ = BasicUtilies.GetRevisionServerMessage(Revision.RELEASE63_35255_34886_201108111108);
                        message_.Init(r63aOutgoing.IgnoreStatus);
                        message_.AppendInt32(1);
                        session.SendMessage(message_);
                    }
                }
            }
        }
コード例 #22
0
ファイル: UserAchievements.cs プロジェクト: aromaa/Skylight
        public void AchievementUnlocked(string achievement, int level)
        {
            if (this.AchievementLevels.ContainsKey(achievement))
            {
                this.AchievementLevels[achievement] = level;

                using (DatabaseClient dbClient = Skylight.GetDatabaseManager().GetClient())
                {
                    dbClient.AddParamWithValue("userId", this.Habbo.ID);
                    dbClient.AddParamWithValue("group", achievement);
                    dbClient.AddParamWithValue("level", level);
                    dbClient.ExecuteQuery("UPDATE user_achievements SET achievement_level = @level WHERE user_id = @userId AND achievement_group = @group LIMIT 1");
                }
            }
            else
            {
                this.AchievementLevels.Add(achievement, level);

                using (DatabaseClient dbClient = Skylight.GetDatabaseManager().GetClient())
                {
                    dbClient.AddParamWithValue("userId", this.Habbo.ID);
                    dbClient.AddParamWithValue("group", achievement);
                    dbClient.AddParamWithValue("level", level);
                    dbClient.ExecuteQuery("INSERT INTO user_achievements(user_id, achievement_group, achievement_level) VALUES(@userId, @group, @level)");
                }
            }
        }
コード例 #23
0
        public static ServerMessage PlaceFurni(GameClient Session, int id, int x, int y, int rot, DatabaseClient dbClient)
        {
            List <UserInventory> mInventoryItem = AleedaEnvironment.GetHabboHotel().GetRoomUser().GetUserInventory(Session.GetHabbo().ID, false, Session.GetHabbo().ItemUsingID);

            foreach (UserInventory mItem in mInventoryItem)
            {
                dbClient.AddParamWithValue("id", Session.GetHabbo().RoomId);
                dbClient.AddParamWithValue("x", x);
                dbClient.AddParamWithValue("y", y);
                dbClient.AddParamWithValue("rotation", rot);
                dbClient.AddParamWithValue("sID", mItem.SpriteID);
                dbClient.ExecuteQuery("INSERT INTO room_items (`id`, `mID`, `x_axis`, `y_axis`, `rotation`, `sprite_id`, `trigger`, `isWallItem`) VALUES ('" + id + "', @id, @x, @y, @rotation, @sID, 1, 0);");

                ServerMessage Message = new ServerMessage(93);
                Message.AppendInt32(id);
                Message.AppendInt32(mItem.SpriteID);
                Message.AppendInt32(x);
                Message.AppendInt32(y);
                Message.AppendInt32(rot);
                Message.AppendString("0.0");
                Message.AppendInt32(1);
                Message.AppendString("" + 1);
                Message.AppendInt32(-1);
                return(Message);
            }
            return(null);
        }
コード例 #24
0
        public void Handle(GameClient session, ClientMessage message)
        {
            Room room = session.GetHabbo().GetRoomSession().GetRoom();

            if (room != null)
            {
                uint    petId = message.PopWiredUInt();
                RoomPet pet   = room.RoomUserManager.GetPetByID(petId);
                if (pet != null && pet.PetData != null && session.GetHabbo().GetUserStats().DailyPetRespectPoints > 0)
                {
                    session.GetHabbo().GetUserStats().DailyPetRespectPoints--;
                    session.GetHabbo().GetUserStats().PetRespectGiven++;
                    pet.OnRespect();

                    using (DatabaseClient dbClient = Skylight.GetDatabaseManager().GetClient())
                    {
                        dbClient.AddParamWithValue("userId", session.GetHabbo().ID);
                        dbClient.AddParamWithValue("petRespect", session.GetHabbo().GetUserStats().DailyPetRespectPoints);
                        dbClient.AddParamWithValue("petRespectGiven", session.GetHabbo().GetUserStats().PetRespectGiven);
                        dbClient.ExecuteQuery("UPDATE user_stats SET daily_pet_respect_points = @petRespect, pet_respect_given = @petRespectGiven WHERE user_id = @userId LIMIT 1");
                    }

                    session.GetHabbo().GetUserAchievements().CheckAchievement("PetRespectGiven");
                }
            }
        }
コード例 #25
0
 public UserDataFactory(string string_0, bool bool_1)
 {
     using (DatabaseClient @class = GoldTree.GetDatabase().GetClient())
     {
         @class.AddParamWithValue("username", string_0);
         this.dataRow_0 = @class.ReadDataRow("SELECT * FROM users WHERE username = @username LIMIT 1;");
         if (this.dataRow_0 != null)
         {
             this.bool_0 = true;
             uint num = (uint)this.dataRow_0["Id"];
             if (bool_1)
             {
                 this.dataTable_0 = @class.ReadDataTable("SELECT achievement_id,achievement_level FROM user_achievements WHERE user_id = '" + num + "'");
                 this.dataTable_1 = @class.ReadDataTable("SELECT room_id FROM user_favorites WHERE user_id = '" + num + "'");
                 this.dataTable_2 = @class.ReadDataTable("SELECT ignore_id FROM user_ignores WHERE user_id = '" + num + "'");
                 this.dataTable_3 = @class.ReadDataTable("SELECT tag FROM user_tags WHERE user_id = '" + num + "'");
                 this.dataTable_4 = @class.ReadDataTable("SELECT subscription_id, timestamp_activated, timestamp_expire FROM user_subscriptions WHERE user_id = '" + num + "'");
                 this.dataTable_5 = @class.ReadDataTable("SELECT user_badges.badge_id,user_badges.badge_slot FROM user_badges WHERE user_id = " + num);
                 this.dataTable_6 = @class.ReadDataTable("SELECT Id,base_item,extra_data FROM items WHERE room_id = 0 AND user_id = " + num);
                 this.dataTable_7 = @class.ReadDataTable("SELECT user_effects.effect_id,user_effects.total_duration,user_effects.is_activated,user_effects.activated_stamp FROM user_effects WHERE user_id =  " + num);
                 this.dataTable_8 = @class.ReadDataTable("SELECT users.Id,users.username,users.motto,users.look,users.last_online FROM users JOIN messenger_friendships ON users.Id = messenger_friendships.user_two_id WHERE messenger_friendships.user_one_id = '" + num + "'");
                 this.dataTable_9 = @class.ReadDataTable("SELECT messenger_requests.Id,messenger_requests.from_id,users.username FROM users JOIN messenger_requests ON users.Id = messenger_requests.from_id WHERE messenger_requests.to_id = '" + num + "'");
                 @class.AddParamWithValue("name", (string)this.dataRow_0["username"]);
                 this.dataTable_10 = @class.ReadDataTable("SELECT * FROM rooms WHERE owner = @name ORDER BY Id ASC LIMIT " + LicenseTools.Int32_4);
             }
         }
         else
         {
             this.bool_0 = false;
         }
     }
 }
コード例 #26
0
        public void Handle(GameClient Session, ClientMessage Event)
        {
            int           guildId = Event.PopWiredInt32();
            string        str     = Event.PopFixedString();
            string        str2    = Event.PopFixedString();
            GroupsManager guild   = Groups.GetGroupById(guildId);

            if (!guild.UserWithRanks.Contains((int)Session.GetHabbo().Id))
            {
                return;
            }
            if (guild != null)
            {
                Room room = Essential.GetGame().GetRoomManager().GetRoom((uint)guild.RoomId);
                if (room != null)
                {
                    guild.Name        = str;
                    guild.Description = str2;
                    using (DatabaseClient dbClient = Essential.GetDatabase().GetClient())
                    {
                        dbClient.AddParamWithValue("gd1", guild.Name);
                        dbClient.AddParamWithValue("gd2", guild.Description);
                        dbClient.ExecuteQuery("UPDATE groups SET name=@gd1, groups.desc=@gd2 WHERE id=" + guildId);
                    }
                    room.SaveSettingsPackets(guild, Session);
                }
            }
        }
コード例 #27
0
        public void Handle(GameClient session, ClientMessage message)
        {
            uint roomId = message.PopWiredUInt();

            if (session.GetHabbo().HomeRoom != roomId)
            {
                RoomData roomData = Skylight.GetGame().GetRoomManager().TryGetAndLoadRoomData(roomId);
                if (roomData != null && roomData.OwnerID == session.GetHabbo().ID)
                {
                    session.GetHabbo().HomeRoom = roomId;

                    using (DatabaseClient dbClient = Skylight.GetDatabaseManager().GetClient())
                    {
                        dbClient.AddParamWithValue("roomId", roomId);
                        dbClient.AddParamWithValue("userId", session.GetHabbo().ID);
                        dbClient.ExecuteQuery("UPDATE users SET home_room = @roomId WHERE id = @userId LIMIT 1");
                    }

                    ServerMessage message_ = BasicUtilies.GetRevisionServerMessage(Revision.RELEASE63_35255_34886_201108111108);
                    message_.Init(r63aOutgoing.HomeRoom);
                    message_.AppendUInt(roomId);
                    session.SendMessage(message_);
                }
            }
        }
コード例 #28
0
ファイル: MottoMessageEvent.cs プロジェクト: aromaa/Skylight
        public void Handle(GameClient session, ClientMessage message)
        {
            if (session != null && session.GetHabbo() != null)
            {
                RoomUnit roomUser = session.GetHabbo().GetRoomSession().GetRoomUser();
                if (roomUser != null)
                {
                    string motto = TextUtilies.FilterString(message.PopFixedString());
                    if (!TextUtilies.HaveBlacklistedWords(motto))
                    {
                        session.GetHabbo().Motto = motto;

                        using (DatabaseClient dbClient = Skylight.GetDatabaseManager().GetClient())
                        {
                            dbClient.AddParamWithValue("userId", session.GetHabbo().ID);
                            dbClient.AddParamWithValue("motto", motto);

                            dbClient.ExecuteQuery("UPDATE users SET motto = @motto WHERE id = @userId LIMIT 1");
                            if (session.GetHabbo().GetUserSettings().FriendStream)
                            {
                                dbClient.ExecuteQuery("INSERT INTO user_friend_stream(type, user_id, timestamp, extra_data) VALUES('3', @userId, UNIX_TIMESTAMP(), @motto)");
                            }
                        }

                        session.SendMessage(OutgoingPacketsEnum.UpdateUser, new ValueHolder("VirtualID", -1, "Look", session.GetHabbo().Look, "Gender", session.GetHabbo().Gender, "Motto", session.GetHabbo().Motto, "AchievementPoints", session.GetHabbo().GetUserStats().AchievementPoints));
                        roomUser.Room.SendToAll(OutgoingPacketsEnum.UpdateUser, new ValueHolder("VirtualID", roomUser.VirtualID, "Look", session.GetHabbo().Look, "Gender", session.GetHabbo().Gender, "Motto", session.GetHabbo().Motto, "AchievementPoints", session.GetHabbo().GetUserStats().AchievementPoints));

                        Skylight.GetGame().GetAchievementManager().AddAchievement(session, "ChangeMotto", 1);
                    }
                }
            }
        }
コード例 #29
0
        private DataTable mFriendStream; //FriendStream fix

        public HabboData(string Username, bool LoadFull)
        {
            using (DatabaseClient adapter = PhoenixEnvironment.GetDatabase().GetClient())
            {
                adapter.AddParamWithValue("username", Username);
                this.mUserInformation = adapter.ReadDataRow("SELECT * FROM users WHERE username = @username LIMIT 1;");
                if (this.mUserInformation != null)
                {
                    this.mUserFound = true;
                    uint num = (uint)this.mUserInformation["Id"];
                    if (LoadFull)
                    {
                        this.mAchievementData    = adapter.ReadDataTable("SELECT achievement_id,achievement_level FROM user_achievements WHERE user_id = '" + num + "'");
                        this.mUserFavouriteRooms = adapter.ReadDataTable("SELECT room_id FROM user_favorites WHERE user_id = '" + num + "'");
                        this.mUserIgnores        = adapter.ReadDataTable("SELECT ignore_id FROM user_ignores WHERE user_id = '" + num + "'");
                        this.mUsertags           = adapter.ReadDataTable("SELECT tag FROM user_tags WHERE user_id = '" + num + "'");
                        this.mSubscriptionData   = adapter.ReadDataTable("SELECT subscription_id, timestamp_activated, timestamp_expire FROM user_subscriptions WHERE user_id = '" + num + "'");
                        this.mUserBadges         = adapter.ReadDataTable("SELECT user_badges.badge_id,user_badges.badge_slot FROM user_badges WHERE user_id = " + num + " ORDER BY badge_slot ASC");
                        this.mUserInventory      = adapter.ReadDataTable("SELECT Id,base_item,extra_data FROM items WHERE room_id = 0 AND user_id = " + num);
                        this.mUserEffects        = adapter.ReadDataTable("SELECT user_effects.effect_id,user_effects.total_duration,user_effects.is_activated,user_effects.activated_stamp FROM user_effects WHERE user_id =  " + num);
                        this.mUserFriends        = adapter.ReadDataTable("SELECT users.Id,users.username,users.motto,users.look,users.last_online FROM users JOIN messenger_friendships ON users.Id = messenger_friendships.user_two_id WHERE messenger_friendships.user_one_id = '" + num + "'");
                        this.mUserRequests       = adapter.ReadDataTable("SELECT messenger_requests.Id,messenger_requests.from_id,users.username FROM users JOIN messenger_requests ON users.Id = messenger_requests.from_id WHERE messenger_requests.to_id = '" + num + "'");
                        adapter.AddParamWithValue("name", (string)this.mUserInformation["username"]);
                        this.mUsersRooms   = adapter.ReadDataTable("SELECT * FROM rooms WHERE owner = @name ORDER BY Id ASC LIMIT " + GlobalClass.MaxRoomsPerUser);
                        this.mFriendStream = adapter.ReadDataTable("SELECT friend_stream.id, friend_stream.type, friend_stream.userid, friend_stream.gender, friend_stream.look, friend_stream.time, friend_stream.data, friend_stream.data_extra FROM friend_stream JOIN messenger_friendships ON friend_stream.userid = messenger_friendships.user_two_id WHERE messenger_friendships.user_one_id = '" + num + "' ORDER BY friend_stream.time DESC LIMIT 15"); //FriendStream fix
                    }
                }
                else
                {
                    this.mUserFound = false;
                }
            }
        }
コード例 #30
0
        public void Handle(GameClient session, ClientMessage message)
        {
            Room room = session.GetHabbo().GetRoomSession().GetRoom();

            if (room != null)
            {
                string       username = message.PopFixedString();
                RoomUnitUser user     = room.RoomUserManager.GetUserByName(username);
                if (user != null)
                {
                    uint userId = user.Session.GetHabbo().ID;
                    if (session.GetHabbo().IgnoredUsers.Contains(userId))
                    {
                        session.GetHabbo().IgnoredUsers.Remove(userId);

                        using (DatabaseClient dbClient = Skylight.GetDatabaseManager().GetClient())
                        {
                            dbClient.AddParamWithValue("userId", session.GetHabbo().ID);
                            dbClient.AddParamWithValue("targetId", userId);
                            dbClient.ExecuteQuery("DELETE FROM user_ignores WHERE user_id = @userId AND ignored_id = @targetId LIMIT 1");
                        }

                        ServerMessage message_ = BasicUtilies.GetRevisionServerMessage(Revision.RELEASE63_35255_34886_201108111108);
                        message_.Init(r63aOutgoing.IgnoreStatus);
                        message_.AppendInt32(3);
                        session.SendMessage(message_);
                    }
                }
            }
        }