public GuideSessionAttachedComposerHandler(bool isHelper, GuideRequestType type, string message, int timeLeft)
 {
     this.IsHelper = isHelper;
     this.Type     = type;
     this.Message  = message;
     this.TimeLeft = timeLeft;
 }
Пример #2
0
        public virtual void Handle(GameClient session, ClientMessage message)
        {
            if (session?.GetHabbo() != null && (session.GetHabbo().CanGiveTour || session.GetHabbo().IsHelper || session.GetHabbo().IsGuardian))
            {
                if (this.OnDuty)
                {
                    GuideRequestType type = GuideRequestType.None;
                    if (session.GetHabbo().CanGiveTour&& this.TourRequests)
                    {
                        type |= GuideRequestType.Tour;
                    }

                    if (session.GetHabbo().IsHelper&& this.HelpRequests)
                    {
                        type |= GuideRequestType.Help;
                    }

                    if (session.GetHabbo().IsGuardian&& this.BullyReports)
                    {
                        type |= GuideRequestType.Bully;
                    }

                    Skylight.GetGame().GetGuideManager().SetOnDuty(session, type);
                }
                else
                {
                    Skylight.GetGame().GetGuideManager().RemoveFromDuty(session);
                }
            }
        }
Пример #3
0
        public GuideSession(GameClient requester, GuideRequestType type, string message)
        {
            this.RejectedUsers = new HashSet <uint>();

            this.Requester = requester;
            this.Type      = type;
            this.Message   = message;

            this.SetStatus(GuideSessionStatus.WaitingForHelper);
        }
Пример #4
0
        public bool CreateQuestion(GameClient requester, GuideRequestType type, string message)
        {
            if (this.Guides.TryRemove(requester.GetHabbo().ID, out GuideRequestType trash))
            {
                if (this.BusyGuides.TryRemove(requester.GetHabbo().ID, out GuideRequest guideRequest))
                {
                    (guideRequest as GuideSession)?.Close(requester, false);
                }
            }

            return(this.Sessions.TryAdd(requester.GetHabbo().ID, new GuideSession(requester, type, message)));
        }
Пример #5
0
        public void SetOnDuty(GameClient session, GuideRequestType type)
        {
            session.GetHabbo().GetUserStats().GuideOnDutyPresenceCheckStart = TimeUtilies.GetUnixTimestamp();

            if (this.Sessions.TryRemove(session.GetHabbo().ID, out GuideSession guideSession))
            {
                guideSession.Close(session, true);
            }

            this.Guides[session.GetHabbo().ID] = type;

            session.SendMessage(new GuideToolComposerHandler(true, Skylight.GetGame().GetGuideManager().TourersCount, Skylight.GetGame().GetGuideManager().HelpersCount, Skylight.GetGame().GetGuideManager().GuardiansCount));
        }
Пример #6
0
        public static int GuideRequestTypeToInt(GuideRequestType type)
        {
            switch (type)
            {
            case GuideRequestType.Tour:
                return(0);

            case GuideRequestType.Help:
                return(1);

            case GuideRequestType.Bully:
                return(2);

            default:
                return(-1);
            }
        }
Пример #7
0
 public IEnumerable <uint> GuidesByType(GuideRequestType type) => this.Guides.Where(v => (v.Value & type) != 0).Select(g => g.Key);
Пример #8
0
 public int Count(GuideRequestType type) => this.Guides.Values.Count(t => (t & type) != 0);