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."); } }
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; } } }
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."); } }