Ejemplo n.º 1
0
        public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage message,
                                           Yupi.Protocol.IRouter router)
        {
            if (!session.Info.HasPermission("fuse_mod"))
            {
                return;
            }

            int result = message.GetInteger();

            message.GetInteger(); // TODO unused

            int ticketId = message.GetInteger();

            SupportTicket ticket = TicketRepository.Find(ticketId);

            TicketCloseReason reason;

            if (ticket != null && TicketCloseReason.TryFromInt32(result, out reason))
            {
                ticket.Close(reason);

                foreach (Habbo staff in ClientManager.GetByPermission("handle_cfh"))
                {
                    staff.Router.GetComposer <ModerationToolIssueMessageComposer>().Compose(staff, ticket);
                }
            }
        }
        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);
        }
Ejemplo n.º 3
0
        public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request,
                                           Yupi.Protocol.IRouter router)
        {
            int groupId    = request.GetInteger();
            int threadId   = request.GetInteger();
            int startIndex = request.GetInteger();

            request.GetInteger(); // TODO Unused

            Group theGroup = GroupRepository.Find(groupId);

            if (theGroup == null)
            {
                return;
            }

            GroupForumThread thread = theGroup.Forum.GetThread(threadId);

            if (thread == null)
            {
                return;
            }

            // TODO Magic constant
            List <GroupForumPost> posts = thread.Posts.Skip(startIndex).Take(20).ToList();

            router.GetComposer <GroupForumReadThreadMessageComposer>()
            .Compose(session, groupId, threadId, startIndex, posts);
        }
Ejemplo n.º 4
0
        public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage message,
                                           Yupi.Protocol.IRouter router)
        {
            int targetId = message.GetInteger();
            int type     = message.GetInteger();

            Relationship relationship = session.Info.Relationships.FindByUser(targetId);

            if (relationship == default(Relationship))
            {
                relationship = new Relationship()
                {
                    Friend = UserRepository.Find(targetId),
                    Type   = type
                };
                session.Info.Relationships.Relationships.Add(relationship);
            }
            else
            {
                relationship.Type = type;
            }

            UserRepository.Save(session.Info);

            MessengerController.UpdateUser(session.Info);
        }
Ejemplo n.º 5
0
        public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request,
                                           Yupi.Protocol.IRouter router)
        {
            int targetX = request.GetInteger();
            int targetY = request.GetInteger();

            RoomEntity entity = session.RoomEntity;

            var target = new Vector2(targetX, targetY);

            if (entity == null || !entity.CanWalk() || entity.Position.Equals(target))
            {
                return;
            }

            entity.Wake();

            entity.Walk(target);

            /* TODO Implement Horse
             * if (entity.RidingHorse) {
             *  RoomUser roomUserByVirtualId = currentRoom.GetRoomUserManager ().GetRoomUserByVirtualId ((int)roomUserByHabbo.HorseId);
             *
             *  roomUserByVirtualId.MoveTo (targetX, targetY);
             * }*/
        }
        public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage message,
                                           Yupi.Protocol.IRouter router)
        {
            if (!session.Info.HasPermission("fuse_mod"))
            {
                return;
            }

            message.GetInteger(); // TODO Unused
            int ticketId = message.GetInteger();

            SupportTicket ticket = TicketRepository.Find(ticketId);

            if (ticket == null || ticket.Status != TicketStatus.Closed)
            {
                return;
            }

            ticket.Pick(session.Info);

            TicketRepository.Save(ticket);

            foreach (Habbo staff in ClientManager.GetByPermission("handle_cfh"))
            {
                staff.Router.GetComposer <ModerationToolIssueMessageComposer>().Compose(staff, ticket);
            }
        }
Ejemplo n.º 7
0
        public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request,
                                           Yupi.Protocol.IRouter router)
        {
            int groupId = request.GetInteger();
            int color1  = request.GetInteger();
            int color2  = request.GetInteger();

            Group group = GroupRepository.Find(groupId);

            if (group?.Creator != session.Info)
            {
                return;
            }

            group.Colour1 = new GroupSymbolColours()
            {
                Colour = color1
            };
            group.Colour2 = new GroupBackGroundColours()
            {
                Colour = color2
            };
            throw new NotImplementedException();
            //router.GetComposer<GroupDataMessageComposer> ().Compose (session.GetHabbo().CurrentRoom, group, session.GetHabbo());
        }
Ejemplo n.º 8
0
        public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request,
            Yupi.Protocol.IRouter router)
        {
            if (!session.Info.HasPermission("fuse_lock_trade"))
                return;

            int userId = request.GetInteger();
            string message = request.GetString();
            int hours = request.GetInteger();

            UserInfo user = UserRepository.Find(userId);

            user.TradeLocks.Add(new TradeLock()
            {
                ExpiresAt = DateTime.Now.AddHours(hours)
            });

            UserRepository.Save(user);

            var target = ClientManager.GetByInfo(user);
            if (target != null)
            {
                target.Router.GetComposer<AlertNotificationMessageComposer>().Compose(target, message);
            }
        }
Ejemplo n.º 9
0
        public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request,
                                           Yupi.Protocol.IRouter router)
        {
            int groupId    = request.GetInteger();
            int threadId   = request.GetInteger();
            int stateToSet = request.GetInteger();

            Group theGroup = GroupRepository.Find(groupId);

            if (theGroup != null)
            {
                GroupForumThread thread = theGroup.Forum.GetThread(threadId);

                if (thread != null && (thread.Creator == session.Info || theGroup.Admins.Contains(session.Info)))
                {
                    thread.Hidden   = stateToSet == 20;
                    thread.HiddenBy = session.Info;

                    GroupRepository.Save(theGroup);

                    router.GetComposer <SuperNotificationMessageComposer>()
                    .Compose(session, string.Empty, string.Empty, string.Empty, string.Empty,
                             stateToSet == 20 ? "forums.thread.hidden" : "forums.thread.restored", 0);

                    router.GetComposer <GroupForumThreadUpdateMessageComposer>()
                    .Compose(session, groupId, thread, thread.Pinned, thread.Locked);
                }
            }
        }
Ejemplo n.º 10
0
        public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request,
                                           Yupi.Protocol.IRouter router)
        {
            int groupId  = request.GetInteger();
            int memberId = request.GetInteger();
            // TODO Rename variables
            Group group = GroupRepository.Find(groupId);

            throw new NotImplementedException();

            /*
             * if (session.Info != group.Creator || !group.Members.ContainsKey(memberId) ||
             *  group.Admins.ContainsKey(memberId))
             *  return;
             *
             * group.Members[memberId].Rank = 1;
             *
             * group.Admins.Add(memberId, group.Members[memberId]);
             *
             * router.GetComposer<GroupMembersMessageComposer> ().Compose (session, group, 1u, session);
             *
             * Yupi.Messages.Rooms room = Yupi.GetGame().GetRoomManager().GetRoom(group.RoomId);
             *
             * RoomUser roomUserByHabbo = room?.GetRoomUserManager().GetRoomUserByHabbo(Yupi.GetHabboById(memberId).Name);
             *
             * if (roomUserByHabbo != null)
             * {
             *  if (!roomUserByHabbo.Statusses.ContainsKey("flatctrl 1"))
             *      roomUserByHabbo.AddStatus("flatctrl 1", "");
             *
             *  router.GetComposer<RoomRightsLevelMessageComposer> ().Compose (roomUserByHabbo.GetClient (), 1);
             *  roomUserByHabbo.UpdateNeeded = true;
             * }
             */
        }
Ejemplo n.º 11
0
        public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request,
                                           Yupi.Protocol.IRouter router)
        {
            int groupId = request.GetInteger();
            int userId  = request.GetInteger();

            Group    group = GroupRepository.Find(groupId);
            UserInfo user  = UserRepository.Find(userId);

            if (group == null || !group.Admins.Contains(session.Info) || !group.Requests.Contains(user))
            {
                return;
            }
            throw new NotImplementedException();

            /*
             *
             * GroupMember memberGroup = group.Requests[userId];
             *
             * memberGroup.DateJoin = Yupi.GetUnixTimeStamp();
             * group.Members.Add(userId, memberGroup);
             * group.Requests.Remove(userId);
             * group.Admins.Add(userId, group.Members[userId]);
             *
             * router.GetComposer<GroupDataMessageComposer> ().Compose (session, group, session.GetHabbo());
             * router.GetComposer<GroupMembersMessageComposer> ().Compose (session, group, 0u, session);
             */
        }
Ejemplo n.º 12
0
        public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request,
                                           Yupi.Protocol.IRouter router)
        {
            int groupId      = request.GetInteger();
            int whoCanRead   = request.GetInteger();
            int whoCanPost   = request.GetInteger();
            int whoCanThread = request.GetInteger();
            int whoCanMod    = request.GetInteger();

            Group group = GroupRepository.Find(groupId);

            if (group?.Creator != session.Info)
            {
                return;
            }

            // TODO Check rights?!
            group.Forum.WhoCanRead   = whoCanRead;
            group.Forum.WhoCanPost   = whoCanPost;
            group.Forum.WhoCanThread = whoCanThread;
            group.Forum.WhoCanMod    = whoCanMod;

            GroupRepository.Save(group);
            router.GetComposer <GroupForumDataMessageComposer>().Compose(session, group, session.Info);
        }
Ejemplo n.º 13
0
        public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage message,
                                           Yupi.Protocol.IRouter router)
        {
            if (!session.Info.HasPermission("fuse_mod"))
            {
                return;
            }

            int ticketCount = message.GetInteger();

            for (int i = 0; i < ticketCount; i++)
            {
                int ticketId = message.GetInteger();

                SupportTicket ticket = TicketRepository.Find(ticketId);

                if (ticket != null)
                {
                    ticket.Release();
                    TicketRepository.Save(ticket);
                }

                foreach (Habbo staff in ClientManager.GetByPermission("handle_cfh"))
                {
                    staff.Router.GetComposer <ModerationToolIssueMessageComposer>().Compose(staff, ticket);
                }
            }
        }
Ejemplo n.º 14
0
        public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request,
                                           Yupi.Protocol.IRouter router)
        {
            int count = request.GetInteger();

            int[] users = new int[count];

            for (int i = 0; i < count; i++)
            {
                users[i] = request.GetInteger();
            }

            string content = request.GetString();

            foreach (int userId in users)
            {
                Relationship relationship = session.Info.Relationships.FindByUser(userId);
                if (relationship == null)
                {
                    continue;
                }

                var friendSession = ClientManager.GetByInfo(relationship.Friend);

                friendSession?.Router.GetComposer <ConsoleInvitationMessageComposer>()
                .Compose(friendSession, session.Info.Id, content);
            }
        }
Ejemplo n.º 15
0
        public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request,
                                           Yupi.Protocol.IRouter router)
        {
            int selectType = request.GetInteger();
            int startIndex = request.GetInteger();

            router.GetComposer <GroupForumListingsMessageComposer>().Compose(session, selectType, startIndex);
        }
Ejemplo n.º 16
0
 public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request,
                                    Yupi.Protocol.IRouter router)
 {
     session.ReleaseName = request.GetString();
     string unknown1 = request.GetString();
     int    unknown2 = request.GetInteger();
     int    unknown3 = request.GetInteger();
 }
Ejemplo n.º 17
0
        public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage message,
                                           Yupi.Protocol.IRouter router)
        {
            UserPreferences preferences = session.Info.Preferences;

            // TODO Validate values
            preferences.Volume1 = message.GetInteger();
            preferences.Volume2 = message.GetInteger();
            preferences.Volume3 = message.GetInteger();
            UserRepository.Save(session.Info);
        }
Ejemplo n.º 18
0
        public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request,
                                           Yupi.Protocol.IRouter router)
        {
            int count = request.GetInteger();

            for (int i = 0; i < count; i++)
            {
                int friendId = request.GetInteger();

                RelationshipController.Remove(session, friendId);
            }
        }
Ejemplo n.º 19
0
        public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request,
                                           Yupi.Protocol.IRouter router)
        {
            int   groupId = request.GetInteger();
            Group group   = GroupRepository.Find(groupId);

            if (group != null)
            {
                // TODO Unused
                request.GetInteger();

                int Base      = request.GetInteger();
                int baseColor = request.GetInteger();

                // TODO Unused value!
                request.GetInteger();

                List <int> guildStates = new List <int>();

                throw new NotImplementedException();

                /*
                 * for (int i = 0; i < 12; i++)
                 *  guildStates.Add (request.GetInteger ());
                 *
                 * string badge = Yupi.GetGame ().GetGroupManager ().GenerateGuildImage (Base, baseColor, guildStates);
                 *
                 * guild.Badge = badge;
                 *
                 * router.GetComposer<RoomGroupMessageComposer> ().Compose (room);
                 *
                 * router.GetComposer<GroupDataMessageComposer> ().Compose (room, guild, session.GetHabbo ());
                 *
                 * using (IQueryAdapter queryReactor = Yupi.GetDatabaseManager ().GetQueryReactor ()) {
                 *  queryReactor.SetQuery (
                 *          $"UPDATE groups_data SET group_badge = @badge WHERE id = {guildId}");
                 *
                 *  queryReactor.AddParameter ("badge", badge);
                 *  queryReactor.RunQuery ();
                 * }
                 *
                 * if (session.GetHabbo ().CurrentRoom != null) {
                 *  // TODO Isn't this a duplicate of the above?
                 *  session.GetHabbo ().CurrentRoom.LoadedGroups [guildId] = guild.Badge;
                 *
                 *  router.GetComposer<RoomGroupMessageComposer> ().Compose (session.GetHabbo ().CurrentRoom);
                 *
                 *  router.GetComposer<GroupDataMessageComposer> ().Compose (session.GetHabbo ().CurrentRoom, guild, session.GetHabbo ());
                 * }
                 */
            }
        }
Ejemplo n.º 20
0
        public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request,
                                           Yupi.Protocol.IRouter router)
        {
            int groupId   = request.GetInteger();
            int state     = request.GetInteger();
            int admindeco = request.GetInteger();

            Group group = GroupRepository.Find(groupId);

            if (group?.Creator != session.Info)
            {
                return;
            }

            group.State         = state;
            group.AdminOnlyDeco = admindeco;

            GroupRepository.Save(group);

            Room room = RoomManager.GetIfLoaded(group.Room);

            /*
             * if (room != null)
             * {
             *  foreach (RoomUser current in room.GetRoomUserManager().GetRoomUsers())
             *  {
             *      if (room.Data.Owner != current.UserId && !group.Admins.ContainsKey(current.UserId) &&
             *          group.Members.ContainsKey(current.UserId))
             *      {
             *          // TODO USE F*KING ENUMS!
             *          if (admindeco == 1u)
             *          {
             *              current.RemoveStatus("flatctrl 1");
             *              router.GetComposer<RoomRightsLevelMessageComposer> ().Compose (current.GetClient(), 0);
             *          }
             *          else
             *          {
             *              if (admindeco == 0u && !current.Statusses.ContainsKey("flatctrl 1"))
             *              {
             *                  current.AddStatus("flatctrl 1", string.Empty);
             *                  router.GetComposer<RoomRightsLevelMessageComposer> ().Compose (current.GetClient(), 1);
             *              }
             *          }
             *
             *          current.UpdateNeeded = true;
             *      }
             *  }
             * }
             * router.GetComposer<GroupDataMessageComposer> ().Compose (session.GetHabbo().CurrentRoom, group, session.GetHabbo());
             */
            throw new NotImplementedException();
        }
Ejemplo n.º 21
0
        public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage message,
                                           Yupi.Protocol.IRouter router)
        {
            // TODO Maximum items

            int    pageId    = message.GetInteger();
            int    itemId    = message.GetInteger();
            string extraData = message.GetString();
            int    amount    = message.GetInteger();

            CatalogOffer item = CatalogController.GetById(pageId, itemId);

            CatalogController.Purchase(session, item, extraData, amount);
        }
Ejemplo n.º 22
0
        public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request,
                                           Yupi.Protocol.IRouter router)
        {
            request.GetInteger(); // pageId
            uint   itemId    = Convert.ToUInt32(request.GetInteger());
            string extradata = request.GetString();
            int    x         = request.GetInteger();
            int    y         = request.GetInteger();
            int    dir       = request.GetInteger();

            /*
             * 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);
             *
             * double z = actualRoom.GetGameMap().SqAbsoluteHeight(x, y);
             * using (IQueryAdapter adapter = Yupi.GetDatabaseManager().GetQueryReactor())
             * {
             *  adapter.SetQuery(
             *      "INSERT INTO items_rooms (user_id,room_id,item_name,x,y,z,rot,builders) VALUES (@userId,@roomId,@itemName,@x,@y,@z,@rot,'1')");
             *  adapter.AddParameter("userId", session.GetHabbo().Id);
             *  adapter.AddParameter("roomId", actualRoom.RoomId);
             *  adapter.AddParameter("itemName", item.BaseName);
             *  adapter.AddParameter("x", x);
             *  adapter.AddParameter("y", y);
             *  adapter.AddParameter("z", z);
             *  adapter.AddParameter("rot", dir);
             *
             *  uint insertId = (uint) adapter.InsertQuery();
             *
             *  RoomItem newItem = new RoomItem(insertId, actualRoom.RoomId, item.BaseName, extradata, x, y, z, dir,
             *      actualRoom, session.GetHabbo().Id, 0, string.Empty, true);
             *
             *  session.GetHabbo().BuildersItemsUsed++;
             *
             *  actualRoom.GetRoomItemHandler().FloorItems.TryAdd(newItem.Id, newItem);
             *
             *  router.GetComposer<AddFloorItemMessageComposer> ().Compose (actualRoom, 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)
        {
            int offerId  = request.GetInteger();
            int quantity = request.GetInteger();

            TargetedOffer offer = OfferRepository.Find(offerId);

            if (offer == null)
            {
                return;
            }

            CatalogController.Purchase(session, offer, string.Empty, quantity);
        }
Ejemplo n.º 24
0
        public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage message,
                                           Yupi.Protocol.IRouter router)
        {
            Room room = session.Room;

            int userId = message.GetInteger();

            UserEntity roomUserByHabbo = room?.GetEntity(userId) as UserEntity;

            if (roomUserByHabbo == null)
            {
                return;
            }

            router.GetComposer <UserTagsMessageComposer>()
            .Compose(session, roomUserByHabbo.UserInfo);

            // TODO Move to proper place!

            /*
             * if (session.Info.Tags.Count >= 5) {
             *  Yupi.GetGame ()
             *      .GetAchievementManager ()
             *      .ProgressUserAchievement (roomUserByHabbo.GetClient (), "ACH_UserTags", 5);
             *
             * }*/
        }
Ejemplo n.º 25
0
        // TODO Refactor
        public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request,
                                           Yupi.Protocol.IRouter router)
        {
            int    groupId     = request.GetInteger();
            string name        = request.GetString();
            string description = request.GetString();

            Group theGroup = GroupRepository.Find(groupId);

            if (theGroup?.Creator != session.Info)
            {
                return;
            }

            theGroup.Name        = name;
            theGroup.Description = description;

            GroupRepository.Save(theGroup);

            if (session.Room != null)
            {
                session.Room.EachUser(
                    (entitySession) =>
                {
                    entitySession.Router.GetComposer <GroupDataMessageComposer>()
                    .Compose(entitySession, theGroup, session.Info);
                });
            }
            else
            {
                router.GetComposer <GroupDataMessageComposer>().Compose(session, theGroup, session.Info);
            }
        }
        public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage message,
                                           Yupi.Protocol.IRouter router)
        {
            if (session.Room == null ||
                !session.Room.Data.HasOwnerRights(session.Info))
            {
                return;
            }

            int itemId = message.GetInteger();

            SongItem item = session.Info.Inventory.GetFloorItem(itemId) as SongItem;

            if (item == null)
            {
                return;
            }

            SongMachineComponent songMachine = session.Room.Data.SongMachine;

            if (songMachine.TryAdd(item))
            {
                session.Info.Inventory.FloorItems.Remove(item);
                router.GetComposer <RemoveInventoryObjectMessageComposer>().Compose(session, item.Id);

                ItemRepository.Save(item);
            }

            router.GetComposer <JukeboxPlaylistMessageComposer>().Compose(session, songMachine);
        }
Ejemplo n.º 27
0
        public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request,
                                           Yupi.Protocol.IRouter router)
        {
            if (session.Room == null || !session.Room.Data.HasRights(session.Info))
            {
                return;
            }

            int    id           = request.GetInteger();
            string locationData = request.GetString();

            /*
             * UserItem item = session.GetHabbo ().GetInventoryComponent ().GetItem (id);
             *
             * if (item == null)
             *  return;
             *
             * WallCoordinate wallCoord = new WallCoordinate (":" + locationData.Split (':') [1]);
             *
             * RoomItem item2 = new RoomItem (item.Id, room.RoomId, item.BaseItem.Name, item.ExtraData, wallCoord, room,
             *                    session.GetHabbo ().Id, item.GroupId, false);
             *
             * if (room.GetRoomItemHandler ().SetWallItem (session, item2))
             *  session.GetHabbo ().GetInventoryComponent ().RemoveItem (id, true);
             */
            throw new NotImplementedException();
        }
Ejemplo n.º 28
0
        public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request,
                                           Yupi.Protocol.IRouter router)
        {
            int    toId = request.GetInteger();
            string text = request.GetString();

            if (string.IsNullOrWhiteSpace(text))
            {
                return;
            }

            Relationship friend = session.Info.Relationships.FindByUser(toId);

            if (friend != null)
            {
                MessengerMessage message = new MessengerMessage()
                {
                    From           = session.Info,
                    UnfilteredText = text,
                    Text           = Wordfilter.Filter(text),
                    Timestamp      = DateTime.Now,
                };

                var friendSession = ClientManager.GetByInfo(friend.Friend);
                friendSession?.Router.GetComposer <ConsoleChatMessageComposer>().Compose(session, message);
                message.Read = friendSession != null;

                // TODO Store for offline
                // TODO Store for chatlog
            }
        }
Ejemplo n.º 29
0
        public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage message,
                                           Yupi.Protocol.IRouter router)
        {
            if (session.Room == null)
            {
                return;
            }

            int itemId = message.GetInteger();

            SongMachineComponent songMachine = session.Room.Data.SongMachine;

            SongItem item = songMachine.Find(itemId);

            if (item == null)
            {
                return;
            }

            songMachine.Remove(item);
            session.Info.Inventory.FloorItems.Add(item);
            ItemRepository.Save(item);

            SongItem[] items = session.Info.Inventory.FloorItems.OfType <SongItem>().ToArray();

            router.GetComposer <UpdateInventoryMessageComposer>().Compose(session);
            router.GetComposer <SongsLibraryMessageComposer>().Compose(session, items);
            router.GetComposer <JukeboxPlaylistMessageComposer>().Compose(session, songMachine);
        }
Ejemplo n.º 30
0
        public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request,
            Yupi.Protocol.IRouter router)
        {
            int roomId = request.GetInteger();
            bool shouldAdd = request.GetBool();
            string word = request.GetString();

            RoomData room = RoomRepository.Find(roomId);

            if (room != null && room.HasOwnerRights(session.Info))
            {
                bool hasChanged = false;
                if (shouldAdd)
                {
                    hasChanged = room.WordFilter.Add (word);
                }
                else
                {
                    hasChanged = room.WordFilter.Remove (word);
                }

                if (hasChanged)
                {
                    RoomRepository.Save(room);
                }
            }
        }