Beispiel #1
0
        public async Task CreateRole(CommandContext ctx, DiscordRole role, string?aliasList = null)
        {
            var appDiscordRole = DiscordRoleMapper.Map(role);

            await _userRoleService.CreateRole(appDiscordRole, aliasList);

            await ctx.RespondAsync($"Created user role for {role.Name}");
        }
Beispiel #2
0
        public async Task DeleteRole(CommandContext ctx, DiscordRole role)
        {
            var appDiscordRole = DiscordRoleMapper.Map(role);

            await _userRoleService.DeleteRole(appDiscordRole);

            await ctx.RespondAsync($"Deleted user role for {role.Name}");
        }
Beispiel #3
0
        public async Task UnsetRoleGroup(CommandContext ctx, DiscordRole role)
        {
            var appDiscordRole = DiscordRoleMapper.Map(role);

            await _userRoleService.UnsetRoleGroup(appDiscordRole);

            await ctx.RespondAsync($"Unset group number for {role.Name}");
        }
Beispiel #4
0
        public async Task SetRoleGroup(CommandContext ctx, DiscordRole role, uint groupNumber)
        {
            var appDiscordRole = DiscordRoleMapper.Map(role);

            await _userRoleService.SetRoleGroup(appDiscordRole, groupNumber);

            await ctx.RespondAsync($"Set group number {groupNumber} for {role.Name}");
        }
Beispiel #5
0
        public async Task RemoveRoleAlias(CommandContext ctx, DiscordRole role, string alias)
        {
            var appDiscordRole = DiscordRoleMapper.Map(role);

            await _userRoleService.RemoveRoleAlias(appDiscordRole, alias);

            await ctx.RespondAsync($"Removed alias {alias} for {role.Name}");
        }
Beispiel #6
0
        public async Task UpdateRoles(CommandContext ctx)
        {
            var guildRoles = ctx.Guild.Roles.Select(r => DiscordRoleMapper.Map(r.Value));

            var updatedRoleCount = await _userRoleService.UpdateRoleNames(guildRoles);

            if (updatedRoleCount == 0)
            {
                await ctx.RespondAsync("Roles already up to date");
            }
            else
            {
                await ctx.RespondAsync($"Updated {updatedRoleCount} {(updatedRoleCount == 1 ? "role" : "roles")}");
            }
        }
Beispiel #7
0
        public async Task GetRole(CommandContext ctx, DiscordRole role)
        {
            var appDiscordRole = DiscordRoleMapper.Map(role);

            var userRole = await _userRoleService.GetRole(appDiscordRole);

            var sb = new StringBuilder();

            var formattedAliasList = string.Join(", ", userRole.UserRoleAliases.Select(x => x.Alias));
            var groupNumberString  = userRole.GroupNumber.HasValue ? userRole.GroupNumber.Value.ToString() : "None";

            sb.AppendLine($"**{userRole.Name}**");
            sb.AppendLine($"Discord role: {role.Name} ({role.Id})");
            sb.AppendLine($"Aliases: {formattedAliasList}");
            sb.AppendLine($"Group number: {groupNumberString}");

            var message = sb.ToString();

            await ctx.RespondAsync(message);
        }