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