public static void Compose(ServerHandler Client, Habbo User, Environment Server) throws Exception { Habbo CurrentHabbo = User; Channel Socket = Client.Socket; int PageId = Client.inreader.readInt(); int ItemId = Client.inreader.readInt(); String ExtraData = Client.inreader.readUTF(); CatalogPage Page = CatalogPage.Pages.get(PageId); CatalogItem Item = CatalogItem.Items.get(ItemId); if (Item.Name.contains("HABBO_CLUB_VIP_")) { if (Item.CostCredits > 0 && CurrentHabbo.Credits > Item.CostCredits) CurrentHabbo.UpdateCredits( (CurrentHabbo.Credits - Item.CostCredits), Client.Socket, Server); else return; SubscriptionManager Sub = new SubscriptionManager(CurrentHabbo, Server); if (Item.Id == 331) { // 1 day Sub.AddOrExtendSubscription("habbo_vip", (60 * 60 * 24)); CurrentHabbo.UpdateFuserights(Client.Socket, Server); CurrentHabbo.Updateclub(Server, Client); } else if (Item.Id == 332) { // 7 days Sub.AddOrExtendSubscription("habbo_vip", (60 * 60 * 24 * 7)); CurrentHabbo.UpdateFuserights(Client.Socket, Server); CurrentHabbo.Updateclub(Server, Client); } else if (Item.Id == 333) { // 3 days Sub.AddOrExtendSubscription("habbo_vip", (60 * 60 * 24 * 3)); CurrentHabbo.UpdateFuserights(Client.Socket, Server); CurrentHabbo.Updateclub(Server, Client); } else if (Item.Id == 334) { // 1 month Server.WriteLine(CurrentHabbo.UserName + " wants 1 month of vip!"); Sub.AddOrExtendSubscription("habbo_vip", (60 * 60 * 24 * 31)); CurrentHabbo.UpdateFuserights(Client.Socket, Server); CurrentHabbo.Updateclub(Server, Client); } else if (Item.Id == 335) { // 3 months Sub.AddOrExtendSubscription("habbo_vip", (60 * 60 * 24 * 31 * 3)); CurrentHabbo.UpdateFuserights(Client.Socket, Server); CurrentHabbo.Updateclub(Server, Client); } } else { Iterator ItemsToPurchase = Item.ItemIds.iterator(); if (Item.CostCredits > 0) { if (CurrentHabbo.Credits > Item.CostCredits) CurrentHabbo.UpdateCredits( (CurrentHabbo.Credits - Item.CostCredits), Client.Socket, Server); else return; } if (Item.CostPixels > 0) { if (CurrentHabbo.Pixels > Item.CostPixels) CurrentHabbo.UpdatePixels((CurrentHabbo.Pixels - Item.CostPixels), Client.Socket, Server); else return; } while (ItemsToPurchase.hasNext()) { int furniId = (Integer) ItemsToPurchase.next(); ItemInformation furniData = ItemInformation.Items.get(furniId); ServerMessage PurchaseItem = new ServerMessage(ServerEvents.SendItem); PurchaseItem.writeInt(furniData.Id); if (Item.ItemIds.size() == 1) PurchaseItem.writeUTF(Item.Name); else PurchaseItem.writeUTF(furniData.Name); PurchaseItem.writeInt(Item.CostCredits); PurchaseItem.writeInt(Item.CostPixels); PurchaseItem.writeInt(0); PurchaseItem.writeInt(0); PurchaseItem.writeBoolean(true); PurchaseItem.writeUTF(furniData.Type.toLowerCase()); PurchaseItem.writeInt(furniData.SpriteId); if (Item.Name.contains("wallpaper")) PurchaseItem.writeUTF(Item.Name.split("_")[2]); // shit for wallpapers else if (Item.Name.contains("floor")) PurchaseItem.writeUTF(Item.Name.split("_")[2]); // shit for wallpapers else if (Item.Name.contains("landscape")) PurchaseItem.writeUTF(Item.Name.split("_")[2]); // shit for wallpapers else PurchaseItem.writeUTF( Item.ExtraInformation); // shit for music and other shit PurchaseItem.writeInt(1); PurchaseItem.writeInt(0); PurchaseItem.writeInt(0); PurchaseItem.Send(Socket); ServerMessage AlertPurchase = new ServerMessage(ServerEvents.InventoryWarn); AlertPurchase.writeInt(1); // items alert! int Type = 2; if (furniData.Type.equals("s")) { if (furniData.Interactor.equals("pet")) Type = 3; else Type = 1; } AlertPurchase.writeInt(Type); int Amount = Item.Amount; if (Item.ExtraAmounts.containsKey(furniId)) Amount = Item.ExtraAmounts.get(furniId); AlertPurchase.writeInt(Amount); for (int i = 0; i != Amount; i++) { Server.GetDatabase() .executeUpdate( "INSERT INTO users_items (id, userid, itemid, extradata) VALUES (NULL, '" + CurrentHabbo.Id + "', '" + furniId + "', '" + ExtraData + "');"); UserItem I = new UserItem(); I.Id = UserItem.LastId + 1; UserItem.LastId++; I.UserId = CurrentHabbo.Id; I.ItemId = furniId; I.ExtraData = ExtraData; UserItem.Items.put(I.Id, I); AlertPurchase.writeInt(furniId); } AlertPurchase.Send(Socket); ServerMessage UpdateInv = new ServerMessage(ServerEvents.UpdateInventory); UpdateInv.Send(Socket); } } }
public static void Compose(ServerHandler Client, Habbo cUser, Environment Server) throws Exception { Room RoomData = Room.Rooms.get(cUser.CurrentRoomId); int lol = Client.inreader.readInt(); int ItemId = Client.inreader.readInt(); Server.WriteLine("To remove: " + ItemId); RoomItem Item = RoomItem.Items.get(ItemId); ItemInformation furniData = ItemInformation.Items.get(Item.FurniId); if (!RoomData.HavePowers(cUser.Id)) { return; } Server.GetDatabase().executeUpdate("DELETE FROM rooms_items WHERE id = " + Item.Id); Server.GetDatabase() .executeUpdate( "INSERT INTO users_items (id, userid, itemid, extradata) VALUES (NULL, '" + cUser.Id + "', '" + Item.FurniId + "', '" + Item.ExtraData + "');"); UserItem I = new UserItem(); I.Id = UserItem.LastId + 1; UserItem.LastId++; I.UserId = cUser.Id; I.ItemId = Item.FurniId; I.ExtraData = Item.ExtraData; UserItem.Items.put(I.Id, I); RoomItem.Items.remove(Item); if (lol == 2) { ServerMessage RemoveFloorItem = new ServerMessage(ServerEvents.RemoveFloorItem); RemoveFloorItem.writeUTF(Item.Id + ""); RemoveFloorItem.writeInt(0); RemoveFloorItem.writeInt(cUser.Id); RemoveFloorItem.Send(Client.Socket); ServerMessage Remove = new ServerMessage(ServerEvents.RemoveWhatItem); Remove.writeInt(Item.Id); UserManager.SendMessageToUsersOnRoomId(cUser.CurrentRoomId, Remove); RoomData.FloorItems.remove(Item); } else { ServerMessage RemoveWallItem = new ServerMessage(ServerEvents.RemoveWallItem); RemoveWallItem.writeUTF(I.Id + ""); RemoveWallItem.writeInt(cUser.Id); UserManager.SendMessageToUsersOnRoomId(cUser.CurrentRoomId, RemoveWallItem); RoomData.WallItems.remove(Item); } ServerMessage Message = new ServerMessage(ServerEvents.UpdateInventory); Message.Send(Client.Socket); /*ServerMessage FloorInventory = new ServerMessage(ServerEvents.AddItemToInventary); if(lol == 2) { FloorInventory.writeInt(I.Id); FloorInventory.writeUTF(furniData.Type.toUpperCase()); FloorInventory.writeInt(furniData.Id); FloorInventory.writeInt(furniData.SpriteId); FloorInventory.writeInt(1); FloorInventory.writeUTF(Item.ExtraData); FloorInventory.writeInt(0); FloorInventory.writeBoolean(furniData.CanRecycle); FloorInventory.writeBoolean(furniData.CanTrade); FloorInventory.writeBoolean(furniData.CanStack); FloorInventory.writeBoolean(furniData.CanSell); FloorInventory.writeInt(-1); FloorInventory.writeUTF(""); FloorInventory.writeInt(0); FloorInventory.writeInt(24); } else { FloorInventory.writeInt(I.Id); FloorInventory.writeUTF(furniData.Type.toUpperCase()); FloorInventory.writeInt(furniData.Id); FloorInventory.writeInt(furniData.SpriteId); FloorInventory.writeInt(1); FloorInventory.writeInt(0); FloorInventory.writeUTF(Item.ExtraData); FloorInventory.writeBoolean(furniData.CanRecycle); FloorInventory.writeBoolean(furniData.CanTrade); FloorInventory.writeBoolean(furniData.CanStack); FloorInventory.writeBoolean(furniData.CanSell); FloorInventory.writeInt(-1); FloorInventory.writeInt(25); }*/ // FloorInventory.Send(Client.Socket); }