public GuideSessionAttachedComposerHandler(bool isHelper, GuideRequestType type, string message, int timeLeft) { this.IsHelper = isHelper; this.Type = type; this.Message = message; this.TimeLeft = timeLeft; }
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); } } }
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); }
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))); }
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)); }
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); } }
public IEnumerable <uint> GuidesByType(GuideRequestType type) => this.Guides.Where(v => (v.Value & type) != 0).Select(g => g.Key);
public int Count(GuideRequestType type) => this.Guides.Values.Count(t => (t & type) != 0);