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 OnTrigger(GameClient Session, Item Item, int Request, bool HasRights) { if (Item.ExtraData != "1" && Item.GetBaseItem().VendingIds.Count >= 1 && Item.InteractingUser == 0 && Session != null) { RoomUser User = Item.GetRoom().GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); if (User == null) { return; } if (!Gamemap.TilesTouching(User.X, User.Y, Item.GetX, Item.GetY)) { User.MoveTo(Item.SquareInFront); return; } Item.InteractingUser = Session.GetHabbo().Id; User.CanWalk = false; User.ClearMovement(true); User.SetRot(Rotation.Calculate(User.X, User.Y, Item.GetX, Item.GetY), false); Item.RequestUpdate(2, true); Item.ExtraData = "1"; Item.UpdateState(false, true); } }
public void Execute(GameClient Session, Room Room, string[] Params) { if (Session != null) { if (Room != null) { if (Params.Length != 1) { Session.SendWhisper("Invalid command! :eventalert", 0); } else if (!PlusEnvironment.Event) { PlusEnvironment.GetGame().GetClientManager().SendMessage(new BroadcastMessageAlertComposer(":follow " + Session.GetHabbo().Username + " for events! win prizes!\r\n- " + Session.GetHabbo().Username, ""), ""); PlusEnvironment.lastEvent = DateTime.Now; PlusEnvironment.Event = true; } else { TimeSpan timeSpan = DateTime.Now - PlusEnvironment.lastEvent; if (timeSpan.Hours >= 1) { PlusEnvironment.GetGame().GetClientManager().SendMessage(new BroadcastMessageAlertComposer(":follow " + Session.GetHabbo().Username + " for events! win prizes!\r\n- " + Session.GetHabbo().Username, ""), ""); PlusEnvironment.lastEvent = DateTime.Now; } else { int num = checked(60 - timeSpan.Minutes); Session.SendWhisper("Event Cooldown! " + num + " minutes left until another event can be hosted.", 0); } } } } }
public ProfileInformationComposer(Habbo Data, GameClient Session, List<Group> Groups, int friendCount) : base(ServerPacketHeader.ProfileInformationMessageComposer) { DateTime origin = new DateTime(1970, 1, 1, 0, 0, 0, 0).AddSeconds(Data.AccountCreated); base.WriteInteger(Data.Id); base.WriteString(Data.Username); base.WriteString(Data.Look); base.WriteString(Data.Motto); base.WriteString(origin.ToString("dd/MM/yyyy")); base.WriteInteger(Data.GetStats().AchievementPoints); base.WriteInteger(friendCount); // Friend Count base.WriteBoolean(Data.Id != Session.GetHabbo().Id && Session.GetHabbo().GetMessenger().FriendshipExists(Data.Id)); // Is friend base.WriteBoolean(Data.Id != Session.GetHabbo().Id && !Session.GetHabbo().GetMessenger().FriendshipExists(Data.Id) && Session.GetHabbo().GetMessenger().RequestExists(Data.Id)); // Sent friend request base.WriteBoolean((PlusEnvironment.GetGame().GetClientManager().GetClientByUserID(Data.Id)) != null); base.WriteInteger(Groups.Count); foreach (Group Group in Groups) { base.WriteInteger(Group.Id); base.WriteString(Group.Name); base.WriteString(Group.Badge); base.WriteString(PlusEnvironment.GetGame().GetGroupManager().GetGroupColour(Group.Colour1, true)); base.WriteString(PlusEnvironment.GetGame().GetGroupManager().GetGroupColour(Group.Colour2, false)); base.WriteBoolean(Data.GetStats().FavouriteGroupId == Group.Id); // todo favs base.WriteInteger(0);//what the f**k base.WriteBoolean(Group != null ? Group.ForumEnabled : true);//HabboTalk } base.WriteInteger(Convert.ToInt32(PlusEnvironment.GetUnixTimestamp() - Data.LastOnline)); // Last online base.WriteBoolean(true); // Show the profile }
public void OnTrigger(GameClient Session, Item Item, int Request, bool HasRights) { if (Item == null || Item.GetRoom() == null || Session == null || Session.GetHabbo() == null) return; RoomUser User = Item.GetRoom().GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); if (User == null) return; User.LastInteraction = PlusEnvironment.GetUnixTimestamp(); // Alright. But is this user in the right position? if (User.Coordinate == Item.Coordinate || User.Coordinate == Item.SquareInFront) { // Fine. But is this tele even free? if (Item.InteractingUser != 0) { return; } if (!User.CanWalk || Session.GetHabbo().IsTeleporting || Session.GetHabbo().TeleporterId != 0 || (User.LastInteraction + 2) - PlusEnvironment.GetUnixTimestamp() < 0) return; User.TeleDelay = 2; Item.InteractingUser = User.GetClient().GetHabbo().Id; } else if (User.CanWalk) { User.MoveTo(Item.SquareInFront); } }
public QuestCompletedComposer(GameClient Session, Quest Quest) : base(ServerPacketHeader.QuestCompletedMessageComposer) { int AmountInCat = PlusEnvironment.GetGame().GetQuestManager().GetAmountOfQuestsInCategory(Quest.Category); int Number = Quest == null ? AmountInCat : Quest.Number; int UserProgress = Quest == null ? 0 : Session.GetHabbo().GetQuestProgress(Quest.Id); base.WriteString(Quest.Category); base.WriteInteger(Number); // Quest progress in this cat base.WriteInteger((Quest.Name.Contains("xmas2012")) ? 1 : AmountInCat); // Total quests in this cat base.WriteInteger(Quest == null ? 3 : Quest.RewardType); // Reward type (1 = Snowflakes, 2 = Love hearts, 3 = Pixels, 4 = Seashells, everything else is pixels base.WriteInteger(Quest == null ? 0 : Quest.Id); // Quest id base.WriteBoolean(Quest == null ? false : Session.GetHabbo().GetStats().QuestID == Quest.Id); // Quest started base.WriteString(Quest == null ? string.Empty : Quest.ActionName); base.WriteString(Quest == null ? string.Empty : Quest.DataBit); base.WriteInteger(Quest == null ? 0 : Quest.Reward); base.WriteString(Quest == null ? string.Empty : Quest.Name); base.WriteInteger(UserProgress); // Current progress base.WriteInteger(Quest == null ? 0 : Quest.GoalData); // Target progress base.WriteInteger(Quest == null ? 0 : Quest.TimeUnlock); // "Next quest available countdown" in seconds base.WriteString(""); base.WriteString(""); base.WriteBoolean(true); // ? base.WriteBoolean(true); // Activate next quest.. }
public void OnTrigger(GameClient Session, Item Item, int Request, bool HasRights) { if (Item == null || Item.GetRoom() == null || Session == null || Session.GetHabbo() == null) return; RoomUser User = Item.GetRoom().GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); if (User == null) { return; } // Alright. But is this user in the right position? if (User.Coordinate == Item.Coordinate || User.Coordinate == Item.SquareInFront) { // Fine. But is this tele even free? if (Item.InteractingUser != 0) { return; } User.TeleDelay = 2; Item.InteractingUser = User.GetClient().GetHabbo().Id; } else if (User.CanWalk) { User.MoveTo(Item.SquareInFront); } }
public FriendListUpdateComposer(GameClient Session, MessengerBuddy Buddy) : base(ServerPacketHeader.FriendListUpdateMessageComposer) { base.WriteInteger(0);//Category Count base.WriteInteger(1);//Updates Count base.WriteInteger(0);//Update Relationship Relationship = Session.GetHabbo().Relationships.FirstOrDefault(x => x.Value.UserId == Convert.ToInt32(Buddy.UserId)).Value; int y = Relationship == null ? 0 : Relationship.Type; base.WriteInteger(Buddy.UserId); base.WriteString(Buddy.mUsername); base.WriteInteger(1); if (!Buddy.mAppearOffline || Session.GetHabbo().GetPermissions().HasRight("mod_tool")) base.WriteBoolean(Buddy.IsOnline); else base.WriteBoolean(false); if (!Buddy.mHideInroom || Session.GetHabbo().GetPermissions().HasRight("mod_tool")) base.WriteBoolean(Buddy.InRoom); else base.WriteBoolean(false); base.WriteString("");//Habbo.IsOnline ? Habbo.Look : ""); base.WriteInteger(0); // categoryid base.WriteString(Buddy.mMotto); base.WriteString(string.Empty); // Facebook username base.WriteString(string.Empty); base.WriteBoolean(true); // Allows offline messaging base.WriteBoolean(false); // ? base.WriteBoolean(false); // Uses phone base.WriteShort(y); }
private void SerializeQuest(ServerPacket Message, GameClient Session, Quest Quest, string Category) { if (Message == null || Session == null) return; int AmountInCat = PlusEnvironment.GetGame().GetQuestManager().GetAmountOfQuestsInCategory(Category); int Number = Quest == null ? AmountInCat : Quest.Number - 1; int UserProgress = Quest == null ? 0 : Session.GetHabbo().GetQuestProgress(Quest.Id); if (Quest != null && Quest.IsCompleted(UserProgress)) Number++; Message.WriteString(Category); Message.WriteInteger(Quest == null ? 0 : ((Quest.Category.Contains("xmas2012")) ? 0 : Number)); // Quest progress in this cat Message.WriteInteger(Quest == null ? 0 : (Quest.Category.Contains("xmas2012")) ? 0 : AmountInCat); // Total quests in this cat Message.WriteInteger(Quest == null ? 3 : Quest.RewardType);// Reward type (1 = Snowflakes, 2 = Love hearts, 3 = Pixels, 4 = Seashells, everything else is pixels Message.WriteInteger(Quest == null ? 0 : Quest.Id); // Quest id Message.WriteBoolean(Quest == null ? false : Session.GetHabbo().GetStats().QuestID == Quest.Id); // Quest started Message.WriteString(Quest == null ? string.Empty : Quest.ActionName); Message.WriteString(Quest == null ? string.Empty : Quest.DataBit); Message.WriteInteger(Quest == null ? 0 : Quest.Reward); Message.WriteString(Quest == null ? string.Empty : Quest.Name); Message.WriteInteger(UserProgress); // Current progress Message.WriteInteger(Quest == null ? 0 : Quest.GoalData); // Target progress Message.WriteInteger(Quest == null ? 0 : Quest.TimeUnlock); // "Next quest available countdown" in seconds Message.WriteString(""); Message.WriteString(""); Message.WriteBoolean(true); }
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) { if (Session == null || Session.GetHabbo() == null) return; int RoomId = Packet.PopInt(); string Password = Packet.PopString(); Session.GetHabbo().PrepareRoom(RoomId, Password); }
public void CheckRewards(GameClient Session) { if (Session == null || Session.GetHabbo() == null) return; foreach (KeyValuePair<int, Reward> Entry in _rewards) { int Id = Entry.Key; Reward Reward = Entry.Value; if (this.HasReward(Session.GetHabbo().Id, Id)) continue; if (Reward.isActive()) { switch (Reward.Type) { case RewardType.BADGE: { if (!Session.GetHabbo().GetBadgeComponent().HasBadge(Reward.RewardData)) Session.GetHabbo().GetBadgeComponent().GiveBadge(Reward.RewardData, true, Session); break; } case RewardType.CREDITS: { Session.GetHabbo().Credits += Convert.ToInt32(Reward.RewardData); Session.SendMessage(new CreditBalanceComposer(Session.GetHabbo().Credits)); break; } case RewardType.DUCKETS: { Session.GetHabbo().Duckets += Convert.ToInt32(Reward.RewardData); Session.SendMessage(new HabboActivityPointNotificationComposer(Session.GetHabbo().Duckets, Convert.ToInt32(Reward.RewardData))); break; } case RewardType.DIAMONDS: { Session.GetHabbo().Diamonds += Convert.ToInt32(Reward.RewardData); Session.SendMessage(new HabboActivityPointNotificationComposer(Session.GetHabbo().Diamonds, Convert.ToInt32(Reward.RewardData), 5)); break; } } if (!String.IsNullOrEmpty(Reward.Message)) Session.SendNotification(Reward.Message); this.LogReward(Session.GetHabbo().Id, Id); } else continue; } }
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 int CalcTreeSize(GameClient Session, ICollection<CatalogPage> Pages, int ParentId) { int i = 0; foreach (CatalogPage Page in Pages) { if (Page.MinimumRank > Session.GetHabbo().Rank|| (Page.MinimumVIP > Session.GetHabbo().VIPRank && Session.GetHabbo().Rank == 1) || Page.ParentId != ParentId) continue; if (Page.ParentId == ParentId) i++; } return i; }
public GroupInfoComposer(Group Group, GameClient Session, bool NewWindow = false) : base(ServerPacketHeader.GroupInfoMessageComposer) { DateTime Origin = new DateTime(1970, 1, 1, 0, 0, 0, 0).AddSeconds(Group.CreateTime); base.WriteInteger(Group.Id); base.WriteBoolean(true); base.WriteInteger(Group.GroupType == GroupType.OPEN ? 0 : Group.GroupType == GroupType.LOCKED ? 1 : 2); base.WriteString(Group.Name); base.WriteString(Group.Description); base.WriteString(Group.Badge); base.WriteInteger(Group.RoomId); base.WriteString((PlusEnvironment.GetGame().GetRoomManager().GenerateRoomData(Group.RoomId) == null) ? "No room found.." : PlusEnvironment.GetGame().GetRoomManager().GenerateRoomData(Group.RoomId).Name); // room name base.WriteInteger(Group.CreatorId == Session.GetHabbo().Id ? 3 : Group.HasRequest(Session.GetHabbo().Id) ? 2 : Group.IsMember(Session.GetHabbo().Id) ? 1 : 0); base.WriteInteger(Group.MemberCount); // Members base.WriteBoolean(false);//?? CHANGED base.WriteString(Origin.Day + "-" + Origin.Month + "-" + Origin.Year); base.WriteBoolean(Group.CreatorId == Session.GetHabbo().Id); base.WriteBoolean(Group.IsAdmin(Session.GetHabbo().Id)); // admin base.WriteString(PlusEnvironment.GetUsernameById(Group.CreatorId)); base.WriteBoolean(NewWindow); // Show group info base.WriteBoolean(Group.AdminOnlyDeco == 0); // Any user can place furni in home room base.WriteInteger(Group.CreatorId == Session.GetHabbo().Id ? Group.RequestCount : Group.IsAdmin(Session.GetHabbo().Id) ? Group.RequestCount : Group.IsMember(Session.GetHabbo().Id) ? 0 : 0); // Pending users //base.WriteInteger(0);//what the f**k base.WriteBoolean(Group != null ? Group.ForumEnabled : true);//HabboTalk. }
public void Parse(GameClient Session, ClientPacket Packet) { if (Session == null || Session.GetHabbo() == null || !Session.GetHabbo().GetPermissions().HasRight("mod_alert")) return; int UserId = Packet.PopInt(); string Message = Packet.PopString(); GameClient Client = PlusEnvironment.GetGame().GetClientManager().GetClientByUserID(UserId); if (Client == null) return; Client.SendNotification(Message); }
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 AchievementsComposer(GameClient Session, List<Achievement> Achievements) : base(ServerPacketHeader.AchievementsMessageComposer) { base.WriteInteger(Achievements.Count); foreach (Achievement Achievement in Achievements) { UserAchievement UserData = Session.GetHabbo().GetAchievementData(Achievement.GroupName); int TargetLevel = (UserData != null ? UserData.Level + 1 : 1); int TotalLevels = Achievement.Levels.Count; TargetLevel = (TargetLevel > TotalLevels ? TotalLevels : TargetLevel); AchievementLevel TargetLevelData = Achievement.Levels[TargetLevel]; base.WriteInteger(Achievement.Id); // Unknown (ID?) base.WriteInteger(TargetLevel); // Target level base.WriteString(Achievement.GroupName + TargetLevel); // Target name/desc/badge base.WriteInteger(1); base.WriteInteger(TargetLevelData.Requirement); // Progress req/target base.WriteInteger(TargetLevelData.RewardPixels); base.WriteInteger(0); // Type of reward base.WriteInteger(UserData != null ? UserData.Progress : 0); // Current progress base.WriteBoolean(UserData != null ? (UserData.Level >= TotalLevels) : false);// Set 100% completed(??) base.WriteString(Achievement.Category); // Category base.WriteString(string.Empty); base.WriteInteger(TotalLevels); // Total amount of levels base.WriteInteger(0); } base.WriteString(""); }
public GameAchievementListComposer(GameClient Session, ICollection<Achievement> Achievements, int GameId) : base(ServerPacketHeader.GameAchievementListMessageComposer) { base.WriteInteger(GameId); base.WriteInteger(Achievements.Count); foreach (Achievement Ach in Achievements.ToList()) { UserAchievement UserData = Session.GetHabbo().GetAchievementData(Ach.GroupName); int TargetLevel = (UserData != null ? UserData.Level + 1 : 1); AchievementLevel TargetLevelData = Ach.Levels[TargetLevel]; base.WriteInteger(Ach.Id); // ach id base.WriteInteger(TargetLevel); // target level base.WriteString(Ach.GroupName + TargetLevel); // badge base.WriteInteger(TargetLevelData.Requirement); // requirement base.WriteInteger(TargetLevelData.Requirement); // requirement base.WriteInteger(TargetLevelData.RewardPixels); // pixels base.WriteInteger(0); // ach score base.WriteInteger(UserData != null ? UserData.Progress : 0); // Current progress base.WriteBoolean(UserData != null ? (UserData.Level >= Ach.Levels.Count) : false); // Set 100% completed(??) base.WriteString(Ach.Category); base.WriteString("basejump"); base.WriteInteger(0); // total levels base.WriteInteger(0); } base.WriteString(""); }
public void Parse(GameClient Session, ClientPacket Packet) { if (Session == null || Session.RC4Client == null || Session.GetHabbo() != null) return; Session.TryAuthenticate(Packet.PopString()); }
public RoomData CreateRoom(GameClient Session, string Name, string Description, string Model, int Category, int MaxVisitors, int TradeSettings) { if (!_roomModels.ContainsKey(Model)) { Session.SendNotification(PlusEnvironment.GetGame().GetLanguageLocale().TryGetValue("room_model_missing")); return null; } if (Name.Length < 3) { Session.SendNotification(PlusEnvironment.GetGame().GetLanguageLocale().TryGetValue("room_name_length_short")); return null; } int RoomId = 0; using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("INSERT INTO `rooms` (`roomtype`,`caption`,`description`,`owner`,`model_name`,`category`,`users_max`,`trade_settings`) VALUES ('private',@caption,@description,@UserId,@model,@category,@usersmax,@tradesettings)"); dbClient.AddParameter("caption", Name); dbClient.AddParameter("description", Description); dbClient.AddParameter("UserId", Session.GetHabbo().Id); dbClient.AddParameter("model", Model); dbClient.AddParameter("category", Category); dbClient.AddParameter("usersmax", MaxVisitors); dbClient.AddParameter("tradesettings", TradeSettings); RoomId = Convert.ToInt32(dbClient.InsertQuery()); } RoomData newRoomData = GenerateRoomData(RoomId); Session.GetHabbo().UsersRooms.Add(newRoomData); return newRoomData; }
public void ActivateQuest(GameClient Session, int QuestId) { Quest Quest = GetQuest(QuestId); if (Quest == null) return; using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.RunQuery("REPLACE INTO `user_quests` (`user_id`,`quest_id`) VALUES ('" + Session.GetHabbo().Id + "', '" + Quest.Id + "')"); dbClient.RunQuery("UPDATE `user_stats` SET `quest_id` = '" + Quest.Id + "' WHERE `id` = '" + Session.GetHabbo().Id + "' LIMIT 1"); } Session.GetHabbo().GetStats().QuestID = Quest.Id; GetList(Session, null); Session.SendMessage(new QuestStartedComposer(Session, Quest)); }
public void OnTrigger(GameClient Session, Item Item, int Request, bool HasRights) { RoomUser User = null; if (Session != null) User = Item.GetRoom().GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); if (User == null) return; if (Gamemap.TilesTouching(Item.GetX, Item.GetY, User.X, User.Y)) { if (Item.ExtraData != "-1") { if (Request == -1) { Item.ExtraData = "0"; Item.UpdateState(); } else { Item.ExtraData = "-1"; Item.UpdateState(false, true); Item.RequestUpdate(3, true); } } } else { User.MoveTo(Item.SquareInFront); } }
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 Parse(GameClient Session, ClientPacket Packet) { if (!Session.GetHabbo().InRoom) return; Room Room = null; if (!PlusEnvironment.GetGame().GetRoomManager().TryGetRoom(Session.GetHabbo().CurrentRoomId, out Room)) return; if (!Room.CheckRights(Session, false)) return; if (Room.UsersWithRights.Contains(Session.GetHabbo().Id)) { RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); if (User != null && !User.IsBot) { User.RemoveStatus("flatctrl 1"); User.UpdateNeeded = true; User.GetClient().SendMessage(new YouAreNotControllerComposer()); } using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("DELETE FROM `room_rights` WHERE `user_id` = @uid AND `room_id` = @rid LIMIT 1"); dbClient.AddParameter("uid", Session.GetHabbo().Id); dbClient.AddParameter("rid", Room.Id); dbClient.RunQuery(); } if (Room.UsersWithRights.Contains(Session.GetHabbo().Id)) Room.UsersWithRights.Remove(Session.GetHabbo().Id); } }
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 Parse(GameClient Session, ClientPacket Packet) { if (Session == null) return; ICollection<SearchResultList> Categories = PlusEnvironment.GetGame().GetNavigator().GetFlatCategories(); Session.SendMessage(new UserFlatCatsComposer(Categories, Session.GetHabbo().Rank)); }