public void parse(GameClient Session, ClientPacket Packet) { CatalogPage Page = UberEnvironment.GetGame().GetCatalog().GetPage(Packet.PopWiredInt32()); if (Page == null || !Page.Enabled || !Page.Visible || Page.ComingSoon || Page.MinRank > Session.GetHabbo().Rank) { return; } if (Page.ClubOnly && !Session.GetHabbo().GetSubscriptionManager().HasSubscription("habbo_club")) { Session.SendNotif("This page is for Club members only!"); return; } Session.SendPacket(UberEnvironment.GetGame().GetCatalog().SerializePage(Page)); if (Page.Layout == "recycler") { ServerPacket message = new ServerPacket(507); message.AppendBoolean(true); message.AppendBoolean(false); Session.SendPacket(message); } }
public void parse(GameClient Session, ClientPacket Packet) { uint Id = Packet.PopWiredUInt(); RoomData Data = UberEnvironment.GetGame().GetRoomManager().GenerateRoomData(Id); if (Data == null || Session.GetHabbo().FavoriteRooms.Count >= 30 || Session.GetHabbo().FavoriteRooms.Contains(Id) || Data.Type == "public") { ServerPacket packet = new ServerPacket(33); packet.AppendInt32(-9001); Session.SendPacket(packet); return; } ServerPacket _packet = new ServerPacket(459); _packet.AppendUInt(Id); _packet.AppendBoolean(true); Session.SendPacket(_packet); Session.GetHabbo().FavoriteRooms.Add(Id); using (DatabaseClient dbClient = UberEnvironment.GetDatabase().GetClient()) { dbClient.ExecuteQuery("INSERT INTO user_favorites (user_id,room_id) VALUES ('" + Session.GetHabbo().Id + "','" + Id + "')"); } }
public void parse(GameClient Session, ClientPacket Packet) { Room Room = UberEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId); if (Room == null || !Room.CheckRights(Session)) { return; } string Name = Packet.PopFixedString(); byte[] Result = Packet.ReadBytes(1); GameClient Client = UberEnvironment.GetGame().GetClientManager().GetClientByHabbo(Name); if (Client == null) { return; } if (Result[0] == Convert.ToByte(65)) { Client.GetHabbo().LoadingChecksPassed = true; Session.SendPacket(new ServerPacket(41)); } else { Session.SendPacket(new ServerPacket(131)); } }
public void SellItem(GameClient Session, uint ItemId, int SellingPrice) { UserItem Item = Session.GetHabbo().GetInventoryComponent().GetItem(ItemId); if (Item == null || SellingPrice > 10000 || !CanSellItem(Item)) { ServerPacket packet = new ServerPacket(610); packet.AppendBoolean(false); Session.SendPacket(packet); return; } int Comission = CalculateComissionPrice(SellingPrice); int TotalPrice = SellingPrice + Comission; int ItemType = 1; if (Item.GetBaseItem().Type == "i") { ItemType++; } using (DatabaseClient dbClient = UberEnvironment.GetDatabase().GetClient()) { dbClient.AddParamWithValue("public_name", Item.GetBaseItem().PublicName); dbClient.AddParamWithValue("extra_data", Item.ExtraData); dbClient.ExecuteQuery("INSERT INTO catalog_marketplace_offers (item_id,user_id,asking_price,total_price,public_name,sprite_id,item_type,timestamp,extra_data) VALUES ('" + Item.BaseItem + "','" + Session.GetHabbo().Id + "','" + SellingPrice + "','" + TotalPrice + "',@public_name,'" + Item.GetBaseItem().SpriteId + "','" + ItemType + "','" + UberEnvironment.GetUnixTimestamp() + "',@extra_data)"); } Session.GetHabbo().GetInventoryComponent().RemoveItem(ItemId); ServerPacket p610 = new ServerPacket(610); p610.AppendBoolean(true); Session.SendPacket(p610); }
public void parse(GameClient Session, ClientPacket Packet) { if (Session.GetHabbo().LoadingRoom <= 0) { return; } RoomData Data = UberEnvironment.GetGame().GetRoomManager().GenerateRoomData(Session.GetHabbo().LoadingRoom); if (Data == null) { return; } if (Data.Model == null) { Session.SendNotif("Sorry, model data is missing from this room and therefore cannot be loaded."); Session.SendPacket(new ServerPacket(18)); Session.ClearRoomLoading(); return; } Session.SendPacket(Data.Model.SerializeHeightmap()); Session.SendPacket(Data.Model.SerializeRelativeHeightmap()); }
public void parse(GameClient Session, ClientPacket Packet) { Room Room = UberEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId); if (Room == null || !Room.CheckRights(Session, true)) { return; } RoomItem Present = Room.GetItem(Packet.PopWiredUInt()); if (Present == null) { return; } DataRow Data = null; using (DatabaseClient dbClient = UberEnvironment.GetDatabase().GetClient()) { Data = dbClient.ReadDataRow("SELECT base_id,amount,extra_data FROM user_presents WHERE item_id = '" + Present.Id + "' LIMIT 1"); } if (Data == null) { return; } Item BaseItem = UberEnvironment.GetGame().GetItemManager().GetItem((uint)Data["base_id"]); if (BaseItem == null) { return; } Room.RemoveFurniture(Session, Present.Id); ServerPacket packet = new ServerPacket(219); packet.AppendUInt(Present.Id); Session.SendPacket(packet); packet = new ServerPacket(129); packet.AppendStringWithBreak(BaseItem.Type); packet.AppendInt32(BaseItem.SpriteId); packet.AppendStringWithBreak(BaseItem.Name); Session.SendPacket(packet); using (DatabaseClient dbClient = UberEnvironment.GetDatabase().GetClient()) { dbClient.ExecuteQuery("DELETE FROM user_presents WHERE item_id = '" + Present.Id + "' LIMIT 1"); } UberEnvironment.GetGame().GetCatalog().DeliverItems(Session, BaseItem, (int)Data["amount"], (string)Data["extra_data"]); }
public void parse(GameClient Session, ClientPacket Packet) { uint ItemId = Packet.PopWiredUInt(); DataRow Row = null; using (DatabaseClient dbClient = UberEnvironment.GetDatabase().GetClient()) { Row = dbClient.ReadDataRow("SELECT * FROM catalog_marketplace_offers WHERE offer_id = '" + ItemId + "' LIMIT 1"); } if (Row == null || (string)Row["state"] != "1" || (double)Row["timestamp"] <= UberEnvironment.GetGame().GetCatalog().GetMarketplace().FormatTimestamp()) { Session.SendNotif("Sorry, this offer has expired."); return; } Item Item = UberEnvironment.GetGame().GetItemManager().GetItem((uint)Row["item_id"]); if (Item == null) { return; } if ((int)Row["total_price"] >= 1) { Session.GetHabbo().Credits -= (int)Row["total_price"]; Session.GetHabbo().UpdateCreditsBalance(true); } UberEnvironment.GetGame().GetCatalog().DeliverItems(Session, Item, 1, (string)Row["extra_data"]); using (DatabaseClient dbClient = UberEnvironment.GetDatabase().GetClient()) { dbClient.ExecuteQuery("UPDATE catalog_marketplace_offers SET state = '2' WHERE offer_id = '" + ItemId + "' LIMIT 1"); } ServerPacket packet = new ServerPacket(67); packet.AppendUInt(Item.ItemId); packet.AppendStringWithBreak(Item.Name); packet.AppendInt32(0); packet.AppendInt32(0); packet.AppendInt32(1); packet.AppendStringWithBreak(Item.Type.ToLower()); packet.AppendInt32(Item.SpriteId); packet.AppendStringWithBreak(""); packet.AppendInt32(1); packet.AppendInt32(-1); packet.AppendStringWithBreak(""); Session.SendPacket(packet); Session.SendPacket(UberEnvironment.GetGame().GetCatalog().GetMarketplace().SerializeOffers(-1, -1, "", 1)); }
public void parse(GameClient Session, ClientPacket Packet) { Room Room = UberEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId); if (Room == null || !Room.CheckRights(Session, true)) { return; } foreach (uint UserId in Room.UsersWithRights) { RoomUser User = Room.GetRoomUserByHabbo(UserId); if (User != null && !User.IsBot) { User.GetClient().SendPacket(new ServerPacket(43)); } ServerPacket packet = new ServerPacket(511); packet.AppendUInt(Room.RoomId); packet.AppendUInt(UserId); Session.SendPacket(packet); } using (DatabaseClient dbClient = UberEnvironment.GetDatabase().GetClient()) { dbClient.ExecuteQuery("DELETE FROM room_rights WHERE room_id = '" + Room.RoomId + "'"); } Room.UsersWithRights.Clear(); }
public void parse(GameClient Session, ClientPacket Packet) { Room Room = UberEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId); if (Room == null || !Room.CheckRights(Session, true)) { return; } RoomItem Exchange = Room.GetItem(Packet.PopWiredUInt()); if (Exchange == null) { return; } if (!Exchange.GetBaseItem().Name.StartsWith("CF_") && !Exchange.GetBaseItem().Name.StartsWith("CFC_")) { return; } string[] Split = Exchange.GetBaseItem().Name.Split('_'); int Value = int.Parse(Split[1]); if (Value > 0) { Session.GetHabbo().Credits += Value; Session.GetHabbo().UpdateCreditsBalance(true); } Room.RemoveFurniture(null, Exchange.Id); Session.SendPacket(new ServerPacket(219)); }
public void parse(GameClient Session, ClientPacket Packet) { uint _id = Packet.PopWiredUInt(); DataRow Row = null; using (DatabaseClient dbClient = UberEnvironment.GetDatabase().GetClient()) { Row = dbClient.ReadDataRow("SELECT * FROM catalog_marketplace_offers WHERE offer_id = '" + _id + "' LIMIT 1"); } if (Row == null || (uint)Row["user_id"] != Session.GetHabbo().Id || (string)Row["state"] != "1") { return; } Item Item = UberEnvironment.GetGame().GetItemManager().GetItem((uint)Row["item_id"]); if (Item == null) { return; } UberEnvironment.GetGame().GetCatalog().DeliverItems(Session, Item, 1, (string)Row["extra_data"]); using (DatabaseClient dbClient = UberEnvironment.GetDatabase().GetClient()) { dbClient.ExecuteQuery("DELETE FROM catalog_marketplace_offers WHERE offer_id = '" + _id + "' LIMIT 1"); } ServerPacket packet = new ServerPacket(614); packet.AppendUInt((uint)Row["offer_id"]); packet.AppendBoolean(true); Session.SendPacket(packet); }
public void parse(GameClient Session, ClientPacket Packet) { Session.GetHabbo().GetBadgeComponent().ResetSlots(); using (DatabaseClient dbClient = UberEnvironment.GetDatabase().GetClient()) { dbClient.ExecuteQuery("UPDATE user_badges SET badge_slot = '0' WHERE user_id = '" + Session.GetHabbo().Id + "'"); } while (Packet.RemainingLength > 0) { int Slot = Packet.PopWiredInt32(); string Badge = Packet.PopFixedString(); if (Badge.Length == 0) { continue; } if (!Session.GetHabbo().GetBadgeComponent().HasBadge(Badge) || Slot < 1 || Slot > 5) { // zomg haxx0r return; } Session.GetHabbo().GetBadgeComponent().GetBadge(Badge).Slot = Slot; using (DatabaseClient dbClient = UberEnvironment.GetDatabase().GetClient()) { dbClient.AddParamWithValue("slotid", Slot); dbClient.AddParamWithValue("badge", Badge); dbClient.AddParamWithValue("userid", Session.GetHabbo().Id); dbClient.ExecuteQuery("UPDATE user_badges SET badge_slot = @slotid WHERE badge_id = @badge AND user_id = @userid LIMIT 1"); } } ServerPacket Message = new ServerPacket(228); Message.AppendUInt(Session.GetHabbo().Id); Message.AppendInt32(Session.GetHabbo().GetBadgeComponent().EquippedCount); foreach (Badge Badge in Session.GetHabbo().GetBadgeComponent().BadgeList) { if (Badge.Slot <= 0) { continue; } Message.AppendInt32(Badge.Slot); Message.AppendStringWithBreak(Badge.Code); } if (Session.GetHabbo().InRoom && UberEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId) != null) { UberEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId).SendMessage(Message); } else { Session.SendPacket(Message); } }
public void parse(GameClient Session, ClientPacket Packet) { Room Room = UberEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId); if (Room == null) { return; } RoomUser User = Room.GetRoomUserByHabbo(Packet.PopWiredUInt()); if (User == null || User.IsBot) { return; } ServerPacket packet = new ServerPacket(350); packet.AppendUInt(User.GetClient().GetHabbo().Id); packet.AppendInt32(User.GetClient().GetHabbo().Tags.Count); foreach (string Tag in User.GetClient().GetHabbo().Tags) { packet.AppendStringWithBreak(Tag); } Session.SendPacket(packet); }
public void parse(GameClient Session, ClientPacket Packet) { Room Room = UberEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId); if (Room == null) { return; } RoomUser User = Room.GetRoomUserByHabbo(Packet.PopWiredUInt()); if (User == null || User.IsBot) { return; } ServerPacket packet = new ServerPacket(228); packet.AppendUInt(User.GetClient().GetHabbo().Id); packet.AppendInt32(User.GetClient().GetHabbo().GetBadgeComponent().EquippedCount); foreach (Badge Badge in User.GetClient().GetHabbo().GetBadgeComponent().BadgeList) { if (Badge.Slot <= 0) { continue; } packet.AppendInt32(Badge.Slot); packet.AppendStringWithBreak(Badge.Code); } Session.SendPacket(packet); }
public void parse(GameClient Session, ClientPacket Packet) { ServerPacket packet = new ServerPacket(611); packet.AppendBoolean(true); packet.AppendInt32(99999); Session.SendPacket(packet); }
public void parse(GameClient Session, ClientPacket Packet) { ServerPacket packet = new ServerPacket(267); packet.AppendBoolean(Session.GetHabbo().HasFuse("fuse_use_wardrobe")); if (Session.GetHabbo().HasFuse("fuse_use_wardrobe")) { DataTable WardrobeData = null; using (DatabaseClient dbClient = UberEnvironment.GetDatabase().GetClient()) { dbClient.AddParamWithValue("userid", Session.GetHabbo().Id); WardrobeData = dbClient.ReadDataTable("SELECT * FROM user_wardrobe WHERE user_id = @userid"); } if (WardrobeData == null) { packet.AppendInt32(0); } else { packet.AppendInt32(WardrobeData.Rows.Count); foreach (DataRow Row in WardrobeData.Rows) { packet.AppendUInt((uint)Row["slot_id"]); packet.AppendStringWithBreak((string)Row["look"]); packet.AppendStringWithBreak((string)Row["gender"]); } } } Session.SendPacket(packet); }
public void parse(GameClient Session, ClientPacket Packet) { if (Session.GetHabbo().MutantPenalty) { Session.SendNotif("Because of a penalty or restriction on your account, you are not allowed to change your look."); return; } string Gender = Packet.PopFixedString().ToUpper(); string Look = UberEnvironment.FilterInjectionChars(Packet.PopFixedString()); if (!AntiMutant.ValidateLook(Look, Gender)) { return; } Session.GetHabbo().Look = Look; Session.GetHabbo().Gender = Gender.ToLower(); using (DatabaseClient dbClient = UberEnvironment.GetDatabase().GetClient()) { dbClient.AddParamWithValue("look", Look); dbClient.AddParamWithValue("gender", Gender); dbClient.ExecuteQuery("UPDATE users SET look = @look, gender = @gender WHERE id = '" + Session.GetHabbo().Id + "' LIMIT 1"); } UberEnvironment.GetGame().GetAchievementManager().UnlockAchievement(Session, 1, 1); ServerPacket packet = new ServerPacket(266); packet.AppendInt32(-1); packet.AppendStringWithBreak(Session.GetHabbo().Look); packet.AppendStringWithBreak(Session.GetHabbo().Gender.ToLower()); packet.AppendStringWithBreak(Session.GetHabbo().Motto); Session.SendPacket(packet); if (Session.GetHabbo().InRoom) { Room Room = Session.GetHabbo().CurrentRoom; if (Room == null) { return; } RoomUser User = Room.GetRoomUserByHabbo(Session.GetHabbo().Id); if (User == null) { return; } ServerPacket RoomUpdate = new ServerPacket(266); RoomUpdate.AppendInt32(User.VirtualId); RoomUpdate.AppendStringWithBreak(Session.GetHabbo().Look); RoomUpdate.AppendStringWithBreak(Session.GetHabbo().Gender.ToLower()); RoomUpdate.AppendStringWithBreak(Session.GetHabbo().Motto); Room.SendMessage(RoomUpdate); } }
public void TryRedeemVoucher(GameClient Session, string Code) { if (!IsValidCode(Code)) { Session.SendPacket(new ServerPacket(213)); } int Value = GetVoucherValue(Code); if (Value >= 0) { Session.GetHabbo().Credits += Value; Session.GetHabbo().UpdateCreditsBalance(true); } Session.SendPacket(new ServerPacket(212)); }
public void parse(GameClient Session, ClientPacket Packet) { int _min = Packet.PopWiredInt32(); int _max = Packet.PopWiredInt32(); string _query = Packet.PopFixedString(); int _filter = Packet.PopWiredInt32(); Session.SendPacket(UberEnvironment.GetGame().GetCatalog().GetMarketplace().SerializeOffers(_min, _max, _query, _filter)); }
public void parse(GameClient Session, ClientPacket Packet) { ServerPacket packet = new ServerPacket(512); packet.AppendBoolean(false); // true = show error with number below packet.AppendInt32(99999); Session.SendPacket(packet); // todo: room limit }
public void parse(GameClient Session, ClientPacket Packet) { if (Session.GetHabbo().GetMessenger() == null) { return; } Session.SendPacket(Session.GetHabbo().GetMessenger().PerformSearch(Packet.PopFixedString())); }
public void parse(GameClient Session, ClientPacket Packet) { if (Session.GetHabbo().GetInventoryComponent() == null) { return; } Session.SendPacket(Session.GetHabbo().GetInventoryComponent().SerializePetInventory()); }
public void parse(GameClient Session, ClientPacket Packet) { if (Session.GetHabbo().GetMessenger() == null) { return; } Session.SendPacket(Session.GetHabbo().GetMessenger().SerializeUpdates()); }
public void parse(GameClient Session, ClientPacket Packet) { if (!Session.GetHabbo().HasFuse("fuse_chatlogs")) { return; } Session.SendPacket(UberEnvironment.GetGame().GetModerationTool().SerializeUserChatlog(Packet.PopWiredUInt())); }
public void parse(GameClient Session, ClientPacket Packet) { uint RoomId = Packet.PopWiredUInt(); RoomData Data = UberEnvironment.GetGame().GetRoomManager().GenerateRoomData(RoomId); if (Data == null || Data.Owner.ToLower() != Session.GetHabbo().Username.ToLower()) { return; } using (DatabaseClient dbClient = UberEnvironment.GetDatabase().GetClient()) { dbClient.ExecuteQuery("DELETE FROM rooms WHERE id = '" + Data.Id + "' LIMIT 1"); dbClient.ExecuteQuery("DELETE FROM user_favorites WHERE room_id = '" + Data.Id + "'"); dbClient.ExecuteQuery("DELETE FROM room_items WHERE room_id = '" + Data.Id + "'"); dbClient.ExecuteQuery("DELETE FROM room_rights WHERE room_id = '" + Data.Id + "'"); dbClient.ExecuteQuery("UPDATE users SET home_room = '0' WHERE home_room = '" + Data.Id + "'"); // todo: delete room stuff } Room Room = UberEnvironment.GetGame().GetRoomManager().GetRoom(Data.Id); if (Room != null) { foreach (RoomUser User in Room.UserList) { if (User.IsBot) { continue; } User.GetClient().SendPacket(new ServerPacket(18)); User.GetClient().GetHabbo().OnLeaveRoom(); } UberEnvironment.GetGame().GetRoomManager().UnloadRoom(Data.Id); } ServerPacket packet = new ServerPacket(101); Session.SendPacket(packet); Session.SendPacket(UberEnvironment.GetGame().GetNavigator().SerializeRoomListing(Session, -3)); }
public void parse(GameClient Session, ClientPacket Packet) { string SearchQuery = Packet.PopFixedString(); if (SearchQuery.Length < 3) { return; } Session.SendPacket(UberEnvironment.GetGame().GetHelpTool().SerializeSearchResults(SearchQuery)); }
public void parse(GameClient Session, ClientPacket Packet) { if (Session.GetHabbo().LoadingRoom <= 0) { return; } ServerPacket packet = new ServerPacket(297); packet.AppendInt32(0); Session.SendPacket(packet); }
public void parse(GameClient Session, ClientPacket Packet) { Room Room = UberEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId); if (Room == null || !Room.CheckRights(Session, true)) { return; } foreach (var _user in Room.UserList) { if (_user.IsBot && _user.BotData.AiType == "guide") { ServerPacket packet = new ServerPacket(33); packet.AppendInt32(4009); Session.SendPacket(packet); } } if (Session.GetHabbo().CalledGuideBot) { ServerPacket packet = new ServerPacket(33); packet.AppendInt32(4010); Session.SendPacket(packet); return; } RoomUser NewUser = Room.DeployBot(UberEnvironment.GetGame().GetBotManager().GetBot(55)); NewUser.SetPos(Room.Model.DoorX, Room.Model.DoorY, Room.Model.DoorZ); NewUser.UpdateNeeded = true; RoomUser RoomOwner = Room.GetRoomUserByHabbo(Room.Owner); if (RoomOwner != null) { NewUser.MoveTo(RoomOwner.Coordinate); NewUser.SetRot(Rotation.Calculate(NewUser.X, NewUser.Y, RoomOwner.X, RoomOwner.Y)); } UberEnvironment.GetGame().GetAchievementManager().UnlockAchievement(Session, 6, 1); Session.GetHabbo().CalledGuideBot = true; }
public void parse(GameClient Session, ClientPacket Packet) { if (!UberEnvironment.GetGame().GetModerationTool().UsersHasPendingTicket(Session.GetHabbo().Id)) { return; } UberEnvironment.GetGame().GetModerationTool().DeletePendingTicketForUser(Session.GetHabbo().Id); ServerPacket packet = new ServerPacket(320); Session.SendPacket(packet); }
public void parse(GameClient Session, ClientPacket Packet) { uint TopicId = Packet.PopWiredUInt(); HelpTopic Topic = UberEnvironment.GetGame().GetHelpTool().GetTopic(TopicId); if (Topic == null) { return; } Session.SendPacket(UberEnvironment.GetGame().GetHelpTool().SerializeTopic(Topic)); }
public void parse(GameClient Session, ClientPacket Packet) { uint Id = Packet.PopWiredUInt(); HelpCategory Category = UberEnvironment.GetGame().GetHelpTool().GetCategory(Id); if (Category == null) { return; } Session.SendPacket(UberEnvironment.GetGame().GetHelpTool().SerializeCategory(Category)); }