Exemplo n.º 1
0
        public static List <ModerationChatlog> ReadUserChatlogs(int senderId, int targetId)
        {
            List <ModerationChatlog> chatlogs = new List <ModerationChatlog>();

            using (DatabaseConnection dbClient = Alias.Server.DatabaseManager.GetConnection())
            {
                dbClient.AddParameter("senderId", senderId);
                dbClient.AddParameter("targetId", targetId);
                using (MySqlDataReader Reader = dbClient.DataReader("SELECT * FROM `chatlogs` WHERE `user_id` = @senderId OR `user_id` = @targetId ORDER BY `timestamp` DESC LIMIT 150"))
                {
                    while (Reader.Read())
                    {
                        string            targetUsername = "";
                        ModerationChatlog chatlog        = new ModerationChatlog()
                        {
                            UserId         = Reader.GetInt32("user_id"),
                            Username       = "",
                            TargetId       = Reader.GetInt32("target_id"),
                            TargetUsername = targetUsername,
                            Timestamp      = Reader.GetInt32("timestamp"),
                            Message        = Reader.GetString("message"),
                            Type           = ChatType.CHAT
                        };
                        chatlogs.Add(chatlog);
                    }
                }
            }
            return(chatlogs);
        }
        public void Run(Client client, MessageEvent msgEvent)
        {
            int amount = msgEvent.ReadVL64();

            for (int i = 0; i < amount; i++)
            {
                int userId = msgEvent.ReadVL64();
                if (!client.CurrentRoom.UserRights.Contains(userId))
                {
                    return;
                }
                Client player = Engine.Locator.ClientController.GetClientByHabbo(userId);
                if (player != null)
                {
                    if (player.UserActor.Statusses.ContainsKey("flatcrtl"))
                    {
                        player.UserActor.Statusses.Remove("flatcrtl");
                    }
                    client.CurrentRoom.UserRights.Remove(userId);
                    player.SendComposer(new YouAreNotControllerMessageComposer());
                    player.SendComposer(new FlatControllerRemovedMessageComposer(client.CurrentRoomId, userId));
                }
            }

            string json = JsonConvert.SerializeObject(client.CurrentRoom.UserRights);

            using (DatabaseConnection dbConnection = Engine.Locator.ConnectionPool.PopConnection())
            {
                dbConnection.SetQuery("UPDATE rooms SET user_rights = @data WHERE id = @roomId LIMIT 1");
                dbConnection.AddParameter("@data", json);
                dbConnection.AddParameter("@roomId", client.CurrentRoomId);
                dbConnection.Execute();
            }
        }
Exemplo n.º 3
0
 public static void TakeRights(int Id, int UserId)
 {
     using (DatabaseConnection dbClient = Alias.Server.DatabaseManager.GetConnection())
     {
         dbClient.AddParameter("id", Id);
         dbClient.AddParameter("userId", UserId);
         dbClient.Query("DELETE FROM `room_rights` WHERE `id` = @id AND `user_id` = @userId");
     }
 }
Exemplo n.º 4
0
 public static void RemoveMember(int groupId, int userId)
 {
     using (DatabaseConnection dbClient = Alias.Server.DatabaseManager.GetConnection())
     {
         dbClient.AddParameter("groupId", groupId);
         dbClient.AddParameter("userId", userId);
         dbClient.Query("DELETE FROM `group_members` WHERE `user_id` = @userId AND `group_id` = @groupId");
     }
 }
Exemplo n.º 5
0
 public static void UpdateItem(RoomItem item)
 {
     using (DatabaseConnection dbClient = Alias.Server.DatabaseManager.GetConnection())
     {
         dbClient.AddParameter("baseId", item.ItemData.Id);
         dbClient.AddParameter("id", item.Id);
         dbClient.Query("UPDATE `items` SET `base_id` = @baseId WHERE `id` = @id");
     }
 }
Exemplo n.º 6
0
 public static void GiveRights(int Id, int UserId)
 {
     using (DatabaseConnection dbClient = Alias.Server.DatabaseManager.GetConnection())
     {
         dbClient.AddParameter("id", Id);
         dbClient.AddParameter("userId", UserId);
         dbClient.Query("INSERT INTO `room_rights` (`id`, `user_id`) VALUES (@id, @userId)");
     }
 }
Exemplo n.º 7
0
 public static void SetMemberRank(int groupId, int userId, int rank)
 {
     using (DatabaseConnection dbClient = Alias.Server.DatabaseManager.GetConnection())
     {
         dbClient.AddParameter("groupId", groupId);
         dbClient.AddParameter("userId", userId);
         dbClient.AddParameter("rank", rank);
         dbClient.Query("UPDATE `group_members` SET `rank` = @rank WHERE	`user_id` = @userId AND	`group_id` = @groupId");
     }
 }
Exemplo n.º 8
0
 public void DestroyRequest(int userOne, int userTwo)
 {
     using (DatabaseConnection dbConnection = Engine.Locator.ConnectionPool.PopConnection())
     {
         dbConnection.SetQuery("DELETE FROM messenger_requests WHERE to_id = @userOne AND from_id = @userTwo;");
         dbConnection.AddParameter("@userOne", userOne);
         dbConnection.AddParameter("@userTwo", userTwo);
         dbConnection.Execute();
     }
 }
Exemplo n.º 9
0
 public void UpdateCurrency(int playerId, int amount, string type)
 {
     using (DatabaseConnection dbConnection = Engine.Locator.ConnectionPool.PopConnection())
     {
         dbConnection.SetQuery($"UPDATE players SET {type} = @amount WHERE id = @playerId");
         dbConnection.AddParameter("@amount", amount);
         dbConnection.AddParameter("@playerId", playerId);
         dbConnection.Execute();
     }
 }
Exemplo n.º 10
0
 public static void UpdateTicket(ModerationTicket ticket)
 {
     using (DatabaseConnection dbClient = Alias.Server.DatabaseManager.GetConnection())
     {
         dbClient.AddParameter("id", ticket.Id);
         dbClient.AddParameter("modId", ticket.ModId);
         dbClient.AddParameter("state", (int)ticket.State);
         dbClient.Query("UPDATE `support_tickets` SET `state` = @state, `mod_id` = @modId WHERE `id` = @id");
     }
 }
Exemplo n.º 11
0
 public static void LogTradeItem(int logId, int userId, int itemId)
 {
     using (DatabaseConnection dbClient = Alias.Server.DatabaseManager.GetConnection())
     {
         dbClient.AddParameter("id", logId);
         dbClient.AddParameter("itemId", itemId);
         dbClient.AddParameter("userId", userId);
         dbClient.Query("INSERT INTO `room_trade_log_items` (`id`, `item_id`, `user_id`) VALUES (@id, @itemId, @userId)");
     }
 }
Exemplo n.º 12
0
 public void CreateRequest(int toId, Client client)
 {
     using (DatabaseConnection dbConnection = Engine.Locator.ConnectionPool.PopConnection())
     {
         dbConnection.SetQuery("INSERT INTO messenger_requests (to_id, from_id) VALUES (@toId, @fromId);");
         dbConnection.AddParameter("@toId", toId);
         dbConnection.AddParameter("@fromId", client.Player.Id);
         dbConnection.Execute();
     }
 }
Exemplo n.º 13
0
 public void UpdateItemData(int itemId, string data)
 {
     using (DatabaseConnection dbConnection = Engine.Locator.ConnectionPool.PopConnection())
     {
         dbConnection.SetQuery("UPDATE items SET data = @extraData WHERE id = @id LIMIT 1");
         dbConnection.AddParameter("@extraData", data);
         dbConnection.AddParameter("@id", itemId);
         dbConnection.Execute();
     }
 }
Exemplo n.º 14
0
 public void AddWallItem(int itemId, string wallposition, int roomId)
 {
     using (DatabaseConnection dbConnection = Engine.Locator.ConnectionPool.PopConnection())
     {
         dbConnection.SetQuery("UPDATE items SET room_id = @roomId, wallposition = @wallposition WHERE id = @itemId LIMIT 1");
         dbConnection.AddParameter("@roomId", roomId);
         dbConnection.AddParameter("@wallposition", wallposition);
         dbConnection.AddParameter("@itemId", itemId);
         dbConnection.Execute();
     }
 }
Exemplo n.º 15
0
 public static int CreateTradeLog(TradeUser userOne, TradeUser userTwo)
 {
     using (DatabaseConnection dbClient = Alias.Server.DatabaseManager.GetConnection())
     {
         dbClient.AddParameter("userOneId", userOne.User.Player.Id);
         dbClient.AddParameter("userTwoId", userTwo.User.Player.Id);
         dbClient.AddParameter("timestamp", (int)UnixTimestamp.Now);
         dbClient.Query("INSERT INTO `room_trade_log` (`user_one_id`, `user_two_id`, `timestamp`) VALUES (@userOneId, @userTwoId, @timestamp)");
         return(dbClient.LastInsertedId());
     }
 }
Exemplo n.º 16
0
 public void CreateFriendship(Player player, int userTwo)
 {
     using (DatabaseConnection dbConnection = Engine.Locator.ConnectionPool.PopConnection())
     {
         dbConnection.SetQuery(
             "INSERT INTO messenger_friends (user_one_id, user_two_id) VALUES(@userOne, @userTwo), (@userTwo, @userOne);");
         dbConnection.AddParameter("@userOne", player.Id);
         dbConnection.AddParameter("@userTwo", userTwo);
         dbConnection.Execute();
     }
 }
Exemplo n.º 17
0
 public static void AddMember(int groupId, int userId, int rank)
 {
     using (DatabaseConnection dbClient = Alias.Server.DatabaseManager.GetConnection())
     {
         dbClient.AddParameter("groupId", groupId);
         dbClient.AddParameter("userId", userId);
         dbClient.AddParameter("rank", rank);
         dbClient.Query("INSERT INTO `group_members` (`user_id`, `group_id`, `join_date`, `rank`) " +
                        "VALUES (@userId, @groupId, UNIX_TIMESTAMP(), @rank)");
     }
 }
Exemplo n.º 18
0
 public void CreatePresent(int definitionId, int playerId, int giftId, string data)
 {
     using (DatabaseConnection dbConnection = Engine.Locator.ConnectionPool.PopConnection())
     {
         dbConnection.SetQuery("INSERT INTO `item_presents` VALUES (@giftid, @playerid, @definitionid, @data)");
         dbConnection.AddParameter("@giftid", giftId);
         dbConnection.AddParameter("@playerid", playerId);
         dbConnection.AddParameter("@definitionid", definitionId);
         dbConnection.AddParameter("@data", data);
         dbConnection.Execute();
     }
 }
Exemplo n.º 19
0
 public static void AddBot(RoomEntity bot)
 {
     using (DatabaseConnection dbClient = Alias.Server.DatabaseManager.GetConnection())
     {
         dbClient.AddParameter("botId", bot.Id);
         dbClient.AddParameter("xPos", bot.Position.X);
         dbClient.AddParameter("yPos", bot.Position.Y);
         dbClient.AddParameter("ZPos", bot.Position.Z);
         dbClient.AddParameter("Rot", bot.Position.Rotation);
         dbClient.Query("INSERT INTO `bots_room_data` (`id`, `x`, `y`, `z`, `rot`) VALUES (@botId, @xPos, @yPos, @zPos, @rot)");
     }
 }
Exemplo n.º 20
0
 public void DestroyFriendship(int userOne, int userTwo)
 {
     using (DatabaseConnection dbConnection = Engine.Locator.ConnectionPool.PopConnection())
     {
         dbConnection.SetQuery(
             "DELETE FROM messenger_friends WHERE user_one_id = @userOne AND user_two_id = @userTwo LIMIT 1");
         dbConnection.SetQuery(
             "DELETE FROM messenger_friends WHERE user_one_id = @userTwo AND user_two_id = @userOne LIMIT 1");
         dbConnection.AddParameter("@userOne", userOne);
         dbConnection.AddParameter("@userTwo", userTwo);
         dbConnection.Execute();
     }
 }
Exemplo n.º 21
0
 public void AddFloorItem(int itemId, int x, int y, int rot, int roomId)
 {
     using (DatabaseConnection dbConnection = Engine.Locator.ConnectionPool.PopConnection())
     {
         dbConnection.SetQuery("UPDATE items SET room_id = @roomId, x = @x, y = @y, rotation = @rot WHERE id = @itemId LIMIT 1");
         dbConnection.AddParameter("@roomId", roomId);
         dbConnection.AddParameter("@x", x);
         dbConnection.AddParameter("@y", y);
         dbConnection.AddParameter("@rot", rot);
         dbConnection.AddParameter("@itemId", itemId);
         dbConnection.Execute();
     }
 }
Exemplo n.º 22
0
 public static void RemoveGroup(Group group)
 {
     using (DatabaseConnection dbClient = Alias.Server.DatabaseManager.GetConnection())
     {
         dbClient.AddParameter("groupId", group.Id);
         dbClient.Query("DELETE FROM `groups` WHERE `id` = @groupId");
         dbClient.AddParameter("groupId", group.Id);
         dbClient.Query("DELETE FROM `group_members` WHERE `group_id` = @groupId");
         dbClient.AddParameter("groupId", group.Id);
         dbClient.Query("UPDATE `room_data` SET `group_id` = 0 WHERE `group_id` = @groupId");
         dbClient.AddParameter("groupId", group.Id);
         dbClient.Query("UPDATE `habbos` SET `group_id` = 0 WHERE `group_id` = @groupId");
     }
 }
Exemplo n.º 23
0
        public static Dictionary <string, CraftingRecipe> ReadCraftingRecipes(CraftingTable table)
        {
            Dictionary <string, CraftingRecipe> recipes = new Dictionary <string, CraftingRecipe>();

            using (DatabaseConnection dbClient = Alias.Server.DatabaseManager.GetConnection())
            {
                dbClient.AddParameter("id", table.Id);
                using (MySqlDataReader Reader = dbClient.DataReader("SELECT * FROM `crafting_recipes` WHERE `table_id` = @id AND `enabled` = '1'"))
                {
                    while (Reader.Read())
                    {
                        ItemData item = Alias.Server.ItemManager.GetItemData(Reader.GetInt32("reward"));
                        if (item != null)
                        {
                            CraftingRecipe recipe = new CraftingRecipe
                            {
                                Id     = Reader.GetInt32("id"),
                                Reward = item,
                                Secret = DatabaseBoolean.GetBoolFromString(Reader.GetString("secret"))
                            };
                            recipe.Ingredients = ReadRecipeIngredients(recipe.Id, table);
                            recipes.Add(recipe.Reward.Name, recipe);
                        }
                    }
                }
            }
            return(recipes);
        }
Exemplo n.º 24
0
        private static RoomSettings ReadSettings(int Id)
        {
            RoomSettings result = null;

            using (DatabaseConnection dbClient = Alias.Server.DatabaseManager.GetConnection())
            {
                dbClient.AddParameter("id", Id);
                using (MySqlDataReader Reader = dbClient.DataReader("SELECT * FROM `room_settings` WHERE `id` = @id LIMIT 1"))
                {
                    while (Reader.Read())
                    {
                        result = new RoomSettings
                        {
                            WhoMutes     = Reader.GetInt32("who_can_mute"),
                            WhoBans      = Reader.GetInt32("who_can_ban"),
                            WhoKicks     = Reader.GetInt32("who_can_kick"),
                            ChatDistance = Reader.GetInt32("chat_distance"),
                            ChatFlood    = Reader.GetInt32("chat_flood"),
                            ChatMode     = Reader.GetInt32("chat_mode"),
                            ChatSize     = Reader.GetInt32("chat_size"),
                            ChatSpeed    = Reader.GetInt32("chat_speed"),
                            AllowPets    = Reader.GetBoolean("allow_pets"),
                            AllowPetsEat = Reader.GetBoolean("allow_pets_eat"),
                            RoomBlocking = Reader.GetBoolean("room_blocking"),
                            HideWalls    = Reader.GetBoolean("hide_walls"),
                            WallHeight   = Reader.GetInt32("wall_height"),
                            FloorSize    = Reader.GetInt32("floor_size")
                        };
                    }
                }
            }
            return(result);
        }
Exemplo n.º 25
0
        public int GetRoomId(string name, string model, int ownerId)
        {
            int tmpRoomId;

            using (DatabaseConnection dbConnection = Engine.Locator.ConnectionPool.PopConnection())
            {
                dbConnection.SetQuery("INSERT INTO rooms (owner_id,name,model,description,ccts) VALUES (@ownerId, @name, @model, '', '')");
                dbConnection.AddParameter("@ownerId", ownerId);
                dbConnection.AddParameter("@name", name);
                dbConnection.AddParameter("@model", model);

                tmpRoomId = dbConnection.Insert();
            }

            return(tmpRoomId);
        }
Exemplo n.º 26
0
        public DimmerData GetDimmerData(int itemId)
        {
            if (Dimmers.TryGetValue(itemId, out DimmerData data))
            {
                return(data);
            }

            DimmerData dimmerData = null;

            using (DatabaseConnection dbConnection = Engine.Locator.ConnectionPool.PopConnection())
            {
                dbConnection.SetQuery("SELECT * FROM room_dimmer WHERE item_id = @itemId");
                dbConnection.AddParameter("@itemId", itemId);
                using (var reader = dbConnection.ExecuteReader())
                    if (reader.Read())
                    {
                        dimmerData = new DimmerData(reader, false);
                        Dimmers.Add(dimmerData.ItemId, dimmerData);
                        return(dimmerData);
                    }
                    else
                    {
                        return(NewDimmerData(itemId));
                    }
            }
        }
Exemplo n.º 27
0
 public static void RemoveItem(int itemId)
 {
     using (DatabaseConnection dbClient = Alias.Server.DatabaseManager.GetConnection())
     {
         dbClient.AddParameter("itemId", itemId);
         dbClient.Query("DELETE FROM `items_room_data` WHERE `id` = @itemId");
     }
 }
Exemplo n.º 28
0
 public static void RemoveBot(RoomEntity bot)
 {
     using (DatabaseConnection dbClient = Alias.Server.DatabaseManager.GetConnection())
     {
         dbClient.AddParameter("botId", bot.Id);
         dbClient.Query("DELETE FROM `bots_room_data` WHERE `id` = @botId");
     }
 }
Exemplo n.º 29
0
 public void ClearBadgeSlots(int playerId)
 {
     using (DatabaseConnection dbConnection = Engine.Locator.ConnectionPool.PopConnection())
     {
         dbConnection.SetQuery("UPDATE `player_badges` SET `slot_number` = 0 WHERE `player_id` = @playerId");
         dbConnection.AddParameter("@playerId", playerId);
         dbConnection.Execute();
     }
 }
Exemplo n.º 30
0
        public void GiveItem(Client client, ItemDefinition template, string extraData)
        {
            int id = -1;

            using (DatabaseConnection dbConnection = Engine.Locator.ConnectionPool.PopConnection())
            {
                dbConnection.SetQuery("INSERT INTO items (owner_id, definition_id, data) VALUES (@ownerId, @definitionId, @data)");
                dbConnection.AddParameter("@ownerId", client.Player.Id);
                dbConnection.AddParameter("@definitionId", template.Id);
                dbConnection.AddParameter("@data", extraData);
                id = dbConnection.Insert();
            }

            if (id > 0 && client.Items != null)
            {
                client.Items.Add(id, new Item(id, client.Player.Id, template.Id, extraData));
            }
        }