Permissions now friendly to custom reactions (soon™️)
This commit is contained in:
parent
0d918d39c9
commit
3f168a21f1
@ -19,8 +19,19 @@ namespace NadekoBot.Modules.Help
|
|||||||
{
|
{
|
||||||
public string HelpString {
|
public string HelpString {
|
||||||
get {
|
get {
|
||||||
var str = "To add me to your server, use this link -> <https://discordapp.com/oauth2/authorize?client_id={0}&scope=bot&permissions=66186303>\n";
|
var str = @"To add me to your server, use this link -> <https://discordapp.com/oauth2/authorize?client_id={0}&scope=bot&permissions=66186303>
|
||||||
return str + String.Format(str, NadekoBot.Credentials.ClientId);
|
You can use `{1}modules` command to see a list of all modules.
|
||||||
|
You can use `{1}commands ModuleName`
|
||||||
|
(for example `{1}commands Administration`) to see a list of all of the commands in that module.
|
||||||
|
For a specific command help, use {1}h ""Command name"" (for example {1}h !!q)
|
||||||
|
|
||||||
|
|
||||||
|
**LIST OF COMMANDS CAN BE FOUND ON THIS LINK**
|
||||||
|
<https://github.com/Kwoth/NadekoBot/blob/master/commandlist.md>
|
||||||
|
|
||||||
|
|
||||||
|
Nadeko Support Server: https://discord.gg/0ehQwTK2RBjAxzEY";
|
||||||
|
return String.Format(str, NadekoBot.Credentials.ClientId, NadekoBot.ModulePrefixes[typeof(Help).Name]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public Help(ILocalization loc, CommandService cmds, ShardedDiscordClient client) : base(loc, cmds, client)
|
public Help(ILocalization loc, CommandService cmds, ShardedDiscordClient client) : base(loc, cmds, client)
|
||||||
|
@ -17,10 +17,17 @@ namespace NadekoBot.Modules.Permissions
|
|||||||
{
|
{
|
||||||
var perms = permsEnumerable as List<Permission> ?? permsEnumerable.ToList();
|
var perms = permsEnumerable as List<Permission> ?? permsEnumerable.ToList();
|
||||||
int throwaway;
|
int throwaway;
|
||||||
return perms.CheckPermissions(message, command, out throwaway);
|
return perms.CheckPermissions(message, command.Name, command.Module.Name, out throwaway);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool CheckPermissions(this IEnumerable<Permission> permsEnumerable, IUserMessage message, Command command, out int permIndex)
|
public static bool CheckPermissions(this IEnumerable<Permission> permsEnumerable, IUserMessage message, string commandName, string moduleName)
|
||||||
|
{
|
||||||
|
var perms = permsEnumerable as List<Permission> ?? permsEnumerable.ToList();
|
||||||
|
int throwaway;
|
||||||
|
return perms.CheckPermissions(message, commandName, moduleName, out throwaway);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool CheckPermissions(this IEnumerable<Permission> permsEnumerable, IUserMessage message, string commandName, string moduleName, out int permIndex)
|
||||||
{
|
{
|
||||||
var perms = permsEnumerable as List<Permission> ?? permsEnumerable.ToList();
|
var perms = permsEnumerable as List<Permission> ?? permsEnumerable.ToList();
|
||||||
|
|
||||||
@ -28,7 +35,7 @@ namespace NadekoBot.Modules.Permissions
|
|||||||
{
|
{
|
||||||
var perm = perms[i];
|
var perm = perms[i];
|
||||||
|
|
||||||
var result = perm.CheckPermission(message, command);
|
var result = perm.CheckPermission(message, commandName, moduleName);
|
||||||
|
|
||||||
if (result == null)
|
if (result == null)
|
||||||
{
|
{
|
||||||
@ -47,12 +54,12 @@ namespace NadekoBot.Modules.Permissions
|
|||||||
//null = not applicable
|
//null = not applicable
|
||||||
//true = applicable, allowed
|
//true = applicable, allowed
|
||||||
//false = applicable, not allowed
|
//false = applicable, not allowed
|
||||||
public static bool? CheckPermission(this Permission perm, IUserMessage message, Command command)
|
public static bool? CheckPermission(this Permission perm, IUserMessage message, string commandName, string moduleName)
|
||||||
{
|
{
|
||||||
if (!((perm.SecondaryTarget == SecondaryPermissionType.Command &&
|
if (!((perm.SecondaryTarget == SecondaryPermissionType.Command &&
|
||||||
perm.SecondaryTargetName.ToLowerInvariant() == command.Text.ToLowerInvariant()) ||
|
perm.SecondaryTargetName.ToLowerInvariant() == commandName.ToLowerInvariant()) ||
|
||||||
(perm.SecondaryTarget == SecondaryPermissionType.Module &&
|
(perm.SecondaryTarget == SecondaryPermissionType.Module &&
|
||||||
perm.SecondaryTargetName.ToLowerInvariant() == command.Module.Name.ToLowerInvariant()) ||
|
perm.SecondaryTargetName.ToLowerInvariant() == moduleName.ToLowerInvariant()) ||
|
||||||
perm.SecondaryTarget == SecondaryPermissionType.AllModules))
|
perm.SecondaryTarget == SecondaryPermissionType.AllModules))
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
|
@ -164,7 +164,7 @@ namespace NadekoBot.Services
|
|||||||
if (guild != null)
|
if (guild != null)
|
||||||
{
|
{
|
||||||
int index;
|
int index;
|
||||||
if (!rootPerm.AsEnumerable().CheckPermissions(message, cmd, out index))
|
if (!rootPerm.AsEnumerable().CheckPermissions(message, cmd.Name, cmd.Module.Name, out index))
|
||||||
{
|
{
|
||||||
var returnMsg = $"Permission number #{index} **{rootPerm.GetAt(index).GetCommand()}** is preventing this action.";
|
var returnMsg = $"Permission number #{index} **{rootPerm.GetAt(index).GetCommand()}** is preventing this action.";
|
||||||
return new Tuple<Command, IResult>(cmd, SearchResult.FromError(CommandError.Exception, returnMsg));
|
return new Tuple<Command, IResult>(cmd, SearchResult.FromError(CommandError.Exception, returnMsg));
|
||||||
|
Loading…
Reference in New Issue
Block a user