Auto adding requirements to help description
This commit is contained in:
		@@ -484,6 +484,7 @@ namespace NadekoBot.Modules.Administration
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            [NadekoCommand, Usage, Description, Aliases]
 | 
					            [NadekoCommand, Usage, Description, Aliases]
 | 
				
			||||||
            [RequireContext(ContextType.Guild)]
 | 
					            [RequireContext(ContextType.Guild)]
 | 
				
			||||||
 | 
					            [RequirePermission(GuildPermission.Administrator)]
 | 
				
			||||||
            [OwnerOnly]
 | 
					            [OwnerOnly]
 | 
				
			||||||
            public async Task LogServer(IUserMessage msg)
 | 
					            public async Task LogServer(IUserMessage msg)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
@@ -507,6 +508,7 @@ namespace NadekoBot.Modules.Administration
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            [NadekoCommand, Usage, Description, Aliases]
 | 
					            [NadekoCommand, Usage, Description, Aliases]
 | 
				
			||||||
            [RequireContext(ContextType.Guild)]
 | 
					            [RequireContext(ContextType.Guild)]
 | 
				
			||||||
 | 
					            [RequirePermission(GuildPermission.Administrator)]
 | 
				
			||||||
            [OwnerOnly]
 | 
					            [OwnerOnly]
 | 
				
			||||||
            public async Task LogIgnore(IUserMessage imsg)
 | 
					            public async Task LogIgnore(IUserMessage imsg)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
@@ -602,6 +604,7 @@ namespace NadekoBot.Modules.Administration
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            [NadekoCommand, Usage, Description, Aliases]
 | 
					            [NadekoCommand, Usage, Description, Aliases]
 | 
				
			||||||
            [RequireContext(ContextType.Guild)]
 | 
					            [RequireContext(ContextType.Guild)]
 | 
				
			||||||
 | 
					            [RequirePermission(GuildPermission.Administrator)]
 | 
				
			||||||
            public async Task UserPresence(IUserMessage imsg)
 | 
					            public async Task UserPresence(IUserMessage imsg)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                var channel = (ITextChannel)imsg.Channel;
 | 
					                var channel = (ITextChannel)imsg.Channel;
 | 
				
			||||||
@@ -624,6 +627,7 @@ namespace NadekoBot.Modules.Administration
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
            [NadekoCommand, Usage, Description, Aliases]
 | 
					            [NadekoCommand, Usage, Description, Aliases]
 | 
				
			||||||
            [RequireContext(ContextType.Guild)]
 | 
					            [RequireContext(ContextType.Guild)]
 | 
				
			||||||
 | 
					            [RequirePermission(GuildPermission.Administrator)]
 | 
				
			||||||
            public async Task VoicePresence(IUserMessage imsg)
 | 
					            public async Task VoicePresence(IUserMessage imsg)
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                var channel = (ITextChannel)imsg.Channel;
 | 
					                var channel = (ITextChannel)imsg.Channel;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -109,10 +109,25 @@ namespace NadekoBot.Modules.Help
 | 
				
			|||||||
            if (alias != null)
 | 
					            if (alias != null)
 | 
				
			||||||
                str += $" / `{ alias }`";
 | 
					                str += $" / `{ alias }`";
 | 
				
			||||||
            if (com != null)
 | 
					            if (com != null)
 | 
				
			||||||
                await channel.SendMessageAsync(str + $@"{Environment.NewLine}**Desc:** {com.Summary}
 | 
					                await channel.SendMessageAsync(str + $@"{Environment.NewLine}**Desc:** {com.Summary} {GetCommandRequirements(com)}
 | 
				
			||||||
**Usage:** {com.Remarks}").ConfigureAwait(false);
 | 
					**Usage:** {com.Remarks}").ConfigureAwait(false);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        private string GetCommandRequirements(Command cmd)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            return String.Join(" ", cmd.Source.CustomAttributes
 | 
				
			||||||
 | 
					                      .Where(ca => ca.AttributeType == typeof(OwnerOnlyAttribute) || ca.AttributeType == typeof(RequirePermissionAttribute))
 | 
				
			||||||
 | 
					                      .Select(ca =>
 | 
				
			||||||
 | 
					                      {
 | 
				
			||||||
 | 
					                          if (ca.AttributeType == typeof(OwnerOnlyAttribute))
 | 
				
			||||||
 | 
					                              return "**Bot owner only.**";
 | 
				
			||||||
 | 
					                          else if (ca.AttributeType == typeof(RequirePermissionAttribute))
 | 
				
			||||||
 | 
					                              return $"**Requires {(GuildPermission)ca.ConstructorArguments.FirstOrDefault().Value} server permission.**".Replace("Guild", "Server");
 | 
				
			||||||
 | 
					                          else
 | 
				
			||||||
 | 
					                              return $"**Requires {(GuildPermission)ca.ConstructorArguments.FirstOrDefault().Value} channel permission.**".Replace("Guild", "Server");
 | 
				
			||||||
 | 
					                      }));
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        [NadekoCommand, Usage, Description, Aliases]
 | 
					        [NadekoCommand, Usage, Description, Aliases]
 | 
				
			||||||
        [RequireContext(ContextType.Guild)]
 | 
					        [RequireContext(ContextType.Guild)]
 | 
				
			||||||
        [OwnerOnly]
 | 
					        [OwnerOnly]
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -5802,7 +5802,7 @@ namespace NadekoBot.Resources {
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
        /// <summary>
 | 
					        /// <summary>
 | 
				
			||||||
        ///    Looks up a localized string similar to `.send sid.
 | 
					        ///    Looks up a localized string similar to `.send sid`.
 | 
				
			||||||
        /// </summary>
 | 
					        /// </summary>
 | 
				
			||||||
        public static string send_usage {
 | 
					        public static string send_usage {
 | 
				
			||||||
            get {
 | 
					            get {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -763,7 +763,7 @@
 | 
				
			|||||||
    <value>Send a message to someone on a different server through the bot.  </value>
 | 
					    <value>Send a message to someone on a different server through the bot.  </value>
 | 
				
			||||||
  </data>
 | 
					  </data>
 | 
				
			||||||
  <data name="send_usage" xml:space="preserve">
 | 
					  <data name="send_usage" xml:space="preserve">
 | 
				
			||||||
    <value>`.send sid</value>
 | 
					    <value>`.send sid`</value>
 | 
				
			||||||
  </data>
 | 
					  </data>
 | 
				
			||||||
  <data name="mentionrole_cmd" xml:space="preserve">
 | 
					  <data name="mentionrole_cmd" xml:space="preserve">
 | 
				
			||||||
    <value>mentionrole menro</value>
 | 
					    <value>mentionrole menro</value>
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user