Beispiel #1
0
 public GameQueueActionModel(GameQueueActionType gameQueueType, RoleRequirementModel roleRequirement = null, string targetUsername = null)
     : base(ActionTypeEnum.GameQueue)
 {
     this.ActionType      = gameQueueType;
     this.RoleRequirement = roleRequirement;
     this.TargetUsername  = targetUsername;
 }
        public override async Task CustomRun(CommandParametersModel parameters)
        {
            List <string> commandTriggers = new List <string>();

            foreach (GameCommandModelBase command in ChannelSession.Services.Command.GameCommands)
            {
                if (command.IsEnabled)
                {
                    RoleRequirementModel roleRequirement = command.Requirements.Role;
                    if (roleRequirement != null)
                    {
                        Result result = await roleRequirement.Validate(parameters);

                        if (result.Success)
                        {
                            commandTriggers.AddRange(command.Triggers.Select(c => $"!{c}"));
                        }
                    }
                }
            }

            if (commandTriggers.Count > 0)
            {
                string text = "Available Games: " + string.Join(", ", commandTriggers.OrderBy(c => c));
                await ChannelSession.Services.Chat.SendMessage(text);
            }
            else
            {
                await ChannelSession.Services.Chat.SendMessage("There are no games available for you to use.");
            }
        }
Beispiel #3
0
 public RoleRequirementViewModel(RoleRequirementModel requirement)
     : this()
 {
     if (requirement.RoleList.Count > 0)
     {
         this.IsAdvancedRolesSelected = true;
         foreach (UserRoleEnum role in requirement.RoleList)
         {
             this.SelectedAdvancedRoles.Add(new UserRoleViewModel(this, role));
         }
     }
     else
     {
         this.SelectedRole = requirement.Role;
     }
     this.SubscriberTier = requirement.SubscriberTier;
     if (this.IsPatreonConnected && !string.IsNullOrEmpty(requirement.PatreonBenefitID))
     {
         this.SelectedPatreonBenefit = this.PatreonBenefits.FirstOrDefault(b => b.ID.Equals(requirement.PatreonBenefitID));
         if (this.SelectedPatreonBenefit == null)
         {
             this.SelectedPatreonBenefit = RoleRequirementViewModel.NonePatreonBenefit;
         }
     }
 }
Beispiel #4
0
 public RoleRequirementViewModel(RoleRequirementModel requirement)
 {
     this.SelectedRole   = requirement.Role;
     this.SubscriberTier = requirement.SubscriberTier;
     if (this.IsPatreonConnected && !string.IsNullOrEmpty(requirement.PatreonBenefitID))
     {
         this.SelectedPatreonBenefit = this.PatreonBenefits.FirstOrDefault(b => b.ID.Equals(requirement.PatreonBenefitID));
         if (this.SelectedPatreonBenefit == null)
         {
             this.SelectedPatreonBenefit = RoleRequirementViewModel.NonePatreonBenefit;
         }
     }
 }
        public async Task SelectFirstType(RoleRequirementModel roleRequirement)
        {
            foreach (UserViewModel user in this.queue.ToList())
            {
                Result result = await roleRequirement.Validate(new CommandParametersModel(user));

                if (result.Success)
                {
                    this.queue.Remove(user);
                    await ChannelSession.Settings.GetCommand(ChannelSession.Settings.GameQueueUserSelectedCommandID).Perform(new CommandParametersModel(user));

                    GlobalEvents.GameQueueUpdated();
                    return;
                }
            }
            await this.SelectFirst();
        }
        protected override async Task PerformInternal(CommandParametersModel parameters)
        {
            List <string> commandTriggers = new List <string>();

            foreach (ChatCommandModel command in ChannelSession.AllEnabledChatAccessibleCommands)
            {
                if (command.IsEnabled)
                {
                    RoleRequirementModel roleRequirement = command.Requirements.Role;
                    if (roleRequirement != null)
                    {
                        Result result = await roleRequirement.Validate(parameters);

                        if (result.Success)
                        {
                            if (command.IncludeExclamation)
                            {
                                commandTriggers.AddRange(command.Triggers.Select(c => $"!{c}"));
                            }
                            else
                            {
                                commandTriggers.AddRange(command.Triggers);
                            }
                        }
                    }
                }
            }

            if (commandTriggers.Count > 0)
            {
                string text = "Available Commands: " + string.Join(", ", commandTriggers.OrderBy(c => c));
                await ChannelSession.Services.Chat.SendMessage(text);
            }
            else
            {
                await ChannelSession.Services.Chat.SendMessage("There are no commands available for you to use.");
            }
        }