private void BanSelectedUser(Client Client, Request Request) { int UserId = Request.PopWiredInt32(); string Reason = BrickEngine.CleanString(Request.PopFixedString()); int DurationHours = Request.PopWiredInt32(); if (UserId <= 0) { return; } BrickEngine.GetToolReactor().BanUser(Client, UserId, Reason, DurationHours, false); }
private void AlertSelectedRoom(Client Client, Request Request) { if (!Client.GetUser().IsInRoom) { return; } // Avoid Junk Request.PopWiredInt32(); Boolean Warning = !Request.PopWiredInt32().Equals(3); string Message = BrickEngine.CleanString(Request.PopFixedString()); BrickEngine.GetToolReactor().AlertRoom(Client, Client.GetUser().RoomId, Message, Warning); }
private void GetEcotronPackage(Client Client, Request Request) { if (!Client.GetUser().IsInRoom) { return; } int ItemAmount = Request.PopWiredInt32(); if (ItemAmount < 5 || ItemAmount > 5) { return; } var ItemList = new List<int>(); for (int i = 0; i < ItemAmount; i++) { int ItemId = Request.PopWiredInt32(); ItemList.Add(ItemId); } if (BrickEngine.GetEcotronReactor().GainReward(Client)) { foreach (int ItemId in ItemList) { BrickEngine.GetItemReactor().RemoveItem(ItemId); } Client.SendResponse(new Response(101)); foreach (int ItemId in ItemList) { using (QueryReactor Reactor = BrickEngine.GetQueryReactor()) { Reactor.SetQuery("DELETE FROM items WHERE id = @itemid LIMIT 1"); Reactor.AddParam("itemid", ItemId); Reactor.ExcuteQuery(); } } } }
public void OpenFeacturedRoom(Client Client, Request Request) { int RoomId = Request.PopWiredInt32(); string Password = Request.PopFixedString(); if (Client.GetUser().RoomId == RoomId) { return; } BeginLoadRoom(Client, RoomId, Password); }
private void ChatWithFriend(Client Client, Request Request) { int FriendId = Request.PopWiredInt32(); if (!BrickEngine.GetMessengerHandler().HasFriend(Client.GetUser().HabboId, FriendId)) { return; } BrickEmulator.HabboHotel.Users.Handlers.Messenger.Friend Friend = BrickEngine.GetMessengerHandler().GetFriend(Client.GetUser().HabboId, FriendId); if (Friend == null) { Response Respose = new Response(261); Respose.AppendInt32(6); Respose.AppendInt32(FriendId); Client.SendResponse(Respose); return; } if (Client.GetUser().Muted) { Response Respose = new Response(261); Respose.AppendInt32(4); Respose.AppendInt32(FriendId); Client.SendResponse(Respose); return; } if (Friend.IsAlive) { if (Friend.GetClient().GetUser().Muted) { Response Respose = new Response(261); Respose.AppendInt32(3); Respose.AppendInt32(FriendId); Client.SendResponse(Respose); } Response Response = new Response(134); Response.AppendInt32(Client.GetUser().HabboId); Response.AppendStringWithBreak(BrickEngine.CleanString(Request.PopFixedString())); Friend.GetClient().SendResponse(Response); } else { Response Respose = new Response(261); Respose.AppendInt32(5); Respose.AppendInt32(FriendId); Client.SendResponse(Respose); } }
private void AlertSelectedUser(Client Client, Request Request) { int UserId = Request.PopWiredInt32(); string Message = BrickEngine.CleanString(Request.PopFixedString()); if (UserId <= 0) { return; } BrickEngine.GetToolReactor().AlertUser(Client, UserId, Message, false, false, false); }
private void AcceptRequests(Client Client, Request Request) { int Amount = Request.PopWiredInt32(); for (int i = 0; i < Amount; i++) { int UserId = Request.PopWiredInt32(); BrickEmulator.HabboHotel.Users.Handlers.Messenger.Friend Friend = new BrickEmulator.HabboHotel.Users.Handlers.Messenger.Friend(UserId); if (Friend.IsAlive) { // Send Response (come online) >> Friend Friend.GetClient().SendResponse(BrickEngine.GetMessengerHandler().GetStatusMessage(Friend.HabboId, Client.GetUser(), true)); // Send Response (come online) >> MySELF Client.SendResponse(BrickEngine.GetMessengerHandler().GetStatusMessage(Client.GetUser().HabboId, Friend.GetClient().GetUser(), true)); } BrickEngine.GetMessengerHandler().AcceptRequest(UserId, Client.GetUser().HabboId); } }
private void GetPetsTool(Client Client, Request Request) { if (!Client.GetUser().IsInRoom) { return; } int PetId = Request.PopWiredInt32(); VirtualRoomUser PetUser = Client.GetUser().GetRoom().GetRoomEngine().GetUserByPetId(PetId); if (PetUser == null) { return; } PetInfo Info = BrickEngine.GetPetReactor().GetPetInfo(PetId); if (Info == null) { return; } Response Response = new Response(605); Response.AppendInt32(PetId); Response.AppendInt32(PetReactor.MAX_LEVEL); for (int i = 0; i <= PetReactor.MAX_LEVEL; i++) { Response.AppendInt32(i); } for (int i = 0; i <= Info.Level; i++) { Response.AppendInt32(i); } Client.SendResponse(Response); }
private void UpdateRoomLayout(Client Client, Request Request) { if (!Client.GetUser().IsInRoom) { return; } if (!Client.GetUser().GetRoom().GetRoomEngine().HasRights(Client.GetUser().HabboId, Rooms.RightsType.Rights)) { return; } int ItemId = Request.PopWiredInt32(); if (ItemId <= 0) { return; } // Gain Item & Verify Item Item = null; if ((Item = BrickEngine.GetItemReactor().GetItem(ItemId)) == null) { return; } VirtualRoomEngine RoomEngine = Client.GetUser().GetRoom().GetRoomEngine(); if (RoomEngine == null) { return; } RoomEngine.UpdateLayout(Client, Item); }
private void GetRoomInfo(Client Client, Request Request) { int RoomId = Request.PopWiredInt32(); if (RoomId <= 0) { return; } Client.SendResponse(BrickEngine.GetToolReactor().GetRoomResponse(Client, RoomId)); }
private void BeginEditRoom(Client Client, Request Request) { if (!Client.GetUser().IsInRoom) { return; } int RoomId = Request.PopWiredInt32(); VirtualRoom Room = BrickEngine.GetRoomReactor().GetVirtualRoom(RoomId, RoomRunningState.Alive); if (Room == null) { return; } if (!Room.GetRoomEngine().HasRights(Client.GetUser().HabboId, Rooms.RightsType.Founder)) { return; } Response Response = new Response(465); Response.AppendInt32(RoomId); Response.AppendStringWithBreak(Room.Name); Response.AppendStringWithBreak(Room.Description); Response.AppendInt32(Room.DoorState); Response.AppendInt32(Room.CategoryId); Response.AppendInt32(Room.LimitUsers); Response.AppendInt32(Room.GetRoomModel().LimitUsers); Response.AppendInt32(Room.Tags.Count); Room.Tags.ForEach(Response.AppendStringWithBreak); Response.AppendInt32(Room.GetRoomEngine().GetUsersWithRights().Count); foreach (int UserId in Room.GetRoomEngine().GetUsersWithRights()) { Response.AppendInt32(UserId); Response.AppendStringWithBreak(BrickEngine.GetUserReactor().GetUsername(UserId)); } Response.AppendInt32(Room.GetRoomEngine().GetUsersWithRights().Count); Response.AppendBoolean(Room.AllowPets); Response.AppendBoolean(Room.AllowPetsEat); Response.AppendBoolean(Room.AllowWalkthough); Response.AppendBoolean(Room.AllowHideWall); Response.AppendInt32(Room.WallThick); Response.AppendInt32(Room.FloorThick); Client.SendResponse(Response); }
private void MovePetToInventory(Client Client, Request Request) { if (!Client.GetUser().IsInRoom) { // Outside room placing FTW. return; } if (!Client.GetUser().GetRoom().GetRoomEngine().HasRights(Client.GetUser().HabboId, Rooms.RightsType.Founder)) { // Only Place in your own room. return; } int PetId = Request.PopWiredInt32(); if (PetId <= 0) { return; } PetInfo Info = BrickEngine.GetPetReactor().GetPetInfo(PetId); if (Info == null) { return; } if (Info.UserId != Client.GetUser().HabboId) { return; } VirtualRoomEngine RoomEngine = BrickEngine.GetRoomReactor().GetVirtualRoom(Client.GetUser().RoomId, RoomRunningState.Alive).GetRoomEngine(); if (RoomEngine == null) { return; } Info.RoomId = -1; RoomEngine.RemovePet(PetId); Response AddMessage = new Response(603); Info.GetInventoryResponse(AddMessage); Client.SendResponse(AddMessage); using (QueryReactor Reactor = BrickEngine.GetQueryReactor()) { Reactor.SetQuery("UPDATE user_pets SET room_id = @roomid WHERE id = @petid LIMIT 1"); Reactor.AddParam("roomid", -1); Reactor.AddParam("petid", PetId); Reactor.ExcuteQuery(); } }
private void UpdateFavorite(Client Client, Request Request) { int RoomId = Request.PopWiredInt32(); string Query = string.Empty; Response Response = new Response(459); Response.AppendInt32(RoomId); if (Client.GetUser().FavoriteRoomIds.Contains(RoomId)) { Client.GetUser().FavoriteRoomIds.Remove(RoomId); Query = "DELETE FROM user_favorite_rooms WHERE user_id = @habboid AND room_id = @roomid LIMIT 1"; Response.AppendBoolean(false); } else { Client.GetUser().FavoriteRoomIds.Add(RoomId); Query = "INSERT INTO user_favorite_rooms (user_id, room_id) VALUES (@habboid, @roomid)"; Response.AppendBoolean(true); } Client.SendResponse(Response); using (QueryReactor Reactor = BrickEngine.GetQueryReactor()) { Reactor.SetQuery(Query); Reactor.AddParam("habboid", Client.GetUser().HabboId); Reactor.AddParam("roomid", RoomId); Reactor.ExcuteQuery(); } }
private void GetUserRoomVisits(Client Client, Request Request) { int UserId = Request.PopWiredInt32(); if (UserId <= 0) { return; } Client.SendResponse(BrickEngine.GetToolReactor().GetUserRoomVisits(Client, UserId)); }
private void GiveRights(Client Client, Request Request) { if (!Client.GetUser().IsInRoom) { return; } if (!Client.GetUser().GetRoom().GetRoomEngine().HasRights(Client.GetUser().HabboId, Rooms.RightsType.Founder)) { return; } int HabboId = Request.PopWiredInt32(); VirtualRoomUser TriggeredUser = Client.GetUser().GetRoom().GetRoomEngine().GetUserByHabboId(HabboId); if (TriggeredUser == null) { return; } if (Client.GetUser().GetRoom().GetRoomEngine().HasRights(HabboId, Rooms.RightsType.Rights)) { return; } Client.GetUser().GetRoom().GetRoomEngine().AddRights(HabboId, RightsType.Rights); Response Response = new Response(510); Response.AppendInt32(Client.GetUser().RoomId); Response.AppendInt32(HabboId); Response.AppendStringWithBreak(BrickEngine.GetUserReactor().GetUsername(HabboId)); Client.SendResponse(Response); TriggeredUser.GetClient().SendResponse(new Response(42)); TriggeredUser.AddStatus("flatctrl", ""); TriggeredUser.UpdateStatus(true); // Doing Querys using (QueryReactor Reactor = BrickEngine.GetQueryReactor()) { Reactor.SetQuery("INSERT INTO private_rooms_rights (user_id, room_id) VALUES (@habboid, @roomid)"); Reactor.AddParam("habboid", HabboId); Reactor.AddParam("roomid", Client.GetUser().RoomId); Reactor.ExcuteQuery(); } }
private void EndEditRoom(Client Client, Request Request) { if (!Client.GetUser().IsInRoom) { return; } int RoomId = Request.PopWiredInt32(); VirtualRoom Room = BrickEngine.GetRoomReactor().GetVirtualRoom(RoomId, RoomRunningState.Alive); if (Room == null) { return; } if (!Room.GetRoomEngine().HasRights(Client.GetUser().HabboId, Rooms.RightsType.Founder)) { return; } string Name = BrickEngine.CleanString(Request.PopFixedString()); string Description = BrickEngine.CleanString(Request.PopFixedString()); int DoorState = Request.PopWiredInt32(); string Password = BrickEngine.CleanString(Request.PopFixedString()); int LimitUsers = Request.PopWiredInt32(); int CategoryId = Request.PopWiredInt32(); PrivateCategory Category = BrickEngine.GetNavigatorManager().GetPrivateCategory(CategoryId); if (Category == null) { CategoryId = 0; } if (Client.GetUser().Rank < Category.RankAllowed) { Client.Notif("You're not allowed to use this category.", false); CategoryId = 0; } int TagAmount = Request.PopWiredInt32(); List<string> Tags = new List<string>(); for (int i = 0; i < TagAmount; i++) { string Tag = BrickEngine.CleanString(Request.PopFixedString()).Trim().ToLower(); if (Tag.Length > 32) { Tag = Tag.Substring(0, 32); } if (Tag.Length > 0 && !Tags.Contains(Tag)) { Tags.Add(Tag); } } Boolean AllowPets = (Request.PlainReadBytes(1)[0].ToString() == "65"); Request.AdvancePointer(1); Boolean AllowPetsEat = (Request.PlainReadBytes(1)[0].ToString() == "65"); Request.AdvancePointer(1); Boolean AllowWalkthough = (Request.PlainReadBytes(1)[0].ToString() == "65"); Request.AdvancePointer(1); Boolean AllowHideWall = (Request.PlainReadBytes(1)[0].ToString() == "65"); Request.AdvancePointer(1); int WallThick = Request.PopWiredInt32(); if (WallThick < -2 || WallThick > 1) { WallThick = 0; } int FloorThick = Request.PopWiredInt32(); if (FloorThick < -2 || FloorThick > 1) { FloorThick = 0; } if (Name.Length > 60) { Name = Name.Substring(0, 60); } if (Description.Length > 128) { Description = Description.Substring(0, 128); } if (Password.Length > 64) { Password = Password.Substring(0, 64); } if (LimitUsers > Client.GetUser().GetRoom().GetRoomModel().LimitUsers) { LimitUsers = Client.GetUser().GetRoom().GetRoomModel().LimitUsers; } if (DoorState == 2 && Password.Length <= 0) { DoorState = 0; } Dictionary<string, Object> Params = new Dictionary<string, object>(); List<string> Commands = new List<string>(); if (!Room.Name.Equals(Name)) { Commands.Add("name = @name"); Params.Add("name", Name); Room.Name = Name; } if (!Room.Description.Equals(Description)) { Commands.Add("description = @desc"); Params.Add("desc", Description); Room.Description = Description; } if (!Room.DoorState.Equals(DoorState)) { Commands.Add("door_state = @door"); Params.Add("door", DoorState); Room.DoorState = DoorState; } if (!Room.Password.Equals(Password)) { Commands.Add("password = @pw"); Params.Add("pw", Password); Room.Password = Password; } if (!Room.LimitUsers.Equals(LimitUsers)) { Commands.Add("limit_users = @limit"); Params.Add("limit", LimitUsers); Room.LimitUsers = LimitUsers; } if (!Room.CategoryId.Equals(CategoryId)) { Commands.Add("category_id = @catid"); Params.Add("catid", CategoryId); Room.CategoryId = CategoryId; } if (!Room.Tags.Equals(Tags)) { string SplittedTags = string.Empty; int x = 0; foreach (string Tag in Tags) { if (x > 0) { SplittedTags += ','; } SplittedTags += Tag.ToLower(); x++; } Commands.Add("tags = @tags"); Params.Add("tags", SplittedTags.ToString()); Room.Tags = Tags; } if (!Room.AllowPets.Equals(AllowPets)) { Commands.Add("allow_pets = @allow_pets"); Params.Add("allow_pets", AllowPets ? 1 : 0); Room.AllowPets = AllowPets; } if (!Room.AllowPetsEat.Equals(AllowPetsEat)) { Commands.Add("allow_pets_eat = @allow_pets_eat"); Params.Add("allow_pets_eat", AllowPetsEat ? 1 : 0); Room.AllowPetsEat = AllowPetsEat; } if (!Room.AllowWalkthough.Equals(AllowWalkthough)) { Commands.Add("allow_walkthough = @allow_walkthough"); Params.Add("allow_walkthough", AllowWalkthough ? 1 : 0); Room.AllowWalkthough = AllowWalkthough; } if (!Room.AllowHideWall.Equals(AllowHideWall)) { Commands.Add("allow_hidewall = @allow_hidewall"); Params.Add("allow_hidewall", AllowHideWall ? 1 : 0); Room.AllowHideWall = AllowHideWall; } if (!Room.WallThick.Equals(WallThick)) { Commands.Add("walls_thick = @walls_thick"); Params.Add("walls_thick", WallThick); Room.WallThick = WallThick; } if (!Room.FloorThick.Equals(FloorThick)) { Commands.Add("floors_thick = @floors_thick"); Params.Add("floors_thick", FloorThick); Room.FloorThick = FloorThick; } Response Data = new Response(454); Data.AppendBoolean(true); Room.GetNavigatorResponse(Data, false); Client.SendRoomResponse(Data); Response Response = new Response(); Response.Initialize(467); Response.AppendInt32(Client.GetUser().RoomId); Response.Initialize(456); Response.AppendInt32(Client.GetUser().RoomId); Client.SendResponse(Response); Response RoomStruct = new Response(472); RoomStruct.AppendBoolean(AllowHideWall); RoomStruct.AppendInt32(WallThick); RoomStruct.AppendInt32(FloorThick); Client.SendRoomResponse(RoomStruct); if (Commands.Count > 0) { using (QueryReactor Reactor = BrickEngine.GetQueryReactor()) { StringBuilder Builder = new StringBuilder(); Builder.Append("UPDATE private_rooms SET "); int i = 0; foreach (string Command in Commands) { i++; Builder.Append(Command); if (i < Commands.Count) { Builder.Append(", "); } } Builder.Append(" WHERE id = @roomid LIMIT 1"); Reactor.SetQuery(Builder.ToString()); foreach (KeyValuePair<string, Object> kvp in Params) { Reactor.AddParam(kvp.Key, kvp.Value); } Reactor.AddParam("roomid", Room.Id); Reactor.ExcuteQuery(); } } }
private void UpdateWallItem(Client Client, Request Request) { if (!Client.GetUser().IsInRoom) { // Outside room placing FTW. return; } if (!Client.GetUser().GetRoom().GetRoomEngine().HasRights(Client.GetUser().HabboId, Rooms.RightsType.Rights)) { // Only Update with rights. return; } int ItemId = Request.PopWiredInt32(); if (ItemId <= 0) { return; } // Gain Item & Verify Item Item = null; if ((Item = BrickEngine.GetItemReactor().GetItem(ItemId)) == null) { return; } // Still in inventory!? if (Item.Place.Equals(ItemPlace.Inventory)) { return; } string WallPos = Request.PopFixedString(); VirtualRoomEngine RoomEngine = Client.GetUser().GetRoom().GetRoomEngine(); if (RoomEngine == null) { return; } string Verify = RoomEngine.VerifyWallPosition(WallPos); if (string.IsNullOrEmpty(Verify) || !Verify.StartsWith(":")) { return; } Item.WallPoint = Verify; RoomEngine.HandleIncomingItemUpdate(Item, Verify, Client.GetUser().GetRoomUser()); }
private void PreformAction(Client Client, Request Request) { int RoomId = Request.PopWiredInt32(); if (RoomId <= 0) { return; } Boolean SetDoorBell = Request.PopWiredBoolean(); Boolean SetRoomName = Request.PopWiredBoolean(); Boolean KickUsers = Request.PopWiredBoolean(); BrickEngine.GetToolReactor().HandleRoom(Client, RoomId, SetDoorBell, SetRoomName, KickUsers); }
private void DestroyRoom(Client Client, Request Request) { if (!Client.GetUser().IsInRoom) { return; } int RoomId = Request.PopWiredInt32(); VirtualRoom Room = BrickEngine.GetRoomReactor().GetVirtualRoom(RoomId, RoomRunningState.Alive); if (Room == null) { return; } if (!Room.GetRoomEngine().HasRights(Client.GetUser().HabboId, Rooms.RightsType.Founder)) { Client.Notif("You has not the rights to do this.", false); return; } BrickEngine.GetRoomReactor().DisposeRoom(Room.Id); // Cleanup Data using (QueryReactor Reactor = BrickEngine.GetQueryReactor()) { Reactor.SetQuery("DELETE FROM private_rooms WHERE id = @roomid LIMIT 1"); Reactor.AddParam("roomid", RoomId); Reactor.ExcuteQuery(); } // Cleanup HomeRooms using (QueryReactor Reactor = BrickEngine.GetQueryReactor()) { Reactor.SetQuery("UPDATE users SET home_room_id = '0' WHERE home_room_id = @roomid LIMIT 1"); Reactor.AddParam("roomid", RoomId); Reactor.ExcuteQuery(); } // Cleanup Rights using (QueryReactor Reactor = BrickEngine.GetQueryReactor()) { Reactor.SetQuery("DELETE FROM private_rooms_rights WHERE room_id = @roomid LIMIT 1"); Reactor.AddParam("roomid", RoomId); Reactor.ExcuteQuery(); } // Cleanup Rights using (QueryReactor Reactor = BrickEngine.GetQueryReactor()) { Reactor.SetQuery("DELETE FROM user_favorite_rooms WHERE room_id = @roomid LIMIT 1"); Reactor.AddParam("roomid", RoomId); Reactor.ExcuteQuery(); } // Cleanup Items using (QueryReactor Reactor = BrickEngine.GetQueryReactor()) { Reactor.SetQuery("UPDATE items SET room_id = '0' WHERE room_id = @roomid LIMIT 1"); Reactor.AddParam("roomid", RoomId); Reactor.ExcuteQuery(); } }
private void PickUpItem(Client Client, Request Request) { if (!Client.GetUser().IsInRoom) { // Outside room placing FTW. return; } if (!Client.GetUser().GetRoom().GetRoomEngine().HasRights(Client.GetUser().HabboId, Rooms.RightsType.Founder)) { // Only Pickup as owner. return; } // Avoid junk Request.PopWiredInt32(); int ItemId = Request.PopWiredInt32(); if (ItemId <= 0) { return; } // Gain Item & Verify Item Item = null; if ((Item = BrickEngine.GetItemReactor().GetItem(ItemId)) == null) { return; } // Already moved =) if (Item.Place.Equals(ItemPlace.Inventory)) { return; } VirtualRoomEngine RoomEngine = Client.GetUser().GetRoom().GetRoomEngine(); if (RoomEngine == null) { return; } Item.RoomId = 0; if (Item.GetBaseItem().InternalType.ToLower().Equals("s")) { int OldRotation = Item.Rotation; iPoint OldPlace = Item.Point; iPoint NewPlace = new iPoint(-1, -1, 0.0); int ItemRot = 0; Item.Rotation = ItemRot; Item.Point = NewPlace; RoomEngine.HandleIncomingItemPickUp(Item, OldPlace, NewPlace, OldRotation, ItemRot, Client.GetUser().GetRoomUser()); } else { RoomEngine.HandleIncomingItemPickUp(Item, Client.GetUser().GetRoomUser()); } Client.SendResponse(new Response(101)); }
// 3001 private void GetPetInfo(Client Client, Request Request) { if (!Client.GetUser().IsInRoom) { // Outside room placing FTW. return; } int PetId = Request.PopWiredInt32(); if (PetId <= 0) { return; } PetInfo Info = BrickEngine.GetPetReactor().GetPetInfo(PetId); if (Info == null) { return; } Client.SendResponse(Info.GetInfoResponse()); }
private void TakeRights(Client Client, Request Request) { if (!Client.GetUser().IsInRoom) { return; } if (!Client.GetUser().GetRoom().GetRoomEngine().HasRights(Client.GetUser().HabboId, Rooms.RightsType.Founder)) { return; } int RemoveAmount = Request.PopWiredInt32(); for (int i = 0; i < RemoveAmount; i++) { int HabboId = Request.PopWiredInt32(); VirtualRoomUser TriggeredUser = Client.GetUser().GetRoom().GetRoomEngine().GetUserByHabboId(HabboId); if (!Client.GetUser().GetRoom().GetRoomEngine().HasRights(HabboId, Rooms.RightsType.Rights)) { return; } Client.GetUser().GetRoom().GetRoomEngine().RemoveRights(HabboId); Response Response = new Response(511); Response.AppendInt32(Client.GetUser().RoomId); Response.AppendInt32(HabboId); Client.SendResponse(Response); if (TriggeredUser != null) { TriggeredUser.GetClient().SendResponse(new Response(43)); TriggeredUser.RemoveStatus("flatctrl"); TriggeredUser.UpdateStatus(true); } // Doing Querys using (QueryReactor Reactor = BrickEngine.GetQueryReactor()) { Reactor.SetQuery("DELETE FROM private_rooms_rights WHERE user_id = @habboid AND room_id = @roomid LIMIT 1"); Reactor.AddParam("habboid", HabboId); Reactor.AddParam("roomid", Client.GetUser().RoomId); Reactor.ExcuteQuery(); } } }
private void KickUser(Client Client, Request Request) { if (!Client.GetUser().IsInRoom) { return; } if (!Client.GetUser().GetRoom().GetRoomEngine().HasRights(Client.GetUser().HabboId, Rooms.RightsType.Rights)) { return; } int HabboId = Request.PopWiredInt32(); VirtualRoomUser TriggeredUser = Client.GetUser().GetRoom().GetRoomEngine().GetUserByHabboId(HabboId); if (TriggeredUser == null) { return; } if (Client.GetUser().GetRoom().GetRoomEngine().HasRights(HabboId, Rooms.RightsType.Founder)) { Client.Notif("You can't kick the room owner.", false); return; } if (TriggeredUser.GetClient().GetUser().Rank > 1) { Client.Notif("You can't kick staff.", false); return; } Response Kick = new Response(33); Kick.AppendInt32(4008); TriggeredUser.GetClient().SendResponse(Kick); TriggeredUser.WalkFreezed = true; TriggeredUser.UnhandledGoalPoint = Client.GetUser().GetRoom().GetRoomModel().Door; }
private void TriggerSelectedItem(Client Client, Request Request) { if (!Client.GetUser().IsInRoom) { // Outside room triggering FTW. return; } if (!Client.GetUser().GetRoom().GetRoomEngine().HasRights(Client.GetUser().HabboId, Rooms.RightsType.Rights)) { // Only Trigger with rights return; } int ItemId = Request.PopWiredInt32(); if (ItemId <= 0) { return; } // Gain Item & Verify Item Item = null; if ((Item = BrickEngine.GetItemReactor().GetItem(ItemId)) == null) { return; } // Already moved =) if (Item.Place.Equals(ItemPlace.Inventory)) { return; } VirtualRoomEngine RoomEngine = Client.GetUser().GetRoom().GetRoomEngine(); if (RoomEngine == null) { return; } RoomEngine.HandleIncomingTrigger(Client.GetUser().GetRoomUser(), Item, Request.PopWiredInt32()); }
public void OpenPrivateRoom(Client Client, Request Request) { int RoomId = Request.PopWiredInt32(); string Password = Request.PopFixedString(); BeginLoadRoom(Client, RoomId, Password); }
private void UpdateEvent(Client Client, Request Request) { if (!Client.GetUser().IsInRoom) { return; } if (!Client.GetUser().GetRoom().GetRoomEngine().HasRights(Client.GetUser().HabboId, Rooms.RightsType.Founder)) { return; } int CategoryId = Request.PopWiredInt32(); string Name = BrickEngine.CleanString(Request.PopFixedString()); string Description = BrickEngine.CleanString(Request.PopFixedString()); int TagCount = Request.PopWiredInt32(); List<string> Tags = new List<string>(); for (int i = 0; i < TagCount; i++) { Tags.Add(BrickEngine.CleanString(Request.PopFixedString())); } RoomEvent Event = null; if (Client.GetUser().GetRoom().Event == null) { Event = new RoomEvent(Client.GetUser().RoomId, Name, Description, CategoryId, Tags); Client.GetUser().GetRoom().Event = Event; // Friends alert BrickEngine.GetMessengerHandler().AlertFriends(Client.GetUser().HabboId, BrickEngine.GetMessengerHandler().GetAchievedResponse(Client.GetUser().HabboId, false, Name)); } else { Event = Client.GetUser().GetRoom().Event; Event.Name = Name; Event.Description = Description; Event.Tags = Tags; } Response Response = new Response(370); Event.GetResponse(Response); Client.SendRoomResponse(Response); }
private void MovePetToRoom(Client Client, Request Request) { if (!Client.GetUser().IsInRoom) { // Outside room placing FTW. return; } if (!Client.GetUser().GetRoom().GetRoomEngine().HasRights(Client.GetUser().HabboId, Rooms.RightsType.Founder)) { // Only Place in your own room. return; } int PetId = Request.PopWiredInt32(); if (PetId <= 0) { return; } PetInfo Info = BrickEngine.GetPetReactor().GetPetInfo(PetId); if (Info == null) { return; } if (Info.UserId != Client.GetUser().HabboId) { return; } if (Client.GetUser().GetRoom().GetRoomEngine().GetPets().Count >= PetReactor.MAX_PETS_PER_ROOM) { Client.Notif(string.Format("A room can only contains {0} pets.",PetReactor.MAX_PETS_PER_ROOM), false); return; } int LimitX = Client.GetUser().GetRoom().GetRoomModel().XLength; int LimitY = Client.GetUser().GetRoom().GetRoomModel().YLength; int X = Request.PopWiredInt32(); if (X < 0 || X >= LimitX) { return; } int Y = Request.PopWiredInt32(); if (Y < 0 || Y >= LimitY) { return; } iPoint Place = new iPoint(X, Y); VirtualRoomEngine RoomEngine = BrickEngine.GetRoomReactor().GetVirtualRoom(Client.GetUser().RoomId, RoomRunningState.Alive).GetRoomEngine(); if (RoomEngine == null) { return; } Info.RoomId = Client.GetUser().RoomId; int Rot = Rotation.Calculate(Place, Client.GetUser().GetRoomUser().Point); RoomEngine.GenerateRoomPet(PetId, Place, Rot); Response RemoveMessage = new Response(604); RemoveMessage.AppendInt32(PetId); Client.SendResponse(RemoveMessage); using (QueryReactor Reactor = BrickEngine.GetQueryReactor()) { Reactor.SetQuery("UPDATE user_pets SET room_id = @roomid WHERE id = @petid LIMIT 1"); Reactor.AddParam("roomid", Client.GetUser().RoomId); Reactor.AddParam("petid", PetId); Reactor.ExcuteQuery(); } }
private void UpdateFloorItem(Client Client, Request Request) { if (!Client.GetUser().IsInRoom) { // Outside room placing FTW. return; } if (!Client.GetUser().GetRoom().GetRoomEngine().HasRights(Client.GetUser().HabboId, Rooms.RightsType.Rights)) { // Only Update with rights. return; } int LimitX = Client.GetUser().GetRoom().GetRoomModel().XLength; int LimitY = Client.GetUser().GetRoom().GetRoomModel().YLength; int ItemId = Request.PopWiredInt32(); if (ItemId <= 0) { return; } int PointX = Request.PopWiredInt32(); if (PointX < 0 || PointX >= LimitX) { return; } int PointY = Request.PopWiredInt32(); if (PointY < 0 || PointY >= LimitY) { return; } int ItemRot = Request.PopWiredInt32(); if (ItemRot < 0 || ItemRot > 6) { return; } // Gain Item & Verify Item Item = null; if ((Item = BrickEngine.GetItemReactor().GetItem(ItemId)) == null) { return; } // Still in inventory!? if (Item.Place.Equals(ItemPlace.Inventory)) { return; } VirtualRoomEngine RoomEngine = Client.GetUser().GetRoom().GetRoomEngine(); if (RoomEngine == null) { return; } int OldRotation = Item.Rotation; iPoint OldPlace = Item.Point; iPoint NewPlace = new iPoint(PointX, PointY); if (RoomEngine.LinkedPoint(Item, NewPlace, ItemRot)) { return; } Double PointZ = RoomEngine.GetTileHeight(NewPlace, Item.GetBaseItem().LengthZ, ItemId); if (PointZ < 0.0) { PointZ = RoomEngine.GetTileHeight(NewPlace); } NewPlace.Z = PointZ; // Update Info & Cache Item.Point = NewPlace; Item.Rotation = ItemRot; RoomEngine.HandleIncomingItemUpdate(Item, OldPlace, NewPlace, OldRotation, ItemRot, Client.GetUser().GetRoomUser()); }
private void UpdateHomeRoom(Client Client, Request Request) { if (!Client.GetUser().IsInRoom) { return; } int RoomId = Request.PopWiredInt32(); if (!Client.GetUser().GetRoom().GetRoomEngine().HasRights(Client.GetUser().HabboId, Rooms.RightsType.Founder)) { // You can't use anothers room. return; } if (Client.GetUser().HomeRoomId == RoomId) { return; } Client.GetUser().HomeRoomId = RoomId; Response Response = new Response(455); Response.AppendInt32(RoomId); Client.SendResponse(Response); using (QueryReactor Reactor = BrickEngine.GetQueryReactor()) { Reactor.SetQuery("UPDATE users SET home_room_id = @roomid WHERE id = @habboid LIMIT 1"); Reactor.AddParam("roomid", RoomId); Reactor.AddParam("habboid", Client.GetUser().HabboId); Reactor.ExcuteQuery(); } }
private void UpdateRoomIcon(Client Client, Request Request) { if (!Client.GetUser().IsInRoom) { return; } int Q = Request.PopWiredInt32(); if (!Client.GetUser().GetRoom().GetRoomEngine().HasRights(Client.GetUser().HabboId, Rooms.RightsType.Founder)) { return; } var Icons = new Dictionary<int, int>(); int BackgroundIcon = Request.PopWiredInt32(); if (BackgroundIcon < 1 || BackgroundIcon > 24) { BackgroundIcon = 1; } int ForegroundIcon = Request.PopWiredInt32(); if (ForegroundIcon < 0 || ForegroundIcon > 11) { ForegroundIcon = 0; } int IconsAmount = Request.PopWiredInt32(); for (int i = 0; i < IconsAmount; i++) { int SlotId = Request.PopWiredInt32(); int Icon = Request.PopWiredInt32(); if (SlotId < 0 || SlotId > 10 || Icon < 1 || Icon > 27) { continue; } if (!Icons.ContainsKey(SlotId)) { Icons.Add(SlotId, Icon); } } int x = 0; StringBuilder Query = new StringBuilder(); foreach (KeyValuePair<int, int> kvp in Icons) { if (x < Icons.Count) { Query.Append(','); } Query.Append(kvp.Key); Query.Append('.'); Query.Append(kvp.Value); x++; } Client.GetUser().GetRoom().Icon = new RoomIcon(Client.GetUser().GetRoom().Id, BackgroundIcon, ForegroundIcon, Query.ToString()); Response Response = new Response(); Response.Initialize(457); Response.AppendInt32(Client.GetUser().RoomId); Response.AppendBoolean(true); Response.Initialize(456); Response.AppendInt32(Client.GetUser().RoomId); Client.SendResponse(Response); Response Data = new Response(454); Data.AppendBoolean(false); Client.GetUser().GetRoom().GetNavigatorResponse(Data, false); Client.SendRoomResponse(Data); using (QueryReactor Reactor = BrickEngine.GetQueryReactor()) { Reactor.SetQuery("UPDATE private_rooms SET nav_icon_bg = @bg, nav_icon_fg = @fg, nav_icons = @icons WHERE id = @roomid LIMIT 1"); Reactor.AddParam("bg", BackgroundIcon); Reactor.AddParam("fg", ForegroundIcon); Reactor.AddParam("icons", Query.ToString()); Reactor.AddParam("roomid", Client.GetUser().RoomId); Reactor.ExcuteQuery(); } }