public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request, Yupi.Protocol.IRouter router) { uint itemId = request.GetUInt32(); uint count = request.GetUInt32(); /* * if (session?.GetHabbo() == null) * return; * Room room = session.GetHabbo().CurrentRoom; * * if (room == null || !room.CheckRights(session, true)) * return; * * RoomItem item = room.GetRoomItemHandler().GetItem(itemId); * * if (item == null) * return; * * string extraData = "state"+Convert.ToChar(9)+"0"; * * for (uint i = 1; i <= count; i++) * extraData = extraData + Convert.ToChar(9) + request.GetString(); * * item.ExtraData = extraData; * * room.GetRoomItemHandler().SetFloorItem(session, item, item.X, item.Y, item.Rot, false, false, true); */ throw new NotImplementedException(); }
public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request, Yupi.Protocol.IRouter router) { uint pollId = request.GetUInt32(); uint questionId = request.GetUInt32(); int lineCount = request.GetInteger(); List <string> list = new List <string>(); for (int i = 0; i < lineCount; i++) { list.Add(request.GetString()); } // TODO Is a windows line carriage required? string text = string.Join("\r\n", list); /* * Poll poll = Yupi.GetGame().GetPollManager().TryGetPollById(pollId); * * if (poll != null && poll.Type == PollType.Matching) * { * if (text == "1") * poll.AnswersPositive++; * else * poll.AnswersNegative++; * * router.GetComposer<MatchingPollAnsweredMessageComposer> ().Compose (session, session.GetHabbo ().Id, text); * session.GetHabbo().AnsweredPool = true; * * return; * } * * session.GetHabbo().AnsweredPolls.Add(pollId); * * using (IQueryAdapter queryReactor = Yupi.GetDatabaseManager().GetQueryReactor()) * { * queryReactor.SetQuery( * "INSERT INTO users_polls VALUES (@userid , @pollid , @questionid , '1' , @answer)"); * * queryReactor.AddParameter("userid", session.GetHabbo().Id); * queryReactor.AddParameter("pollid", pollId); * queryReactor.AddParameter("questionid", questionId); * queryReactor.AddParameter("answer", text); * queryReactor.RunQuery(); * } */ throw new NotImplementedException(); }
public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request, Yupi.Protocol.IRouter router) { uint botId = request.GetUInt32(); /* * Yupi.Messages.Rooms room = Yupi.GetGame().GetRoomManager().GetRoom(session.GetHabbo().CurrentRoomId); * RoomUser bot = room.GetRoomUserManager().GetBot(botId); * * if (session?.GetHabbo() == null || session.GetHabbo().GetInventoryComponent() == null || bot == null || * !room.CheckRights(session, true)) * return; * * session.GetHabbo().GetInventoryComponent().AddBot(bot.BotData); * * using (IQueryAdapter queryreactor2 = Yupi.GetDatabaseManager().GetQueryReactor()) { * queryreactor2.SetQuery ("UPDATE bots_data SET room_id = '0' WHERE id = @id"); * queryreactor2.AddParameter ("id", botId); * queryreactor2.RunQuery (); * } * room.GetRoomUserManager().RemoveBot(bot.VirtualId, false); * bot.BotData.WasPicked = true; * * router.GetComposer<BotInventoryMessageComposer> ().Compose (session, session.GetHabbo ().GetInventoryComponent ()._inventoryBots); */ throw new NotImplementedException(); }
public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage message, Yupi.Protocol.IRouter router) { int targetUserId = message.GetInteger(); message.GetUInt32(); // TODO Unknown int duration = message.GetInteger(); Room room = session.Room; if (room == null || !room.Data.ModerationSettings.CanMute(session.Info)) { return; } UserEntity targetUser = room.GetEntity(targetUserId) as UserEntity; if (targetUser == null || targetUser.UserInfo.Rank >= session.Info.Rank) { return; } room.Data.MutedEntities.Add(new RoomMute() { Entity = targetUser.UserInfo, ExpiresAt = DateTime.Now.AddMinutes(duration) }); targetUser.User.Router.GetComposer <SuperNotificationMessageComposer>() .Compose(targetUser.User, T._("Notice"), string.Format(T._("The owner of the room has muted you for {0} minutes!"), duration), "", "", "", 4); }
public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request, Yupi.Protocol.IRouter router) { uint userId = request.GetUInt32(); uint roomId = request.GetUInt32(); /* * Room room = Yupi.GetGame().GetRoomManager().GetRoom(roomId); * * if (room == null) * return; * * room.Unban(userId); * * router.GetComposer<RoomUnbanUserMessageComposer> ().Compose (session, roomId, userId); */ throw new NotImplementedException(); }
public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request, Yupi.Protocol.IRouter router) { uint groupId = request.GetUInt32(); throw new NotImplementedException(); /* * Group group = Yupi.GetGame().GetGroupManager().GetGroup(groupId); * Habbo user = session.GetHabbo(); * * if (!group.Members.ContainsKey(user.Id)) * { // TODO Magic number !!! * if (group.State == 0) * { * using (IQueryAdapter queryReactor = Yupi.GetDatabaseManager().GetQueryReactor()) * { * queryReactor.SetQuery ("INSERT INTO group_members (group_id, user_id, rank, date_join) VALUES (@group_id, @user_id, @rank, @timestamp)"); * queryReactor.AddParameter("group_id", groupId); * queryReactor.AddParameter("user_id", user.Id); * queryReactor.AddParameter("rank", 0); * queryReactor.AddParameter("timestamp", Yupi.GetUnixTimeStamp()); * queryReactor.RunQuery (); * * queryReactor.SetQuery ("UPDATE user_stats SET favourite_group = @group_id WHERE id = @user_id"); * queryReactor.AddParameter("group_id", groupId); * queryReactor.AddParameter("user_id", user.Id); * queryReactor.RunQuery (); * } * * group.Members.Add(user.Id, * new GroupMember(user.Id, user.Name, user.Look, group.Id, 0, Yupi.GetUnixTimeStamp())); * * session.GetHabbo().UserGroups.Add(group.Members[user.Id]); * } * else * { * if (!group.Requests.ContainsKey(user.Id)) * { * using (IQueryAdapter queryReactor = Yupi.GetDatabaseManager ().GetQueryReactor ()) { * queryReactor.SetQuery ("INSERT INTO groups_requests (user_id, group_id) VALUES (@user_id, @group_id)"); * queryReactor.AddParameter("group_id", groupId); * queryReactor.AddParameter("user_id", user.Id); * queryReactor.RunQuery (); * } * * GroupMember groupRequest = new GroupMember(user.Id, user.Name, user.Look, group.Id, 0, * Yupi.GetUnixTimeStamp()); * * group.Requests.Add(user.Id, groupRequest); * } * } * * router.GetComposer<GroupDataMessageComposer> ().Compose (session, group, session.GetHabbo()); * }*/ }
public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request, Yupi.Protocol.IRouter router) { request.GetUInt32(); // TODO Unused! session.Info.FavouriteGroup = null; UserRepository.Save(session.Info); router.GetComposer <FavouriteGroupMessageComposer>().Compose(session, session.Info.Id); router.GetComposer <ChangeFavouriteGroupMessageComposer>().Compose(session, null, 0); }
public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request, Yupi.Protocol.IRouter router) { uint pId = request.GetUInt32(); string gender = request.GetString(); string look = request.GetString(); /* * * Yupi.Messages.Rooms room = session.GetHabbo().CurrentRoom; * * RoomItem item = room?.GetRoomItemHandler().GetItem(pId); * * if (item == null || item.GetBaseItem().InteractionType != Interaction.FootballGate) * return; * * string[] figures = item.ExtraData.Split(','); * string[] newFigures = new string[2]; * * switch (gender.ToUpper()) * { * case "M": * { * newFigures[0] = look; * * newFigures[1] = figures.Length > 1 ? figures[1] : "hd-99999-99999.ch-630-62.lg-695-62"; * * item.ExtraData = string.Join(",", newFigures); * } * break; * * case "F": * { * newFigures[0] = !string.IsNullOrWhiteSpace(figures[0]) ? figures[0] : "hd-99999-99999.lg-270-62"; * * newFigures[1] = look; * * item.ExtraData = string.Join(",", newFigures); * } * break; * } * * using (IQueryAdapter queryReactor = Yupi.GetDatabaseManager().GetQueryReactor()) * { * queryReactor.SetQuery("UPDATE items_rooms SET extra_data = @extraData WHERE id = @id"); * queryReactor.AddParameter("extraData", item.ExtraData); * queryReactor.AddParameter("id", item.Id); * queryReactor.RunQuery(); * } * * router.GetComposer<UpdateRoomItemMessageComposer> ().Compose (session, item); */ throw new NotImplementedException(); }
// TODO Refactor public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request, Yupi.Protocol.IRouter router) { uint num = request.GetUInt32(); uint num2 = request.GetUInt32(); throw new NotImplementedException(); /* * Group group = Yupi.GetGame().GetGroupManager().GetGroup(num); * * if (session.GetHabbo().Id != group.CreatorId || !group.Members.ContainsKey(num2) || * !group.Admins.ContainsKey(num2)) * return; * * group.Members[num2].Rank = 0; * group.Admins.Remove(num2); * * router.GetComposer<GroupMembersMessageComposer> ().Compose (session, group, 0u, session); * * Yupi.Messages.Rooms room = Yupi.GetGame().GetRoomManager().GetRoom(group.RoomId); * RoomUser roomUserByHabbo = room?.GetRoomUserManager().GetRoomUserByHabbo(Yupi.GetHabboById(num2).Name); * * if (roomUserByHabbo != null) * { * if (roomUserByHabbo.Statusses.ContainsKey("flatctrl 1")) * roomUserByHabbo.RemoveStatus("flatctrl 1"); * * router.GetComposer<RoomRightsLevelMessageComposer> ().Compose (session, 0); * roomUserByHabbo.UpdateNeeded = true; * } * * using (IQueryAdapter queryReactor = Yupi.GetDatabaseManager ().GetQueryReactor ()) { * // TODO Magic number !!! (rank) * queryReactor.SetQuery ("UPDATE groups_members SET rank = 0 WHERE group_id = @group_id AND user_id = @user_id"); * queryReactor.AddParameter("group_id", num); * queryReactor.AddParameter("user_id", num2); * queryReactor.RunQuery (); * } */ }
public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request, Yupi.Protocol.IRouter router) { uint pollId = request.GetUInt32(); // TODO Unchecked array access! /* * Poll poll = Yupi.GetGame().GetPollManager().Polls[pollId]; * * router.GetComposer<PollQuestionsMessageComposer> ().Compose (session, poll); */ throw new NotImplementedException(); }
public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request, Yupi.Protocol.IRouter router) { uint pId = request.GetUInt32(); /* * RoomItem item = session.GetHabbo().CurrentRoom.GetRoomItemHandler().GetItem(pId); * * if (item == null) * return; * * if (!item.ExtraData.Contains(Convert.ToChar(5))) * return; * * if (!session.GetHabbo().CurrentRoom.CheckRights(session, true)) * return; * * string[] array = item.ExtraData.Split(Convert.ToChar(5)); * * array[0] = session.GetHabbo().Gender.ToLower(); * array[1] = string.Empty; * * string[] array2 = session.GetHabbo().Look.Split('.'); * // TODO Use String.Join??? (need more knowlege about figure strings * foreach ( * string text in * array2.Where( * text => * !text.Contains("hr") && !text.Contains("hd") && !text.Contains("he") && !text.Contains("ea") && * !text.Contains("ha"))) * { * array[1] += text + "."; * } * * array[1] = array[1].TrimEnd('.'); * item.ExtraData = String.Join(Convert.ToChar(5).ToString(), array); * item.UpdateNeeded = true; * item.UpdateState(true, true); * * using (IQueryAdapter queryReactor = Yupi.GetDatabaseManager().GetQueryReactor()) * { * queryReactor.SetQuery("UPDATE items_rooms SET extra_data = @extraData WHERE id = @id"); * queryReactor.AddParameter("extraData", item.ExtraData); * queryReactor.AddParameter("id", item.Id); * queryReactor.RunQuery(); * } */ throw new NotImplementedException(); }
public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request, Yupi.Protocol.IRouter router) { uint roomId = request.GetUInt32(); /* * if (session.GetHabbo().UsersRooms == null) * return; * * Room room = Yupi.GetGame().GetRoomManager().GetRoom(roomId); * * if (room == null) * return; * * if (room.RoomData.Owner != session.GetHabbo().Name && session.GetHabbo().Rank <= 6u) * return; * * if (session.GetHabbo().GetInventoryComponent() != null) * session.GetHabbo().GetInventoryComponent().AddItemArray(room.GetRoomItemHandler().RemoveAllFurniture(session)); * * RoomData roomData = room.RoomData; * * Yupi.GetGame().GetRoomManager().UnloadRoom(room, "Delete room"); * Yupi.GetGame().GetRoomManager().QueueVoteRemove(roomData); * * if (roomData == null) * return; * * using (IQueryAdapter queryReactor = Yupi.GetDatabaseManager().GetQueryReactor()) * { * queryReactor.RunFastQuery($"DELETE FROM rooms_data WHERE id = {roomId}"); * queryReactor.RunFastQuery($"DELETE FROM users_favorites WHERE room_id = {roomId}"); * queryReactor.RunFastQuery($"DELETE FROM items_rooms WHERE room_id = {roomId}"); * queryReactor.RunFastQuery($"DELETE FROM rooms_rights WHERE room_id = {roomId}"); * queryReactor.RunFastQuery($"UPDATE users SET home_room = '0' WHERE home_room = {roomId}"); * } * * // TODO Remove those damn $ strings... * if (session.GetHabbo().Rank > 5u && session.GetHabbo().Name != roomData.Owner) * Yupi.GetGame().GetModerationTool().LogStaffEntry(session.GetHabbo().Name, roomData.Name, "Room deletion", $"Deleted room ID {roomData.Id}"); * * RoomData roomData2 = (from p in session.GetHabbo().UsersRooms where p.Id == roomId select p).SingleOrDefault(); * * if (roomData2 != null) * session.GetHabbo().UsersRooms.Remove(roomData2); */ throw new NotImplementedException(); }
public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage message, Yupi.Protocol.IRouter router) { uint num = message.GetUInt32(); throw new NotImplementedException(); /* * CatalogItem catalogItem = Yupi.GetGame().GetCatalogManager().GetItemFromOffer(num); * * if (catalogItem == null || CatalogManager.LastSentOffer == num) * return; * * CatalogManager.LastSentOffer = num; * * router.GetComposer<CatalogOfferMessageComposer> ().Compose (session, catalogItem);*/ }
public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request, Yupi.Protocol.IRouter router) { uint roomId = request.GetUInt32(); /* * session.GetHabbo().FavoriteRooms.Remove(roomId); * router.GetComposer<FavouriteRoomsUpdateMessageComposer> ().Compose (session, roomId, false); * * using (IQueryAdapter queryReactor = Yupi.GetDatabaseManager().GetQueryReactor()) { * queryReactor.SetQuery ("DELETE FROM users_favorites WHERE user_id = @user AND room_id = @room"); * queryReactor.AddParameter ("user", session.GetHabbo ().Id); * queryReactor.AddParameter ("room", roomId); * queryReactor.RunQuery (); * } */ throw new NotImplementedException(); }
public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request, Yupi.Protocol.IRouter router) { uint pollId = request.GetUInt32(); /* * session.GetHabbo().AnsweredPolls.Add(pollId); * * using (IQueryAdapter queryReactor = Yupi.GetDatabaseManager().GetQueryReactor()) * { * queryReactor.SetQuery("INSERT INTO users_polls VALUES (@userid , @pollid , 0 , '0' , '')"); * queryReactor.AddParameter("userid", session.GetHabbo().Id); * queryReactor.AddParameter("pollid", pollId); * queryReactor.RunQuery(); * } */ throw new NotImplementedException(); }
public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request, Yupi.Protocol.IRouter router) { int groupId = request.GetInteger(); int page = request.GetInteger(); string searchVal = request.GetString(); uint reqType = request.GetUInt32(); Group group = GroupRepository.Find(groupId); if (group == null) { return; } router.GetComposer <GroupMembersMessageComposer>() .Compose(session, group, reqType, session.Info, searchVal, page); }
public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request, Yupi.Protocol.IRouter router) { uint botId = request.GetUInt32(); int num = request.GetInteger(); // TODO meaning? /* * Room room = Yupi.GetGame().GetRoomManager().GetRoom(session.GetHabbo().CurrentRoomId); * * // TODO introduce entity classes and proper inheritance structure * RoomUser bot = room?.GetRoomUserManager().GetBot(botId); * * if (bot == null || !bot.IsBot) * return; * * router.GetComposer<BotSpeechListMessageComposer> ().Compose (session, num, bot.BotData); */ throw new NotImplementedException(); }
public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request, Yupi.Protocol.IRouter router) { uint itemId = request.GetUInt32(); /* * RoomItem item = session.GetHabbo().CurrentRoom.GetRoomItemHandler().GetItem(itemId); * * if (item == null) * return; * * Dictionary<string, YoutubeVideo> videos = session.GetHabbo().GetYoutubeManager().Videos; * * if (videos == null) * return; * * router.GetComposer<YouTubeLoadVideoMessageComposer> ().Compose (session, item); * router.GetComposer<YouTubeLoadPlaylistsMessageComposer> ().Compose (session, item, videos); */ throw new NotImplementedException(); }
public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request, Yupi.Protocol.IRouter router) { uint furniId = request.GetUInt32(); /* * Yupi.Messages.Rooms room = Yupi.GetGame().GetRoomManager().GetRoom(session.GetHabbo().CurrentRoomId); * RoomItem item = room?.GetRoomItemHandler().GetItem(furniId); * * if (item?.GetBaseItem().InteractionType != Interaction.Clothing) * return; * ClothingItem clothes = Yupi.GetGame().GetClothingManager().GetClothesInFurni(item.GetBaseItem().Name); * * if (clothes == null) * return; * * if (session.GetHabbo().ClothesManagerManager.Clothing.Contains(clothes.ItemName)) * return; * * session.GetHabbo().ClothesManagerManager.Add(clothes.ItemName); * * GetResponse().Init(PacketLibraryManager.OutgoingHandler("FigureSetIdsMessageComposer")); * session.GetHabbo().ClothesManagerManager.Serialize(GetResponse()); * * SendResponse(); * * room.GetRoomItemHandler().RemoveFurniture(session, item.Id, false); * * session.Router.GetComposer<SuperNotificationMessageComposer>() * .Compose(session, "${notification.figureset.redeemed.success.title}", "${notification.figureset.redeemed.success.messageBuffer}", * "event:avatareditor/open", "${notification.figureset.redeemed.success.linkTitle}"); * * using (IQueryAdapter queryReactor = Yupi.GetDatabaseManager().GetQueryReactor()) { * queryReactor.SetQuery("DELETE FROM items_rooms WHERE id = @id"); * queryReactor.AddParameter("id", item.Id); * queryReactor.RunQuery(); * } */ throw new NotImplementedException(); }
public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request, Yupi.Protocol.IRouter router) { uint itemId = request.GetUInt32(); string video = request.GetString(); /* * RoomItem item = session.GetHabbo().CurrentRoom.GetRoomItemHandler().GetItem(itemId); * * if (item.GetBaseItem().InteractionType != Interaction.YoutubeTv) * return; * * if (!session.GetHabbo().GetYoutubeManager().Videos.ContainsKey(video)) * return; * * item.ExtraData = video; * item.UpdateState(); * * router.GetComposer<YouTubeLoadVideoMessageComposer> ().Compose (session, item); */ throw new NotImplementedException(); }
public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request, Yupi.Protocol.IRouter router) { request.GetInteger(); // pageId uint itemId = request.GetUInt32(); string extradata = request.GetString(); string wallcoords = request.GetString(); /* * Yupi.Messages.Rooms actualRoom = session.GetHabbo().CurrentRoom; * CatalogItem item = Yupi.GetGame().GetCatalogManager().GetItem(itemId); * if (actualRoom == null || item == null) return; * * session.GetHabbo().BuildersItemsUsed++; * router.GetComposer<BuildersClubUpdateFurniCountMessageComposer> ().Compose (session, session.GetHabbo ().BuildersItemsUsed); * * using (IQueryAdapter adapter = Yupi.GetDatabaseManager().GetQueryReactor()) * { * adapter.SetQuery( * "INSERT INTO items_rooms (user_id,room_id,item_name,wall_pos,builders) VALUES (@userId,@roomId,@baseName,@wallpos,'1')"); * adapter.AddParameter("userId", session.GetHabbo().Id); * adapter.AddParameter("roomId", actualRoom.RoomId); * adapter.AddParameter("baseName", item.BaseName); * adapter.AddParameter("wallpos", wallcoords); * * uint insertId = (uint) adapter.InsertQuery(); * * RoomItem newItem = new RoomItem(insertId, actualRoom.RoomId, item.BaseName, extradata, * new WallCoordinate(wallcoords), actualRoom, session.GetHabbo().Id, 0, true); * * actualRoom.GetRoomItemHandler().WallItems.TryAdd(newItem.Id, newItem); * * router.GetComposer<AddWallItemMessageComposer> ().Compose (session, newItem); * actualRoom.GetGameMap().AddItemToMap(newItem); * } */ throw new NotImplementedException(); }
public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request, Yupi.Protocol.IRouter router) { uint pId = request.GetUInt32(); string text = request.GetString(); /* * RoomItem item = Session.GetHabbo().CurrentRoom.GetRoomItemHandler().GetItem(pId); * * if (item == null) * return; * * if (!item.ExtraData.Contains(Convert.ToChar(5))) * return; * * if (!session.GetHabbo().CurrentRoom.CheckRights(Session, true)) * return; * // TODO Rename * string[] array = item.ExtraData.Split(Convert.ToChar(5)); * * array[2] = text; * * item.ExtraData = String.Join(Convert.ToChar(5).ToString(), array); * item.Serialize(response); * item.UpdateState(true, true); * * using (IQueryAdapter queryReactor = Yupi.GetDatabaseManager().GetQueryReactor()) * { * queryReactor.SetQuery("UPDATE items_rooms SET extra_data = @extraData WHERE id = @id"); * queryReactor.AddParameter("extraData", item.ExtraData); * queryReactor.AddParameter("id", item.Id); * queryReactor.RunQuery(); * } */ throw new NotImplementedException(); }
public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request, Yupi.Protocol.IRouter router) { uint id = request.GetUInt32(); /* * Yupi.Messages.Rooms room = Yupi.GetGame().GetRoomManager().GetRoom(session.GetHabbo().CurrentRoomId); * * if (room == null) * return; * * if (!room.CheckRights(session, false, true)) * return; * * RoomItem item = room.GetRoomItemHandler().GetItem(id); * * if (item == null) * return; * * int x = request.GetInteger(); * int y = request.GetInteger(); * int rot = request.GetInteger(); * // TODO Unused * request.GetInteger(); * * bool flag = item.GetBaseItem().InteractionType == Interaction.Teleport || * item.GetBaseItem().InteractionType == Interaction.Hopper || * item.GetBaseItem().InteractionType == Interaction.QuickTeleport; * * List<Point> oldCoords = item.GetCoords; * * if (!room.GetRoomItemHandler().SetFloorItem(session, item, x, y, rot, false, false, true, true, false)) * { * router.GetComposer<UpdateRoomItemMessageComposer> ().Compose (room, item); * return; * } * * if (item.GetBaseItem().InteractionType == Interaction.BreedingTerrier || * item.GetBaseItem().InteractionType == Interaction.BreedingBear) * { * foreach (Pet pet in item.PetsList) * { * pet.WaitingForBreading = 0; * pet.BreadingTile = new Point(); * * RoomUser user = room.GetRoomUserManager().GetRoomUserByVirtualId(pet.VirtualId); * * if (user == null) * continue; * * user.Freezed = false; * room.GetGameMap().AddUserToMap(user, user.Coordinate); * * Point nextCoord = room.GetGameMap().GetRandomValidWalkableSquare(); * user.MoveTo(nextCoord.X, nextCoord.Y); * } * * item.PetsList.Clear(); * } * * List<Point> newcoords = item.GetCoords; * room.GetRoomItemHandler().OnHeightMapUpdate(oldCoords, newcoords); * * if (!flag) * return; * * using (IQueryAdapter queryReactor = Yupi.GetDatabaseManager().GetQueryReactor()) * room.GetRoomItemHandler().SaveFurniture(queryReactor); */ throw new NotImplementedException(); }
public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request, Yupi.Protocol.IRouter router) { uint pageId = request.GetUInt32(); uint itemId = request.GetUInt32(); /* * CatalogPage page = Yupi.GetGame().GetCatalogManager().GetPage(pageId); * CatalogItem catalogItem = page?.GetItem(itemId); * * if (catalogItem == null) * return; * * // TODO num? * uint num = request.GetUInt32(); * string text = request.GetString(); * * request.GetBool(); // TODO Unused! * * string text2 = request.GetString(); * * int category = request.GetInteger(); * * // TODO Bail on error and don't create a new room instance! * Room room = Yupi.GetGame().GetRoomManager().GetRoom(num) ?? new Room(); * * room.Start(Yupi.GetGame().GetRoomManager().GenerateNullableRoomData(num), true); * * if (!room.CheckRights(session, true)) * return; * * // TODO Why do we need to check this? Should be the responsibility of a setter... * if (catalogItem.CreditsCost > 0) * { * if (catalogItem.CreditsCost > session.GetHabbo().Credits) * return; * * session.GetHabbo().Credits -= catalogItem.CreditsCost; * session.GetHabbo().UpdateCreditsBalance(); * } * * if (catalogItem.DucketsCost > 0) * { * if (catalogItem.DucketsCost > session.GetHabbo().Duckets) * return; * * session.GetHabbo().Duckets -= catalogItem.DucketsCost; * session.GetHabbo().UpdateActivityPointsBalance(); * } * * if (catalogItem.DiamondsCost > 0) * { * if (catalogItem.DiamondsCost > session.GetHabbo().Diamonds) * return; * * session.GetHabbo().Diamonds -= catalogItem.DiamondsCost; * session.GetHabbo().UpdateSeasonalCurrencyBalance(); * } * * session.Router.GetComposer<PurchaseOKMessageComposer> ().Compose (session, catalogItem, catalogItem.Items); * * if (room.RoomData.Event != null && !room.RoomData.Event.HasExpired) * { * room.RoomData.Event.Time = Yupi.GetUnixTimeStamp(); * * Yupi.GetGame().GetRoomEvents().SerializeEventInfo(room.RoomId); * } * else * { * Yupi.GetGame().GetRoomEvents().AddNewEvent(room.RoomId, text, text2, session, 7200, category); * Yupi.GetGame().GetRoomEvents().SerializeEventInfo(room.RoomId); * } * * // TODO Use Enum for Badges! * session.GetHabbo().GetBadgeComponent().GiveBadge("RADZZ", true, session); */ throw new NotImplementedException(); }