.h command show now properly show both channel and server user permission requirements

This commit is contained in:
Kwoth
2023-01-15 00:50:25 +01:00
parent 9841d72622
commit e71708f5e8
2 changed files with 15 additions and 11 deletions

View File

@@ -3,7 +3,7 @@ using NadekoBot.Modules.Administration.Services;
namespace Discord;
[AttributeUsage(AttributeTargets.Method)]
[AttributeUsage(AttributeTargets.Method, AllowMultiple = true)]
public class UserPermAttribute : RequireUserPermissionAttribute
{
public UserPermAttribute(GuildPerm permission)

View File

@@ -152,18 +152,22 @@ public class HelpService : IExecNoCommand, INService
.Any(x => x is OnlyPublicBotAttribute))
toReturn.Add("Only Public Bot");
var userPerm = (UserPermAttribute)cmd.Preconditions.FirstOrDefault(ca => ca is UserPermAttribute);
var userPermString = cmd.Preconditions
.Where(ca => ca is UserPermAttribute)
.Cast<UserPermAttribute>()
.Select(userPerm =>
{
if (userPerm.ChannelPermission is { } cPerm)
return GetPreconditionString(cPerm);
var userPermString = string.Empty;
if (userPerm is not null)
{
if (userPerm.ChannelPermission is { } cPerm)
userPermString = GetPreconditionString(cPerm);
if (userPerm.GuildPermission is { } gPerm)
userPermString = GetPreconditionString(gPerm);
}
if (userPerm.GuildPermission is { } gPerm)
return GetPreconditionString(gPerm);
return string.Empty;
})
.Where(x => !string.IsNullOrWhiteSpace(x))
.Join('\n');
if (overrides is null)
{
if (!string.IsNullOrWhiteSpace(userPermString))