private void CreateRoom(Client Client, Request Request) { int Limit = BrickEngine.GetConfigureFile().CallIntKey("max.rooms.amount"); int RoomAmount = BrickEngine.GetRoomReactor().GetMe(Client.GetUser().HabboId).Count; if (RoomAmount >= Limit) { Client.Notif("You're over the rooms limit, first delete a room before you create a new one.", false); return; } string RawName = Request.PopFixedString(); string RawModel = Request.PopFixedString(); int RoomId = -1; if ((RoomId = BrickEngine.GetRoomReactor().CreateRoom(Client, RawName, RawModel)) > 0) { Response Response = new Response(59); Response.AppendInt32(RoomId); Response.AppendStringWithBreak(BrickEngine.CleanString(RawName)); Client.SendResponse(Response); } else { CheckRoomCreate(Client, null); } }
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 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 HandleTicket(Client Client, Request Request) { string Ticket = Request.PopFixedString(); Client.ParseUser(BrickEngine.GetUserReactor().HandleTicket(Ticket)); if (Client.IsValidUser) { if (BrickEngine.GetToolReactor().IsBanned(Client.GetUser().HabboId, Client.IPAddress)) { Client.Dispose(); return; } Response Userhash = new Response(439); Userhash.AppendStringWithBreak(Client.GetUser().Hash); Client.SendResponse(Userhash); Client.SendResponse(new Response(3)); if (BrickEngine.GetConfigureFile().CallBooleanKey("welcomemessage.enabled")) { Client.LongNotif(string.Empty); } Client.SendResponse(Client.GetUser().GetLoginResponse()); Client.Authenticated = true; Client.SendResponse(BrickEngine.GetToolReactor().GetResponse(Client)); } else { Client.Notif("Invalid Ticket, try again!", false); Client.Dispose(); } }
private void ChangeName(Client Client, Request Request) { string Username = BrickEngine.CleanString(Request.PopFixedString()); Boolean UpdatedName = false; if (!Client.GetUser().Username.ToLower().Equals(Username.ToLower())) { foreach (VirtualRoom Room in BrickEngine.GetRoomReactor().GetMe(Client.GetUser().HabboId)) { if (Room.InternalState.Equals(RoomRunningState.Alive)) { Boolean IsMatch = false; if (Regex.IsMatch(Room.Name.ToLower(), Client.GetUser().Username.ToLower())) { Room.Name = Room.Name.Replace(Client.GetUser().Username, Username); IsMatch = true; } if (Regex.IsMatch(Room.Description.ToLower(), Client.GetUser().Username.ToLower())) { Room.Description = Room.Description.Replace(Client.GetUser().Username, Username); IsMatch = true; } if (IsMatch) { using (QueryReactor Reactor = BrickEngine.GetQueryReactor()) { Reactor.SetQuery("UPDATE private_rooms SET name = @name, description = @desc WHERE id = @roomid LIMIT 1"); Reactor.AddParam("name", Room.Name); Reactor.AddParam("desc", Room.Description); Reactor.AddParam("roomid", Room.Id); Reactor.ExcuteQuery(); } Response Data = new Response(454); Data.AppendBoolean(true); Room.GetNavigatorResponse(Data, false); Client.SendRoomResponse(Data); } } } Client.GetUser().Username = Username; Client.GetUser().RefreshUser(); Client.Notif("Successfully changed name, reload your room to see changes.", false); if (Client.GetUser().EnableShowOnline) { lock (Client.GetUser().MessengerLocker) { BrickEngine.GetMessengerHandler().AlertStatusFriends(Client.GetUser(), true); } } UpdatedName = true; } Client.GetUser().ProgressedNewbie = true; Response Response = new Response(); Response.Initialize(571); Response.AppendBoolean(false); Response.AppendStringWithBreak(Username); Response.AppendBoolean(false); Response.Initialize(570); Response.AppendBoolean(false); Response.AppendStringWithBreak(Username); Response.AppendBoolean(false); Client.SendResponse(Response); BrickEngine.GetAchievementReactor().UpdateUsersAchievement(Client, 4); using (QueryReactor Reactor = BrickEngine.GetQueryReactor()) { Reactor.SetQuery("UPDATE users SET changed_name = '1' WHERE id = @habboid"); Reactor.AddParam("habboid", Client.GetUser().HabboId); Reactor.ExcuteQuery(); } if (UpdatedName) { using (QueryReactor Reactor = BrickEngine.GetQueryReactor()) { Reactor.SetQuery("UPDATE users SET username = @username WHERE id = @habboid"); Reactor.AddParam("habboid", Client.GetUser().HabboId); Reactor.AddParam("username", Username); Reactor.ExcuteQuery(); } } }
private void UpdateLook(Client Client, Request Request) { string Gender = Request.PopFixedString(); string Look = Request.PopFixedString(); Client.GetUser().Gender = Gender; Client.GetUser().Look = Look; Client.GetUser().RefreshUser(); using (QueryReactor Reactor = BrickEngine.GetQueryReactor()) { Reactor.SetQuery("UPDATE users SET look = @look, gender = @gender WHERE id = @habboid LIMIT 1"); Reactor.AddParam("look", Look); Reactor.AddParam("gender", Gender.ToUpper()); Reactor.AddParam("habboid", Client.GetUser().HabboId); Reactor.ExcuteQuery(); } }
private void PurchaseShopItem(Client Client, Request Request) { int PageId = Request.PopWiredInt32(); int ItemId = Request.PopWiredInt32(); string ExtraData = Request.PopFixedString(); BrickEngine.GetShopReactor().PurchaseItem(ItemId, Client, ExtraData, -1); }
private void SerializePetRaces(Client Client, Request Request) { string PetType = Request.PopFixedString(); int Type = Convert.ToInt32(PetType.Substring(6)); if (Type < 0) { return; } Response Response = new Response(827); PetRace PetRace = BrickEngine.GetShopReactor().SelectPetRace(Type); if (PetRace == null) { System.Data.DataRow Row = new DataTable().Rows[0]; Row[0] = 1; Row[1] = Type; Row[2] = 0; Row[3] = 0; PetRace = new PetRace(Row); } Response.AppendStringWithBreak("a0 pet" + Type); Response.AppendInt32(PetRace.RaceAmount); for (int i = PetRace.StartIndexer; i < PetRace.RaceAmount; i++) { Response.AppendInt32(Type); Response.AppendInt32(i); Response.AppendBoolean(true); Response.AppendBoolean(false); } Client.SendResponse(Response); }
private void CheckNewName(Client Client, Request Request) { string Username = BrickEngine.CleanString(Request.PopFixedString()); if (Username.ToLower().Equals(Client.GetUser().Username)) { return; } int ErrorMessage = 0; if (Username.Length < 3) { ErrorMessage = 2; } else if (Username.Length > 15) { ErrorMessage = 3; } else if (string.IsNullOrWhiteSpace(Username) || string.IsNullOrEmpty(Username)) { ErrorMessage = 4; } else if (!BrickEngine.GetUserReactor().GetId(Username).Equals(0)) { ErrorMessage = 5; } else if (!BrickEngine.GetConfigureFile().CallBooleanKey("welcome.changename")) { ErrorMessage = 6; } Response Response = new Response(571); Response.AppendInt32(ErrorMessage); Response.AppendStringWithBreak(Username); if (ErrorMessage.Equals(5)) { char[] RandomChars = new char[] { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', '1', '2', '3', '4', 'x', 'y', 'z', '?', '!' }; Response.AppendInt32(5); for (int i = 0; i < 6; i++) { Response.AppendStringWithBreak( string.Format("{0}{1}", Username, string.Format("{0}{1}{2}", RandomChars[BrickEngine.Random.Next(0, RandomChars.Length - 1)], RandomChars[BrickEngine.Random.Next(0, RandomChars.Length - 1)], RandomChars[BrickEngine.Random.Next(0, RandomChars.Length - 1)]))); } } else { Response.AppendInt32(0); } Client.SendResponse(Response); }
private void SearchUsers(Client Client, Request Request) { string Query = BrickEngine.CleanString(Request.PopFixedString()); Client.SendResponse(BrickEngine.GetMessengerHandler().SearchUsers(Client.GetUser().HabboId, Query)); }
private void IgnoreUser(Client Client, Request Request) { if (!Client.GetUser().IsInRoom) { return; } string TriggeredUsername = Request.PopFixedString(); int HabboId = BrickEngine.GetUserReactor().GetId(TriggeredUsername); VirtualRoomUser TriggeredUser = Client.GetUser().GetRoom().GetRoomEngine().GetUserByHabboId(HabboId); if (TriggeredUser == null) { return; } if (TriggeredUser.GetClient().GetUser().Rank > 1) { Client.Notif("You can't ignore staff.", false); return; } if (Client.GetUser().HasIgnoredUser(HabboId)) { return; } Client.GetUser().IgnoredUsers.Add(HabboId); Response Response = new Response(419); Response.AppendBoolean(true); Client.SendResponse(Response); using (QueryReactor Reactor = BrickEngine.GetQueryReactor()) { Reactor.SetQuery("INSERT INTO user_ignores (user_id, ignore_id) VALUES (@userid, @ignoreid)"); Reactor.AddParam("userid", Client.GetUser().HabboId); Reactor.AddParam("ignoreid", HabboId); Reactor.ExcuteQuery(); } }
public void OpenPrivateRoom(Client Client, Request Request) { int RoomId = Request.PopWiredInt32(); string Password = Request.PopFixedString(); BeginLoadRoom(Client, RoomId, Password); }
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 Talk(Client Client, Request Request) { if (!Client.GetUser().IsInRoom) { return; } if (Client.GetUser().Muted) { Client.Notif("You're muted.", false); return; } string Message = Request.PopFixedString(); Message = BrickEngine.CleanString(Message); int Emoticon = Client.GetUser().GetRoomUser().GetEmoticon(Message); Client.GetUser().GetRoomUser().Talk(Message, Rooms.Virtual.Units.SpeechType.Talk, Emoticon, ""); }
private void UpdateClothe(Client Client, Request Request) { Membership Membership = Client.GetUser().GetMembership(); if (Membership == null) { return; } int SlotId = Request.PopWiredInt32(); string Look = BrickEngine.CleanString(Request.PopFixedString()); string Gender = BrickEngine.CleanString(Request.PopFixedString()); var LeakedRow = new Dictionary<int, Object>(); SecurityCounter Counter = new Security.SecurityCounter(-1); LeakedRow[Counter.Next] = Client.GetUser().HabboId; LeakedRow[Counter.Next] = SlotId; LeakedRow[Counter.Next] = Look; LeakedRow[Counter.Next] = Gender; Clothe LeakedClothe = new Clothe(LeakedRow); BrickEngine.GetClothesHandler().UpdateClothe(LeakedClothe.HabboId, LeakedClothe); }
private void UpdateBadge(Client Client, Request Request) { var Badges = BrickEngine.GetBadgeHandler().GetBadgesForUser(Client.GetUser().HabboId);; // Null every badge ready for update foreach (Badge Badge in Badges) { Badge.SlotId = 0; } // Check new badge updates while (Request.RemainingLength > 0) { int SlotId = Request.PopWiredInt32(); string Badge = Request.PopFixedString(); Badge SelectedBadge = BrickEngine.GetBadgeHandler().GetBadge(Badge, Client.GetUser().HabboId); if (SelectedBadge != null) { SelectedBadge.SlotId = SlotId; } } // Cache Equiped Badges Again for Update var Equiped = BrickEngine.GetBadgeHandler().GetEquipedBadges(Client.GetUser().HabboId); // Send update response Response Response = new Response(228); Response.AppendInt32(Client.GetUser().HabboId); Response.AppendInt32(Equiped.Count); foreach (Badge Badge in Equiped) { Response.AppendInt32(Badge.SlotId); Response.AppendStringWithBreak(Badge.BadgeCode); } if (Client.GetUser().IsInRoom) { Client.SendRoomResponse(Response); } else { Client.SendResponse(Response); } foreach (Badge Badge in Badges) { using (QueryReactor Reactor = BrickEngine.GetQueryReactor()) { Reactor.SetQuery("UPDATE user_badges SET slot_id = @slotid WHERE badge = @badge AND user_id = @habboid LIMIT 1"); Reactor.AddParam("slotid", Badge.SlotId); Reactor.AddParam("badge", Badge.BadgeCode); Reactor.AddParam("habboid", Client.GetUser().HabboId); Reactor.ExcuteQuery(); } } }
private void UnIgnoreUser(Client Client, Request Request) { if (!Client.GetUser().IsInRoom) { return; } string TriggeredUsername = Request.PopFixedString(); int HabboId = BrickEngine.GetUserReactor().GetId(TriggeredUsername); VirtualRoomUser TriggeredUser = Client.GetUser().GetRoom().GetRoomEngine().GetUserByHabboId(HabboId); if (TriggeredUser == null) { return; } if (!Client.GetUser().HasIgnoredUser(HabboId)) { return; } Client.GetUser().IgnoredUsers.Remove(HabboId); Response Response = new Response(419); Response.AppendInt32(3); Client.SendResponse(Response); using (QueryReactor Reactor = BrickEngine.GetQueryReactor()) { Reactor.SetQuery("DELETE FROM user_ignores WHERE user_id = @userid AND ignore_id = @ignoreid LIMIT 1"); Reactor.AddParam("userid", Client.GetUser().HabboId); Reactor.AddParam("ignoreid", HabboId); Reactor.ExcuteQuery(); } }
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 UpdateMotto(Client Client, Request Request) { string Motto = BrickEngine.CleanString(Request.PopFixedString()); Client.GetUser().Motto = Motto; Client.GetUser().RefreshUser(); using (QueryReactor Reactor = BrickEngine.GetQueryReactor()) { Reactor.SetQuery("UPDATE users SET motto = @motto WHERE id = @habboid LIMIT 1"); Reactor.AddParam("motto", Motto); Reactor.AddParam("habboid", Client.GetUser().HabboId); Reactor.ExcuteQuery(); } BrickEngine.GetStreamHandler().AddStream(Client.GetUser().HabboId, Users.Handlers.Messenger.Streaming.StreamType.EditedMotto, Motto); }
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 Whisper(Client Client, Request Request) { if (!Client.GetUser().IsInRoom) { return; } if (Client.GetUser().Muted) { Client.Notif("You're muted.", false); return; } string Params = Request.PopFixedString(); string TriggerdUserName = Params.Split(' ')[0]; string Message = Params.Replace(TriggerdUserName + ' ',""); int Emoticon = Client.GetUser().GetRoomUser().GetEmoticon(Message); Client.GetUser().GetRoomUser().Talk(Message, Rooms.Virtual.Units.SpeechType.Whisper, Emoticon, TriggerdUserName); }
private void MoveItemToRoom(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 LimitX = Client.GetUser().GetRoom().GetRoomModel().XLength; int LimitY = Client.GetUser().GetRoom().GetRoomModel().YLength; int RoomId = Client.GetUser().RoomId; if (RoomId <= 0) { return; } // Get Point + Item Info. string PointInfo = Request.PopFixedString(); // Split them in a array. string[] InfoSplit = PointInfo.Split(' '); // Gain ItemId & Verify int ItemId = BrickEngine.GetConvertor().ObjectToInt32(InfoSplit[0]); if (ItemId <= 0) { return; } VirtualRoomEngine RoomEngine = BrickEngine.GetRoomReactor().GetVirtualRoom(RoomId, RoomRunningState.Alive).GetRoomEngine(); if (RoomEngine == null) { return; } if (InfoSplit[1].Contains(':')) { string Verify = RoomEngine.VerifyWallPosition(PointInfo.Substring(Array.IndexOf(PointInfo.ToCharArray(), ':'))); if (string.IsNullOrEmpty(Verify) || !Verify.StartsWith(":")) { return; } // Gain Item & Verify Item Item = null; if ((Item = BrickEngine.GetItemReactor().GetItem(ItemId)) == null) { return; } Item.RoomId = RoomId; Item.WallPoint = Verify; RoomEngine.HandleIncomingItem(Item, Verify, Client.GetUser().GetRoomUser()); } else { // Gain Point X & Verify int PointX = BrickEngine.GetConvertor().ObjectToInt32(InfoSplit[1]); if (PointX < 0 || PointX >= LimitX) { return; } // Gain Point Y & Verify int PointY = BrickEngine.GetConvertor().ObjectToInt32(InfoSplit[2]); if (PointY < 0 || PointY >= LimitY) { return; } // Gain Item Rot & Verify int ItemRot = BrickEngine.GetConvertor().ObjectToInt32(InfoSplit[3]); if (ItemRot < 0 || ItemRot > 6) { return; } // Gain Item & Verify Item Item = null; if ((Item = BrickEngine.GetItemReactor().GetItem(ItemId)) == null) { return; } // Already in a room if (Item.Place.Equals(ItemPlace.Room)) { return; } 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; Item.RoomId = RoomId; RoomEngine.HandleIncomingItem(Item, NewPlace, ItemRot, Client.GetUser().GetRoomUser()); } Response Response = new Response(99); Response.AppendInt32(ItemId); Client.SendResponse(Response); }
private void GetMarketPlaceOffers(Client Client, Request Request) { int MinimalPrice = Request.PopWiredInt32(); int MaximalPrice = Request.PopWiredInt32(); string Query = Request.PopFixedString(); int OrderState = Request.PopWiredInt32(); Client.SendResponse(BrickEngine.GetMarketplaceReactor().GetResponse(MinimalPrice, MaximalPrice, Query, OrderState)); }
private void SearchRooms(Client Client, Request Request) { string Query = string.Empty; if (Request.Length > 3) { Query = Request.PopFixedString(); } Client.SendResponse(BrickEngine.GetNavigatorManager().GetSearchResponse(Query)); }
private void GetPetName(Client Client, Request Request) { string PetName = BrickEngine.CleanString(Request.PopFixedString()); Response Response = new Response(36); Response.AppendInt32(BrickEngine.GetPetReactor().NameCheckResult(PetName)); Client.SendResponse(Response); }
private void GetRooms(Client Client, Request Request) { int Category = int.Parse(Request.PopFixedString()); Client.SendResponse(BrickEngine.GetNavigatorManager().GetRoomsResponse(Category)); }
private void RequestUser(Client Client, Request Request) { string Username = Request.PopFixedString(); int HabboId = BrickEngine.GetUserReactor().GetId(Username); if (!BrickEngine.GetUserReactor().GetEnableNewFriends(HabboId)) { Response Response = new Response(260); Response.AppendInt32(39); Response.AppendInt32(3); Client.SendResponse(Response); return; } if (HabboId > 0) { BrickEngine.GetMessengerHandler().RequestUser(Client.GetUser().HabboId, HabboId); } }