public void Parse(GameClient Session, ClientPacket Packet) { if (!Session.GetHabbo().InRoom) return; int Action = Packet.PopInt(); Room Room = null; if (!PlusEnvironment.GetGame().GetRoomManager().TryGetRoom(Session.GetHabbo().CurrentRoomId, out Room)) return; RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); if (User == null) return; if (User.DanceId > 0) User.DanceId = 0; if (Session.GetHabbo().Effects().CurrentEffect > 0) Room.SendMessage(new AvatarEffectComposer(User.VirtualId, 0)); User.UnIdle(); Room.SendMessage(new ActionComposer(User.VirtualId, Action)); if (Action == 5) // idle { User.IsAsleep = true; Room.SendMessage(new SleepComposer(User, true)); } PlusEnvironment.GetGame().GetQuestManager().ProgressUserQuest(Session, QuestType.SOCIAL_WAVE); }
public void Parse(GameClient Session, ClientPacket Packet) { string Build = Packet.PopString(); if (PlusEnvironment.SWFRevision != Build) PlusEnvironment.SWFRevision = Build; }
public void Parse(GameClient Session, ClientPacket Packet) { Room Room; if (!PlusEnvironment.GetGame().GetRoomManager().TryGetRoom(Session.GetHabbo().CurrentRoomId, out Room)) return; if (!Room.CheckRights(Session)) return; string Name = Packet.PopString(); bool Accepted = Packet.PopBoolean(); GameClient Client = PlusEnvironment.GetGame().GetClientManager().GetClientByUsername(Name); if (Client == null) return; if (Accepted) { Client.GetHabbo().RoomAuthOk = true; Client.SendMessage(new FlatAccessibleComposer("")); Room.SendMessage(new FlatAccessibleComposer(Client.GetHabbo().Username), true); } else { Client.SendMessage(new FlatAccessDeniedComposer("")); Room.SendMessage(new FlatAccessDeniedComposer(Client.GetHabbo().Username), true); } }
public void HandleSave(ClientPacket Packet) { int Unknown = Packet.PopInt(); int Unknown2 = Packet.PopInt(); this.StringData = Unknown2.ToString(); }
public void Parse(GameClient Session, ClientPacket Packet) { string PetName = Packet.PopString(); if (PetName.Length < 2) { Session.SendMessage(new CheckPetNameComposer(2, "2")); return; } else if (PetName.Length > 15) { Session.SendMessage(new CheckPetNameComposer(1, "15")); return; } else if (!PlusEnvironment.IsValidAlphaNumeric(PetName)) { Session.SendMessage(new CheckPetNameComposer(3, "")); return; } else if (PlusEnvironment.GetGame().GetChatManager().GetFilter().IsFiltered(PetName)) { Session.SendMessage(new CheckPetNameComposer(4, "")); return; } Session.SendMessage(new CheckPetNameComposer(0, "")); }
public void Parse(GameClient Session, ClientPacket Packet) { if (Session == null || Session.RC4Client == null || Session.GetHabbo() != null) return; Session.TryAuthenticate(Packet.PopString()); }
public void HandleSave(ClientPacket Packet) { int Unknown = Packet.PopInt(); int CountOne = Packet.PopInt(); int CountTwo = Packet.PopInt(); this.StringData = CountOne + ";" + CountTwo; }
public void Parse(GameClient Session, ClientPacket Packet) { if (!Session.GetHabbo().InRoom) return; if (!Session.GetHabbo().EnterRoom(Session.GetHabbo().CurrentRoom)) Session.SendMessage(new CloseConnectionComposer()); }
public void Parse(GameClient Session, ClientPacket Packet) { string Type = Packet.PopString(); string PacketType = ""; int PetId = PlusEnvironment.GetGame().GetCatalog().GetPetRaceManager().GetPetId(Type, out PacketType); Session.SendMessage(new SellablePetBreedsComposer(PacketType, PetId, PlusEnvironment.GetGame().GetCatalog().GetPetRaceManager().GetRacesForRaceId(PetId))); }
public void Parse(GameClient Session, ClientPacket Packet) { if (Session == null) return; ICollection<SearchResultList> Categories = PlusEnvironment.GetGame().GetNavigator().GetFlatCategories(); Session.SendMessage(new UserFlatCatsComposer(Categories, Session.GetHabbo().Rank)); }
public void Parse(GameClient Session, ClientPacket Packet) { if (Session.GetHabbo().TimeMuted > 0) { Session.SendNotification("Oops, you're currently muted - you cannot change your motto."); return; } if ((DateTime.Now - Session.GetHabbo().LastMottoUpdateTime).TotalSeconds <= 2.0) { Session.GetHabbo().MottoUpdateWarnings += 1; if (Session.GetHabbo().MottoUpdateWarnings >= 25) Session.GetHabbo().SessionMottoBlocked = true; return; } if (Session.GetHabbo().SessionMottoBlocked) return; Session.GetHabbo().LastMottoUpdateTime = DateTime.Now; string newMotto = StringCharFilter.Escape(Packet.PopString().Trim()); if (newMotto.Length > 38) newMotto = newMotto.Substring(0, 38); if (newMotto == Session.GetHabbo().Motto) return; if (!Session.GetHabbo().GetPermissions().HasRight("word_filter_override")) newMotto = PlusEnvironment.GetGame().GetChatManager().GetFilter().CheckMessage(newMotto); Session.GetHabbo().Motto = newMotto; using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("UPDATE `users` SET `motto` = @motto WHERE `id` = '" + Session.GetHabbo().Id + "' LIMIT 1"); dbClient.AddParameter("motto", newMotto); dbClient.RunQuery(); } PlusEnvironment.GetGame().GetQuestManager().ProgressUserQuest(Session, QuestType.PROFILE_CHANGE_MOTTO); PlusEnvironment.GetGame().GetAchievementManager().ProgressAchievement(Session, "ACH_Motto", 1); if (Session.GetHabbo().InRoom) { Room Room = Session.GetHabbo().CurrentRoom; if (Room == null) return; RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); if (User == null || User.GetClient() == null) return; Room.SendMessage(new UserChangeComposer(User, false)); } }
public void Parse(GameClient Session, ClientPacket Packet) { if (Session == null || Session.GetHabbo() == null) return; int RoomId = Packet.PopInt(); string Password = Packet.PopString(); Session.GetHabbo().PrepareRoom(RoomId, Password); }
public void Parse(GameClient Session, ClientPacket Packet) { string VoucherCode = Packet.PopString().Replace("\r", ""); Voucher Voucher = null; if (!PlusEnvironment.GetGame().GetCatalog().GetVoucherManager().TryGetVoucher(VoucherCode, out Voucher)) { Session.SendMessage(new VoucherRedeemErrorComposer(0)); return; } if (Voucher.CurrentUses >= Voucher.MaxUses) { Session.SendNotification("Oops, this voucher has reached the maximum usage limit!"); return; } DataRow GetRow = null; using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("SELECT * FROM `user_vouchers` WHERE `user_id` = '" + Session.GetHabbo().Id + "' AND `voucher` = @Voucher LIMIT 1"); dbClient.AddParameter("Voucher", VoucherCode); GetRow = dbClient.getRow(); } if (GetRow != null) { Session.SendNotification("You've already used this voucher code, one per each user, sorry!"); return; } else { using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("INSERT INTO `user_vouchers` (`user_id`,`voucher`) VALUES ('" + Session.GetHabbo().Id + "', @Voucher)"); dbClient.AddParameter("Voucher", VoucherCode); dbClient.RunQuery(); } } Voucher.UpdateUses(); if (Voucher.Type == VoucherType.CREDIT) { Session.GetHabbo().Credits += Voucher.Value; Session.SendMessage(new CreditBalanceComposer(Session.GetHabbo().Credits)); } else if (Voucher.Type == VoucherType.DUCKET) { Session.GetHabbo().Duckets += Voucher.Value; Session.SendMessage(new HabboActivityPointNotificationComposer(Session.GetHabbo().Duckets, Voucher.Value)); } Session.SendMessage(new VoucherRedeemOkComposer()); }
public void HandleSave(ClientPacket Packet) { if (this.SetItems.Count > 0) this.SetItems.Clear(); int Unknown = Packet.PopInt(); int Time = Packet.PopInt(); string Message = Packet.PopString(); //this.StringData = Time + ";" + Message; }
private void parser_onNewPacket(ClientPacket Message) { try { PlusEnvironment.GetGame().GetPacketManager().TryExecutePacket(this, Message); } catch (Exception e) { Logging.LogPacketException(Message.ToString(), e.ToString()); } }
public void HandleSave(ClientPacket Packet) { int Unknown = Packet.PopInt(); int ChatMode = Packet.PopInt(); string ChatConfig = Packet.PopString(); if (this.SetItems.Count > 0) this.SetItems.Clear(); //this.StringData = ChatConfig.Replace('\t', ';') + ";" + ChatMode; }
public void Parse(GameClient Session, ClientPacket Packet) { bool FocusPreference = Packet.PopBoolean(); Session.GetHabbo().FocusPreference = FocusPreference; using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("UPDATE `users` SET `focus_preference` = @focusPreference WHERE `id` = '" + Session.GetHabbo().Id + "' LIMIT 1"); dbClient.AddParameter("focusPreference", PlusEnvironment.BoolToEnum(FocusPreference)); dbClient.RunQuery(); } }
public void Parse(GameClient Session, ClientPacket Packet) { int Id = Packet.PopInt(); Session.GetHabbo().FavoriteRooms.Remove(Id); Session.SendMessage(new UpdateFavouriteRoomComposer(Id, false)); using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.RunQuery("DELETE FROM user_favorites WHERE user_id = " + Session.GetHabbo().Id + " AND room_id = " + Id + " LIMIT 1"); } }
public void Parse(GameClient Session, ClientPacket Packet) { /*int Sub = 0; if (Session.GetHabbo().GetSubscriptionManager().HasSubscription) { Sub = Session.GetHabbo().GetSubscriptionManager().GetSubscription().SubscriptionId; }*/ Session.SendMessage(new CatalogIndexComposer(Session, PlusEnvironment.GetGame().GetCatalog().GetPages()));//, Sub)); Session.SendMessage(new CatalogItemDiscountComposer()); Session.SendMessage(new BCBorrowedItemsComposer()); }
public void Parse(GameClient Session, ClientPacket Packet) { if (Session == null || Session.GetHabbo() == null) return; int PageId = Packet.PopInt(); int ItemId = Packet.PopInt(); int RoomId = Packet.PopInt(); string Name = PlusEnvironment.GetGame().GetChatManager().GetFilter().CheckMessage(Packet.PopString()); bool junk3 = Packet.PopBoolean(); string Desc = PlusEnvironment.GetGame().GetChatManager().GetFilter().CheckMessage(Packet.PopString()); int CategoryId = Packet.PopInt(); RoomData Data = PlusEnvironment.GetGame().GetRoomManager().GenerateRoomData(RoomId); if (Data == null) return; if (Data.OwnerId != Session.GetHabbo().Id) return; if (Data.Promotion == null) Data.Promotion = new RoomPromotion(Name, Desc, CategoryId); else { Data.Promotion.Name = Name; Data.Promotion.Description = Desc; Data.Promotion.TimestampExpires += 7200; } using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("REPLACE INTO `room_promotions` (`room_id`,`title`,`description`,`timestamp_start`,`timestamp_expire`,`category_id`) VALUES (@room_id, @title, @description, @start, @expires, @CategoryId)"); dbClient.AddParameter("room_id", RoomId); dbClient.AddParameter("title", Name); dbClient.AddParameter("description", Desc); dbClient.AddParameter("start", Data.Promotion.TimestampStarted); dbClient.AddParameter("expires", Data.Promotion.TimestampExpires); dbClient.AddParameter("CategoryId", CategoryId); dbClient.RunQuery(); } if (!Session.GetHabbo().GetBadgeComponent().HasBadge("RADZZ")) Session.GetHabbo().GetBadgeComponent().GiveBadge("RADZZ", true, Session); Session.SendMessage(new PurchaseOKComposer()); if (Session.GetHabbo().InRoom && Session.GetHabbo().CurrentRoomId == RoomId) Session.GetHabbo().CurrentRoom.SendMessage(new RoomEventComposer(Data, Data.Promotion)); Session.GetHabbo().GetMessenger().BroadcastAchievement(Session.GetHabbo().Id, HabboHotel.Users.Messenger.MessengerEventTypes.EVENT_STARTED, Name); }
public void CancelQuest(GameClient Session, ClientPacket Message) { Quest Quest = GetQuest(Session.GetHabbo().GetStats().QuestID); if (Quest == null) return; using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.RunQuery("DELETE FROM `user_quests` WHERE `user_id` = '" + Session.GetHabbo().Id + "' AND `quest_id` = '" + Quest.Id + "';" + "UPDATE `user_stats` SET `quest_id` = '0' WHERE `id` = '" + Session.GetHabbo().Id + "' LIMIT 1"); } Session.GetHabbo().GetStats().QuestID = 0; Session.SendMessage(new QuestAbortedComposer()); GetList(Session, null); }
public void Parse(GameClient Session, ClientPacket Packet) { if (!Session.GetHabbo().InRoom) return; Room Room = Session.GetHabbo().CurrentRoom; if (Room == null) return; RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Username); if (User == null) return; Session.GetHabbo().CurrentRoom.SendMessage(new UserTypingComposer(User.VirtualId, true)); }
public void Parse(GameClient Session, ClientPacket Packet) { int PageId = Packet.PopInt(); int Something = Packet.PopInt(); string CataMode = Packet.PopString(); CatalogPage Page = null; if (!PlusEnvironment.GetGame().GetCatalog().TryGetPage(PageId, out Page)) return; if (!Page.Enabled || !Page.Visible || Page.MinimumRank > Session.GetHabbo().Rank || (Page.MinimumVIP > Session.GetHabbo().VIPRank && Session.GetHabbo().Rank == 1)) return; Session.SendMessage(new CatalogPageComposer(Page, CataMode)); }
public void HandleSave(ClientPacket Packet) { if (this.SetItems.Count > 0) this.SetItems.Clear(); int Unknown = Packet.PopInt(); string Message = Packet.PopString(); this.StringData = Message; int Speed; if (!int.TryParse(StringData, out Speed)) { this.StringData = ""; } }
public void HandleSave(ClientPacket Packet) { int Unknown = Packet.PopInt(); string Unknown2 = Packet.PopString(); if (this.SetItems.Count > 0) this.SetItems.Clear(); int FurniCount = Packet.PopInt(); for (int i = 0; i < FurniCount; i++) { Item SelectedItem = Instance.GetRoomItemHandler().GetItem(Packet.PopInt()); if (SelectedItem != null) SetItems.TryAdd(SelectedItem.Id, SelectedItem); } }
public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet) { string CipherPublickey = Packet.PopString(); BigInteger SharedKey = HabboEncryptionV2.CalculateDiffieHellmanSharedKey(CipherPublickey); if (SharedKey != 0) { Session.RC4Client = new ARC4(SharedKey.getBytes()); Session.SendMessage(new SecretKeyComposer(HabboEncryptionV2.GetRsaDiffieHellmanPublicKey())); } else { Session.SendNotification("There was an error logging you in, please try again!"); return; } }
public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet) { if (!Session.GetHabbo().GetPermissions().HasRight("mod_caution")) return; if (!Session.GetHabbo().InRoom) return; Room CurrentRoom = Session.GetHabbo().CurrentRoom; if (CurrentRoom == null) return; int AlertMode = Packet.PopInt(); string AlertMessage = Packet.PopString(); bool IsCaution = AlertMode != 3; AlertMessage = IsCaution ? "Caution from Moderator:\n\n" + AlertMessage : "Message from Moderator:\n\n" + AlertMessage; Session.GetHabbo().CurrentRoom.SendMessage(new BroadcastMessageAlertComposer(AlertMessage)); }
public void Parse(GameClient Session, ClientPacket Packet) { int EffectId = Packet.PopInt(); if (EffectId < 0) EffectId = 0; if (!Session.GetHabbo().InRoom) return; Room Room = Session.GetHabbo().CurrentRoom; if (Room == null) return; RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); if (User == null) return; if (EffectId != 0 && Session.GetHabbo().Effects().HasEffect(EffectId, true)) User.ApplyEffect(EffectId); }
public void GetCurrentQuest(GameClient Session, ClientPacket Message) { if (!Session.GetHabbo().InRoom) return; Quest UserQuest = GetQuest(Session.GetHabbo().QuestLastCompleted); Quest NextQuest = GetNextQuestInSeries(UserQuest.Category, UserQuest.Number + 1); if (NextQuest == null) return; using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.RunQuery("REPLACE INTO `user_quests`(`user_id`,`quest_id`) VALUES (" + Session.GetHabbo().Id + ", " + NextQuest.Id + ")"); dbClient.RunQuery("UPDATE `user_stats` SET `quest_id` = '" + NextQuest.Id + "' WHERE `id` = '" + Session.GetHabbo().Id + "' LIMIT 1"); } Session.GetHabbo().GetStats().QuestID = NextQuest.Id; GetList(Session, null); Session.SendMessage(new QuestStartedComposer(Session, NextQuest)); }
public void Parse(GameClient Session, ClientPacket Packet) { if (Session == null || Session.GetHabbo() == null || !Session.GetHabbo().InRoom) return; Room Room = Session.GetHabbo().CurrentRoom; if (Room == null) return; Dictionary<int, string> Badges = new Dictionary<int, string>(); foreach (RoomUser User in Room.GetRoomUserManager().GetRoomUsers().ToList()) { if (User.IsBot || User.IsPet || User.GetClient() == null || User.GetClient().GetHabbo() == null) continue; if (User.GetClient().GetHabbo().GetStats().FavouriteGroupId == 0 || Badges.ContainsKey(User.GetClient().GetHabbo().GetStats().FavouriteGroupId)) continue; Group Group = null; if (!PlusEnvironment.GetGame().GetGroupManager().TryGetGroup(User.GetClient().GetHabbo().GetStats().FavouriteGroupId, out Group)) continue; if (!Badges.ContainsKey(Group.Id)) Badges.Add(Group.Id, Group.Badge); } if (Session.GetHabbo().GetStats().FavouriteGroupId > 0) { Group Group = null; if (PlusEnvironment.GetGame().GetGroupManager().TryGetGroup(Session.GetHabbo().GetStats().FavouriteGroupId, out Group)) { if (!Badges.ContainsKey(Group.Id)) Badges.Add(Group.Id, Group.Badge); } } Room.SendMessage(new HabboGroupBadgesComposer(Badges)); Session.SendMessage(new HabboGroupBadgesComposer(Badges)); }