Example #1
0
        public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request,
                                           Yupi.Protocol.IRouter router)
        {
            if (session.RoomEntity == null)
            {
                return;
            }

            string command  = request.GetString();
            int    bubbleId = request.GetInteger();

            ChatBubbleStyle bubble;

            if (!ChatBubbleStyle.TryFromInt32(bubbleId, out bubble))
            {
                return;
            }

            string[] args = command.Split(new char[] { ' ' }, 2);

            if (args.Length != 2)
            {
                return;
            }

            string targetUsername = args[0];
            string msg            = args[1];

            RoomEntity target = session.Room.GetEntity(targetUsername);

            Chat.Whisper(session, msg, bubble, target, -1);
        }
Example #2
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);
             * }*/
        }
Example #3
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);
                }
            }
        }
Example #4
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);
        }
Example #5
0
        public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request,
                                           Yupi.Protocol.IRouter router)
        {
            string friendName = request.GetString();

            UserInfo friend = UserRepository.Find(x => x.Name == friendName);

            if (friend != null)
            {
                if (friend.HasFriendRequestsDisabled)
                {
                    router.GetComposer <NotAcceptingRequestsMessageComposer>().Compose(session);
                }
                else
                {
                    IRepository <FriendRequest> requests = DependencyFactory.Resolve <IRepository <FriendRequest> > ();

                    if (!requests.Exists(x => x.To == friend && x.From == session.Info))
                    {
                        var friendRequest = new FriendRequest(session.Info, friend);

                        requests.Save(friendRequest);

                        var friendSession = ClientManager.GetByInfo(friend);

                        if (friendSession != null)
                        {
                            friendSession.Router.GetComposer <ConsoleSendFriendRequestMessageComposer>()
                            .Compose(friendSession, friendRequest);
                        }
                    }
                }
            }
        }
        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);
            }
        }
Example #7
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);
        }
Example #8
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);
             *
             * }*/
        }
Example #9
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);
            }
        }
Example #10
0
        public override void HandleMessage(Yupi.Model.Domain.Habbo session, ClientMessage message,
                                           Yupi.Protocol.IRouter router)
        {
            int reportedId = message.GetInteger();

            UserInfo reportedUser = DependencyFactory.Resolve <IRepository <UserInfo> >().Find(reportedId);

            throw new NotImplementedException();

            /*
             * SupportTicket ticket = new SupportTicket()
             * {
             *  Category = 104,
             *  Type = 9,
             *  ReportedUser = reportedUser
             * };
             *
             * DependencyFactory.Resolve<ModerationTool>().Tickets.Add(ticket);
             */
            router.GetComposer <BullyReportSentMessageComposer>().Compose(session);

            /* TODO Implement
             * router.GetComposer<ModerationToolIssueMessageComposer>()
             *  .Compose(DependencyFactory.Resolve<StaffSender>(), ticket);
             */
            throw new NotImplementedException();
        }
Example #11
0
        public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request,
                                           Yupi.Protocol.IRouter router)
        {
            if (session.RoomEntity == null)
            {
                return;
            }

            int actionId = request.GetInteger();

            UserAction action;

            if (!UserAction.TryParse(actionId, out action))
            {
                return;
            }

            if (action == UserAction.Idle)
            {
                session.RoomEntity.Sleep();
            }
            else
            {
                session.RoomEntity.Wake();

                session.RoomEntity.Room.EachUser(
                    roomSession =>
                {
                    roomSession.Router.GetComposer <RoomUserActionMessageComposer>()
                    .Compose(roomSession, session.RoomEntity.Id, action);
                });
            }
        }
        public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request,
                                           Yupi.Protocol.IRouter router)
        {
            int roomId = request.GetInteger();

            request.GetBool(); // TODO Unused

            RoomData roomData = RoomRepository.Find(roomId);

            if (roomData == null)
            {
                return;
            }

            // TODO TOGGLE?!
            AchievementManager.ProgressUserAchievement(roomData.Owner, RoomBuilderAchievement.StaffPickedRooms);

            // TODO Add room to Staff Pick category!
            throw new NotImplementedException();

            Room room = RoomManager.GetIfLoaded(roomData);

            if (room != null)
            {
                room.EachUser(
                    (entitySession) =>
                {
                    entitySession.Router.GetComposer <RoomDataMessageComposer>()
                    .Compose(entitySession, roomData, entitySession.Info, true, true);
                });
            }
        }
        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);
        }
        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);
        }
Example #15
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;
             * }
             */
        }
Example #16
0
        public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request,
                                           Yupi.Protocol.IRouter router)
        {
            if (session.RoomEntity == null)
            {
                return;
            }

            if (session.RoomEntity.RotBody % 2 != 0)
            {
                session.RoomEntity.SetRotation(session.RoomEntity.RotBody - 1);
            }

            Vector3 position = session.RoomEntity.Position;

            position.Z = session.Room.HeightMap.GetTileHeight(session.RoomEntity.Position);
            session.RoomEntity.SetPosition(position);

            EntityStatus status = session.RoomEntity.Status;

            if (status.IsSitting())
            {
                status.Stand();
            }
            else
            {
                // TODO Stop dancing
                status.Sit();
            }
        }
        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);
            }
        }
Example #18
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);
                }
            }
        }
Example #19
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);
                }
            }
        }
        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
            }
        }
Example #21
0
        public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage message,
                                           Yupi.Protocol.IRouter router)
        {
            string gender = message.GetString();
            string look   = message.GetString();

            // TODO Validate gender & look
            session.Info.Look   = look;
            session.Info.Gender = gender;
            UserRepository.Save(session.Info);

            AchievementManager.ProgressUserAchievement(session, ProfileAchievement.AvatarLooks);

            if (session.Room == null)
            {
                return;
            }

            router.GetComposer <UpdateAvatarAspectMessageComposer>().Compose(session, session.Info);

            session.Room.EachUser(
                (roomSession) =>
            {
                roomSession.Router.GetComposer <UpdateUserDataMessageComposer>()
                .Compose(roomSession, session.Info, session.RoomEntity.Id);
            }
                );

            MessengerController.UpdateUser(session.Info);
        }
        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);
             */
        }
Example #23
0
        public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage message,
                                           Yupi.Protocol.IRouter router)
        {
            var openTickets = session.Info.SupportTickets.Where(x => x.Status != TicketStatus.Closed);

            router.GetComposer <OpenHelpToolMessageComposer>().Compose(session, openTickets.ToList());
        }
Example #24
0
        public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request,
                                           Yupi.Protocol.IRouter router)
        {
            string name = request.GetString();

            // TODO Refactor
            switch (name)
            {
            case "predefined_noob_lobby":
            {
                /*
                 * int roomId = Convert.ToUInt32(Yupi.GetDbConfig().DbData["noob.lobby.roomid"]);
                 * router.GetComposer<RoomForwardMessageComposer> ().Compose (session, roomId);*/
                throw new NotImplementedException();
                break;
            }

            case "random_friending_room":
            {
                Room room = RoomManager.GetActive().ToList().Random();
                router.GetComposer <RoomForwardMessageComposer>().Compose(session, room.Data.Id);
                break;
            }
            }
        }
        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);
        }
        public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage message,
                                           Yupi.Protocol.IRouter router)
        {
            SongItem[] items = session.Info.Inventory.FloorItems.OfType <SongItem>().ToArray();

            router.GetComposer <SongsLibraryMessageComposer>().Compose(session, items);
        }
        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);
            }
        }
Example #28
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);
                }
            }
        }
        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);
        }
Example #30
0
        public override void HandleMessage(Yupi.Model.Domain.Habbo session, Yupi.Protocol.Buffers.ClientMessage request,
                                           Yupi.Protocol.IRouter router)
        {
            request.GetBool(); // TODO Unused

            string idAsString = request.GetString();

            int userId;

            int.TryParse(idAsString, out userId);

            if (userId == 0)
            {
                return;
            }

            string message = request.GetString();

            Habbo guide = GuideManager.GetRandomGuide();

            if (guide == null)
            {
                router.GetComposer <OnGuideSessionErrorComposer>().Compose(session);
                return;
            }

            router.GetComposer <OnGuideSessionAttachedMessageComposer>().Compose(session, false, userId, message, 30);
            router.GetComposer <OnGuideSessionAttachedMessageComposer>().Compose(guide, true, userId, message, 15);

            guide.GuideOtherUser   = session;
            session.GuideOtherUser = guide;
        }