Beispiel #1
0
        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();
        }
Beispiel #3
0
        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);
        }
Beispiel #5
0
        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);
        }
Beispiel #8
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 ();
             * }
             */
        }
Beispiel #10
0
        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();
        }
Beispiel #12
0
        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();
        }
Beispiel #15
0
        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();
        }
Beispiel #16
0
        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();
        }
Beispiel #22
0
        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();
        }
Beispiel #24
0
        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();
        }