public async Task <Result> Execute(CommandMetadata data, string colorName) { SocketGuildUser guildUser = data.Message.Author as SocketGuildUser; IEnumerable <SocketRole> currentRoles = guildUser.Roles.Where(x => ParentPlugin.GetRoles().Any(y => x.Id == y.Id)); SocketRole role = null; foreach (var entry in ParentPlugin.GetRoles()) { string roleName = entry.Name.Substring(ParentPlugin._colourRolePrefix.GetValue().Length).ToUpperInvariant(); if (colorName.ToUpperInvariant() == roleName) { role = entry; break; } } await guildUser.RemoveRolesAsync(currentRoles); if (role != null) { await guildUser.AddRoleAsync(role); } return(new Result(null, role == null ? "Failed to colour you, colour not found." : $"You've been succesfully coloured **{colorName}**!")); }
public Task <Result> Execute(CommandMetadata _) { string colours = string.Join(", ", ParentPlugin.GetRoles().Select(x => x.Name.Substring(ParentPlugin._colourRolePrefix.GetValue().Length))); return(TaskResult(ParentPlugin.GetRoles(), "These colours are available: " + colours)); }