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 GetEcotronInfo(Client Client, Request Request) { Response Response = new Response(507); Response.AppendInt32(BrickEngine.GetEcotronReactor().GetTimerTime(Client.GetUser().HabboId)); Response.AppendInt32(BrickEngine.GetEcotronReactor().GetTimeToWait(Client.GetUser().HabboId)); Client.SendResponse(Response); }
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); } }
private void CheckRoomCreate(Client Client, Request Request) { int Limit = BrickEngine.GetConfigureFile().CallIntKey("max.rooms.amount"); int RoomAmount = BrickEngine.GetRoomReactor().GetMe(Client.GetUser().HabboId).Count; Response Response = new Response(512); Response.AppendBoolean(RoomAmount >= Limit); Response.AppendInt32(Limit); Client.SendResponse(Response); }
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(); } }
public void ClearLoading(Client Client, Boolean Reset) { if (Client.GetUser().IsInRoom) { Client.GetUser().RoomId = -1; } if (Client.GetUser().IsLoadingRoom) { Client.GetUser().PreparingRoomId = -1; } if (Reset) { Client.SendResponse(new Response(18)); } }
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(); } } } }
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 HandleSessionDetails(Client Client, Request Request) { Response Response = new Response(257); Response.AppendInt32(9); Response.AppendBoolean(false); Response.AppendBoolean(false); Response.AppendBoolean(true); Response.AppendBoolean(true); Response.AppendInt32(3); Response.AppendBoolean(false); Response.AppendInt32(2); Response.AppendBoolean(false); Response.AppendInt32(4); Response.AppendBoolean(true); Response.AppendInt32(5); Response.AppendStringWithBreak("dd-MM-yyyy"); Response.AppendInt32(7); Response.AppendBoolean(false); Response.AppendInt32(8); Response.AppendStringWithBreak("http://"); Response.AppendInt32(9); Response.AppendBoolean(false); Client.SendResponse(Response); }
public void GetBadges(Client Client, Request Request) { var Badges = BrickEngine.GetBadgeHandler().GetBadgesForUser(Client.GetUser().HabboId); var Equiped = BrickEngine.GetBadgeHandler().GetEquipedBadges(Client.GetUser().HabboId); Response Response = new Response(229); Response.AppendInt32(Badges.Count); foreach (Badge Badge in Badges) { Response.AppendInt32(BrickEngine.GetBadgeHandler().GetIdForBadge(Badge.BadgeCode)); Response.AppendStringWithBreak(Badge.BadgeCode); } Response.AppendInt32(Equiped.Count); foreach (Badge Badge in Equiped) { Response.AppendInt32(Badge.SlotId); Response.AppendStringWithBreak(Badge.BadgeCode); } Client.SendResponse(Response); }
private void GetPrivates(Client Client, Request Request) { Client.SendResponse(BrickEngine.GetNavigatorManager().GetPrivateResponse()); }
private void GetLastVisitedRooms(Client Client, Request Request) { Client.SendResponse(BrickEngine.GetNavigatorManager().GetLastVisited(Client)); }
private void SearchRooms(Client Client, Request Request) { string Query = string.Empty; if (Request.Length > 3) { Query = Request.PopFixedString(); } Client.SendResponse(BrickEngine.GetNavigatorManager().GetSearchResponse(Query)); }
public void PurchaseItem(int Id, Client Client, string ExtraData, int PageId) { ShopItem Item = null; if ((Item = GetShopItem(Id)) == null) { return; } Boolean CreditsToLow = false; Boolean PixelsToLow = false; if (Client.GetUser().Credits < Item.CreditsCost) { CreditsToLow = true; } if (Client.GetUser().Pixels < Item.PixelsCost) { PixelsToLow = true; } if (CreditsToLow || PixelsToLow) { Response Response = new Response(68); Response.AppendBoolean(CreditsToLow); Response.AppendBoolean(PixelsToLow); Client.SendResponse(Response); return; } if (Item.CreditsCost > 0) { Client.GetUser().Credits -= Item.CreditsCost; Client.GetUser().UpdateCredits(true); } if (Item.PixelsCost > 0) { Client.GetUser().Pixels -= Item.PixelsCost; Client.GetUser().UpdatePixels(true); } if (!Item.GetBaseItem(Item.InternalItemIds[0]).InternalType.ToLower().Equals("e")) { if (Item.GetBaseItem(Item.InternalItemIds[0]).ExternalType.ToLower().Equals("membership")) { Client.SendResponse(Item.GetPurchaseResponse(true)); ShopClubItem ClubItem = GetClubItem(Id); if (Item == null) { return; } int Type = (ClubItem.MemberShipType.ToUpper() == "VIP") ? 1 : 0; int Months = ClubItem.MonthsAmount; BrickEngine.GetMembershipHandler().DeliverMembership(Client.GetUser().HabboId, Type, Months); BrickEngine.GetPacketHandler().GetMembershipParams(Client, null); Response Rights = new Response(2); if (Client.GetUser().GetMembership() != null) { Rights.AppendInt32(Type + 1); } else { Rights.AppendInt32(0); } Client.SendResponse(Rights); BrickEngine.GetAchievementReactor().UpdateUsersAchievement(Client, 8); BrickEngine.GetAchievementReactor().UpdateUsersAchievement(Client, 9); } else { if (Item.IsDeal) { var FloorItems = new List<int>(); var WallItems = new List<int>(); Client.SendResponse(Item.GetPurchaseResponse(false)); Response ShowItems = new Response(832); ShowItems.AppendInt32(Item.InternalItemIds.Count); for (int i = 0; i < Item.Amount; i++) { foreach (int ItemId in Item.InternalItemIds) { if (Item.GetBaseItem(ItemId).InternalType.ToLower().Equals("s")) { FloorItems.Add(BrickEngine.GetItemReactor().InsertItem(Client.GetUser().HabboId, ItemId, ExtraData, -1)); } else { WallItems.Add(BrickEngine.GetItemReactor().InsertItem(Client.GetUser().HabboId, ItemId, ExtraData, -1)); } } } ShowItems.AppendInt32(1); ShowItems.AppendInt32(FloorItems.Count); foreach (int ItemId in FloorItems) { ShowItems.AppendInt32(ItemId); } ShowItems.AppendInt32(2); ShowItems.AppendInt32(WallItems.Count); foreach (int ItemId in WallItems) { ShowItems.AppendInt32(ItemId); } Client.SendResponse(ShowItems); } else { if (Item.GetBaseItem(Item.InternalItemIds[0]).InternalName.ToLower().Contains("pet")) { string[] PetData = ExtraData.Split('\n'); int PetType = -1; int PetRace = -1; string PetName = string.Empty; string PetColor = string.Empty; PetType = Convert.ToInt32(Item.GetBaseItem(Item.InternalItemIds[0]).InternalName.ToLower().Substring(6)); PetRace = Convert.ToInt32(PetData[1]); PetName = PetData[0]; PetColor = PetData[2]; int PetId = BrickEngine.GetPetReactor().GeneratePet(Client.GetUser().HabboId, PetType, PetRace, PetColor, PetName); Response ShowPet = new Response(832); ShowPet.AppendInt32(Item.Amount); ShowPet.AppendInt32(3); ShowPet.AppendInt32(Item.Amount); ShowPet.AppendInt32(PetId); Client.SendResponse(ShowPet); Response AddMessage = new Response(603); BrickEngine.GetPetReactor().GetPetInfo(PetId).GetInventoryResponse(AddMessage); Client.SendResponse(AddMessage); } Response ShowItem = new Response(832); ShowItem.AppendInt32(Item.Amount); ShowItem.AppendInt32(Item.GetBaseItem(Item.InternalItemIds[0]).InternalType.ToLower().Equals("s") ? 1 : 2); ShowItem.AppendInt32(Item.Amount); Client.SendResponse(Item.GetPurchaseResponse(false)); for (int i = 0; i < Item.Amount; i++) { ShowItem.AppendInt32(BrickEngine.GetItemReactor().InsertItem(Client.GetUser().HabboId, Item.InternalItemIds[0], ExtraData, -1)); } Client.SendResponse(ShowItem); } Client.SendResponse(new Response(101)); } } else { if (Item.IsDeal) { Client.SendResponse(Item.GetPurchaseResponse(false)); for (int i = 0; i < Item.Amount; i++) { foreach (int ItemId in Item.InternalItemIds) { BrickEngine.GetEffectsHandler().InsertEffect(Client, Item.GetBaseItem(ItemId).SpriteId, Item.GetBaseItem(ItemId).InteractorAmount); } } } else { Client.SendResponse(Item.GetPurchaseResponse(false)); for (int i = 0; i < Item.Amount; i++) { BrickEngine.GetEffectsHandler().InsertEffect(Client, Item.GetBaseItem(Item.InternalItemIds[0]).SpriteId, Item.GetBaseItem(Item.InternalItemIds[0]).InteractorAmount); } } } if (Item.CreditsCost > 0) { using (QueryReactor Reactor = BrickEngine.GetQueryReactor()) { Reactor.SetQuery("INSERT INTO user_transactions (user_id, datetime, activity) VALUES (@user_id, @datetime, @activity)"); Reactor.AddParam("user_id", Client.GetUser().HabboId); Reactor.AddParam("datetime", DateTime.Now); Reactor.AddParam("activity", -Item.CreditsCost); Reactor.ExcuteQuery(); } } }
// 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()); }
public void GetRestResponse(Client Client) { Response UsersWithoutMe = new Response(28); // Users without me (before me) UsersWithoutMe.AppendInt32(GetRoomEngine().UnitCount); // UsersCount foreach (VirtualRoomUser User in GetRoomEngine().GetUsers()) { User.GetResponse(UsersWithoutMe); } foreach (VirtualRoomUser Pet in GetRoomEngine().GetPets()) { Pet.GetResponse(UsersWithoutMe); } Client.SendResponse(UsersWithoutMe); Response StaticFurni = new Response(30); StaticFurni.AppendBoolean(false); // Habbo leaves Public Rooms? Client.SendResponse(StaticFurni); Response FloorItems = new Response(32); FloorItems.AppendInt32(GetRoomEngine().GetFloorItems().Count); // ItemCount foreach (Item FloorItem in GetRoomEngine().GetFloorItems()) { FloorItem.GetRoomResponse(FloorItems); } Client.SendResponse(FloorItems); Response WallItems = new Response(45); WallItems.AppendInt32(GetRoomEngine().GetWallItems().Count); // ItemCount foreach (Item WallItem in GetRoomEngine().GetWallItems()) { WallItem.GetRoomResponse(WallItems); } Client.SendResponse(WallItems); if (GetRoomEngine().GenerateRoomUser(Client) != null) { Response UsersWithMe = new Response(28); // Users with me (after me) UsersWithMe.AppendInt32(GetRoomEngine().UnitCount); // UsersCount foreach (VirtualRoomUser User in GetRoomEngine().GetUsers()) { User.GetResponse(UsersWithMe); if (User.DanceId > 0) { Response Dance = new Response(480); Dance.AppendInt32(User.VirtualId); Dance.AppendInt32(User.DanceId); Client.SendResponse(Dance); } if (User.Suppressed) { Response Suppressed = new Response(486); Suppressed.AppendInt32(User.VirtualId); Suppressed.AppendBoolean(true); Client.SendResponse(Suppressed); } if (BrickEngine.GetEffectsHandler().UserHasRunningEffect(User.HabboId)) { Response Response = new Response(485); Response.AppendInt32(User.VirtualId); Response.AppendInt32(BrickEngine.GetEffectsHandler().GetRunningEffect(User.HabboId).EffectId); Client.SendResponse(Response); } } foreach (VirtualRoomUser Pet in GetRoomEngine().GetPets()) { Pet.GetResponse(UsersWithMe); } Client.SendResponse(UsersWithMe); } else { BrickEngine.GetPacketHandler().ClearLoading(Client, true); return; } if (BrickEngine.GetEffectsHandler().UserHasRunningEffect(Client.GetUser().HabboId)) { Response Response = new Response(485); Response.AppendInt32(Client.GetUser().GetRoomUser().VirtualId); Response.AppendInt32(BrickEngine.GetEffectsHandler().GetRunningEffect(Client.GetUser().HabboId).EffectId); Client.SendResponse(Response); } Response Additionals = new Response(472); Additionals.AppendBoolean(AllowHideWall); Additionals.AppendInt32(WallThick); Additionals.AppendInt32(FloorThick); Client.SendResponse(Additionals); int HabboId = Client.GetUser().HabboId; if (GetRoomEngine().HasRights(Client.GetUser().HabboId, RightsType.Founder)) { Client.SendResponse(new Response(47)); Client.SendResponse(new Response(42)); VirtualRoomUser myUser = GetRoomEngine().GetUserByHabboId(Client.GetUser().HabboId); myUser.AddStatus("flatctrl useradmin", ""); } else if (GetRoomEngine().HasRights(Client.GetUser().HabboId, RightsType.Rights)) { Client.SendResponse(new Response(42)); VirtualRoomUser myUser = GetRoomEngine().GetUserByHabboId(Client.GetUser().HabboId); myUser.AddStatus("flatctrl", ""); } Response Extra = new Response(471); Extra.AppendBoolean(true); Extra.AppendInt32(Id); Extra.AppendBoolean(GetRoomEngine().HasRights(Client.GetUser().HabboId,RightsType.Founder)); // Enable Editing Client.SendResponse(Extra); Response Statusses = new Response(34); Statusses.AppendInt32(GetRoomEngine().UnitCount); // UsersCount foreach (VirtualRoomUser User in GetRoomEngine().GetUsers()) { User.GetStatusResponse(Statusses); } foreach (VirtualRoomUser Pet in GetRoomEngine().GetPets()) { Pet.GetStatusResponse(Statusses); } Client.SendResponse(Statusses); Client.SendResponse(new Response(208)); Response RoomCache = new Response(454); RoomCache.AppendBoolean(true); GetNavigatorResponse(RoomCache, false); Client.SendResponse(RoomCache); }
public void GetSecondairResponse(Client Client) { Response PasteLink = new Response(166); PasteLink.AppendStringWithBreak("/client/private/" + Id + "/id"); Client.SendResponse(PasteLink); Response ModelParams = new Response(69); ModelParams.AppendStringWithBreak(ModelParam.ToLower()); ModelParams.AppendInt32(Id); Client.SendResponse(ModelParams); Response Environment = new Response(); if (!Wallpaper.Equals("0.0")) { Environment.Initialize(46); Environment.AppendStringWithBreak("wallpaper"); Environment.AppendStringWithBreak(Wallpaper); } if (!Floor.Equals("0.0")) { Environment.Initialize(46); Environment.AppendStringWithBreak("floor"); Environment.AppendStringWithBreak(Floor); } Environment.Initialize(46); Environment.AppendStringWithBreak("landscape"); Environment.AppendStringWithBreak(Landscape); Environment.Initialize(345); if (GetRoomEngine().HasRights(Client.GetUser().HabboId, RightsType.Founder) || Client.GetUser().VotedRooms.Contains(Id)) { Environment.AppendInt32(Rating); } else { Environment.AppendInt32(-1); } Environment.Initialize(370); if (Event != null) { Event.GetResponse(Environment); } else { Environment.AppendRawInt32(-1); Environment.AppendChar(2); } Client.SendResponse(Environment); }
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(); } }
public void RedeemPresent(Client Client, Item Item) { iPoint OldPlace = Item.Point; int OldRot = Item.Rotation; iPoint NewPlace = new iPoint(-1, -1); int NewRot = 0; Client.GetUser().GetRoom().GetRoomEngine().HandleIncomingItemPickUp(Item, OldPlace, NewPlace, OldRot, NewRot, Client.GetUser().GetRoomUser()); Item.RoomId = 0; Item.Rotation = NewRot; Item.Point = NewPlace; Item.BaseId = Item.InsideItemId; Item.InsideItemId = -1; Response ResponseA = new Response(219); ResponseA.AppendInt32(Item.Id); Client.SendResponse(ResponseA); Response ResponseB = new Response(129); ResponseB.AppendStringWithBreak(Item.GetBaseItem().InternalType.ToLower()); ResponseB.AppendInt32(Item.GetBaseItem().SpriteId); ResponseB.AppendStringWithBreak(Item.GetBaseItem().InternalName); Client.SendResponse(ResponseB); Response Response = new Response(832); Response.AppendInt32(1); Response.AppendInt32(Item.GetBaseItem().InternalType.ToLower().Equals("s") ? 1 : 2); Response.AppendInt32(1); Response.AppendInt32(Item.Id); Client.SendResponse(Response); Client.SendResponse(new Response(101)); using (QueryReactor Reactor = BrickEngine.GetQueryReactor()) { Reactor.SetQuery("UPDATE items SET base_id = @baseid, inside_base_id = '-1' WHERE id = @itemid LIMIT 1"); Reactor.AddParam("baseid", Item.BaseId); Reactor.AddParam("itemid", Item.Id); Reactor.ExcuteQuery(); } }
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 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 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 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 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 GetFavoriteRooms(Client Client, Request Request) { Client.SendResponse(BrickEngine.GetNavigatorManager().GetFavoriteRooms(Client)); }
private void ActivateLoading(Client Client, Request Request) { Response Response = new Response(297); Response.AppendBoolean(false); Client.SendResponse(Response); }
private void GetMe(Client Client, Request Request) { Client.SendResponse(BrickEngine.GetNavigatorManager().GetResponseForUser(Client)); }
public Boolean BeginEnterRoom(Client Client, string Password) { RoomEnterMessage EnterMessage = TryEnterRoom(Client,Password); if (!EnterMessage.Equals(RoomEnterMessage.Accepted)) { Response ErrorResponse = new Response(); if (EnterMessage.Equals(RoomEnterMessage.Banned)) { ErrorResponse.Initialize(224); ErrorResponse.AppendInt32(4); ErrorResponse.Initialize(18); Client.SendResponse(ErrorResponse); return false; } else if (EnterMessage.Equals(RoomEnterMessage.LimitUsers)) { ErrorResponse.Initialize(224); ErrorResponse.AppendInt32(1); ErrorResponse.Initialize(18); Client.SendResponse(ErrorResponse); return false; } else if (EnterMessage.Equals(RoomEnterMessage.NoAnswer)) { Client.SendResponse(new Response(131)); return false; } else if (EnterMessage.Equals(RoomEnterMessage.WrongPassword)) { ErrorResponse.Initialize(33); ErrorResponse.AppendInt32(-100002); ErrorResponse.Initialize(18); Client.SendResponse(ErrorResponse); return false; } } else { Client.SendResponse(new Response(19)); return true; } return false; }
private void GetRooms(Client Client, Request Request) { int Category = int.Parse(Request.PopFixedString()); Client.SendResponse(BrickEngine.GetNavigatorManager().GetRoomsResponse(Category)); }
public void GetMapsResponse(Client Client) { Response Premair = new Response(31); Premair.AppendStringWithBreak(GetRoomModel().GetPremairParams()); Client.SendResponse(Premair); Response Secondair = new Response(470); Secondair.AppendStringWithBreak(GetRoomModel().GetSecondairParams()); Client.SendResponse(Secondair); }