示例#1
0
            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}**!"));
            }
示例#2
0
            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));
            }