public void LoadNewbieRoomItems(DatabaseClient dbClient) { Logging.Write("Loading newbie room items... "); Dictionary <uint, List <RoomItem> > newItems = new Dictionary <uint, List <RoomItem> >(); DataTable items = dbClient.ReadDataTable("SELECT * FROM items_newbie_room"); if (items != null) { foreach (DataRow dataRow in items.Rows) { string wallPos = (string)dataRow["wall_pos"]; RoomItem item = RoomItem.GetRoomItem((uint)dataRow["Id"], 0, 0, (uint)dataRow["base_item"], (string)dataRow["extra_data"], (int)dataRow["x"], (int)dataRow["y"], (double)dataRow["z"], (int)dataRow["rot"], (string.IsNullOrEmpty(wallPos) ? null : new WallCoordinate(wallPos)), null); if (!newItems.ContainsKey((uint)dataRow["room_id"])) { newItems[(uint)dataRow["room_id"]] = new List <RoomItem>(); } newItems[(uint)dataRow["room_id"]].Add(item); } } this.NewbieRoomItems = newItems; Logging.WriteLine("completed!", ConsoleColor.Green); }
public void Handle(GameClient session, ClientMessage message) { if (session != null && session.GetHabbo() != null && session.GetHabbo().GetRoomSession() != null) { Room room = session.GetHabbo().GetRoomSession().GetRoom(); if (room != null && room.GaveRoomRights(session)) { string data = message.PopStringUntilBreak(null); string[] splittedData = data.Split(' '); uint itemId = uint.Parse(splittedData[0].Replace("-", "")); if (splittedData[1].StartsWith(":")) { InventoryItem item = session.GetHabbo().GetInventoryManager().TryGetWallItem(itemId); if (item != null && item.GetItem() != null) { RoomItem roomItem = RoomItem.GetRoomItem(itemId, room.ID, session.GetHabbo().ID, item.BaseItem, item.ExtraData, 0, 0, 0.0, 0, new WallCoordinate(":" + data.Split(':')[1]), room); if (room.RoomItemManager.AddWallItemToRoom(session, roomItem)) { session.GetHabbo().GetInventoryManager().RemoveItemFromHand(itemId, false); using (DatabaseClient dbClient = Skylight.GetDatabaseManager().GetClient()) { dbClient.AddParamWithValue("roomid", room.ID); dbClient.AddParamWithValue("itemid", itemId); dbClient.ExecuteQuery("UPDATE items SET room_id = @roomid WHERE id = @itemid LIMIT 1"); } } } } else { InventoryItem item = session.GetHabbo().GetInventoryManager().TryGetFloorItem(itemId); if (item != null && item.GetItem() != null) { int x = int.Parse(splittedData[1]); int y = int.Parse(splittedData[2]); int rot = int.Parse(splittedData[3]); RoomItem roomItem = RoomItem.GetRoomItem(itemId, room.ID, session.GetHabbo().ID, item.BaseItem, item.ExtraData, x, y, 0.0, rot, null, room); if (room.RoomItemManager.AddFloorItemToRoom(session, roomItem, x, y, rot)) { session.GetHabbo().GetInventoryManager().RemoveItemFromHand(itemId, false); using (DatabaseClient dbClient = Skylight.GetDatabaseManager().GetClient()) { dbClient.AddParamWithValue("roomid", room.ID); dbClient.AddParamWithValue("itemid", itemId); dbClient.ExecuteQuery("UPDATE items SET room_id = @roomid WHERE id = @itemid LIMIT 1"); } } } } } } }
public void Handle(GameClient session, ClientMessage message) { Room room = session.GetHabbo().GetRoomSession().GetRoom(); if (room != null && room.GaveRoomRights(session)) { uint itemId = message.PopWiredUInt(); string wallData = message.PopFixedString(); InventoryItem item = session.GetHabbo().GetInventoryManager().TryGetWallItem(itemId); if (item != null) { if (wallData.StartsWith(":")) { RoomItem roomItem = RoomItem.GetRoomItem(itemId, room.ID, session.GetHabbo().ID, item.BaseItem, item.ExtraData, 0, 0, 0.0, 0, new WallCoordinate(wallData), room); if (room.RoomItemManager.AddWallItemToRoom(session, roomItem)) { session.GetHabbo().GetInventoryManager().RemoveItemFromHand(itemId, false); } using (DatabaseClient dbClient = Skylight.GetDatabaseManager().GetClient()) { dbClient.AddParamWithValue("roomid", room.ID); dbClient.AddParamWithValue("itemid", itemId); dbClient.ExecuteQuery("UPDATE items SET room_id = @roomid WHERE id = @itemid LIMIT 1"); } if (session.GetHabbo().ID != room.RoomData.OwnerID) { session.GetHabbo().GetUserStats().NotesLeft++; session.GetHabbo().GetUserAchievements().CheckAchievement("NotesLeft"); GameClient roomOwner = Skylight.GetGame().GetGameClientManager().GetGameClientById(room.RoomData.OwnerID); if (roomOwner != null) { roomOwner.GetHabbo().GetUserStats().NotesReceived++; roomOwner.GetHabbo().GetUserAchievements().CheckAchievement("NotesReceived"); } else { using (DatabaseClient dbClient = Skylight.GetDatabaseManager().GetClient()) { dbClient.AddParamWithValue("ownerId", room.RoomData.OwnerID); dbClient.ExecuteQuery("UPDATE user_stats SET notes_received = notes_received + 1 WHERE user_id = @ownerId LIMIT 1"); } } } } } } }