Browse Source

Push the RunMode setting out to its own attribute, because fox wants consistency.

Bonus: Removes the need for that godawful 'RunMode.Default'.
pull/998/head
Joe4evr 8 years ago
parent
commit
1ed77f87b7
8 changed files with 27 additions and 7 deletions
  1. +0
    -1
      src/Discord.Net.Commands/Attributes/CommandAttribute.cs
  2. +15
    -0
      src/Discord.Net.Commands/Attributes/SetRunModeAttribute.cs
  3. +2
    -0
      src/Discord.Net.Commands/Builders/ModuleBuilder.cs
  4. +6
    -1
      src/Discord.Net.Commands/Builders/ModuleClassBuilder.cs
  5. +0
    -2
      src/Discord.Net.Commands/CommandService.cs
  6. +1
    -1
      src/Discord.Net.Commands/Info/CommandInfo.cs
  7. +2
    -0
      src/Discord.Net.Commands/Info/ModuleInfo.cs
  8. +1
    -2
      src/Discord.Net.Commands/RunMode.cs

+ 0
- 1
src/Discord.Net.Commands/Attributes/CommandAttribute.cs View File

@@ -6,7 +6,6 @@ namespace Discord.Commands
public class CommandAttribute : Attribute
{
public string Text { get; }
public RunMode RunMode { get; set; } = RunMode.Default;

public CommandAttribute()
{


+ 15
- 0
src/Discord.Net.Commands/Attributes/SetRunModeAttribute.cs View File

@@ -0,0 +1,15 @@
using System;

namespace Discord.Commands
{
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = false, Inherited = true)]
public sealed class SetRunModeAttribute : Attribute
{
public RunMode RunMode { get; }

public SetRunModeAttribute(RunMode runMode)
{
RunMode = runMode;
}
}
}

+ 2
- 0
src/Discord.Net.Commands/Builders/ModuleBuilder.cs View File

@@ -20,6 +20,7 @@ namespace Discord.Commands.Builders
public string Remarks { get; set; }
public string Group { get; set; }
public bool IgnoreExtraArgs { get; set; }
public RunMode RunMode { get; set; }

public IReadOnlyList<CommandBuilder> Commands => _commands;
public IReadOnlyList<ModuleBuilder> Modules => _submodules;
@@ -35,6 +36,7 @@ namespace Discord.Commands.Builders
Service = service;
Parent = parent;
IgnoreExtraArgs = service._ignoreExtraArgs;
RunMode = service._defaultRunMode;

_commands = new List<CommandBuilder>();
_submodules = new List<ModuleBuilder>();


+ 6
- 1
src/Discord.Net.Commands/Builders/ModuleClassBuilder.cs View File

@@ -126,6 +126,9 @@ namespace Discord.Commands
case IgnoreExtraArgsAttribute ignoreExtra:
builder.IgnoreExtraArgs = ignoreExtra.IgnoreValue;
break;
case SetRunModeAttribute runmode:
builder.RunMode = runmode.RunMode;
break;
default:
builder.AddAttributes(attribute);
break;
@@ -159,7 +162,6 @@ namespace Discord.Commands
{
case CommandAttribute command:
builder.AddAliases(command.Text);
builder.RunMode = command.RunMode;
builder.Name = builder.Name ?? command.Text;
break;
case NameAttribute name:
@@ -183,6 +185,9 @@ namespace Discord.Commands
case IgnoreExtraArgsAttribute ignoreExtra:
builder.IgnoreExtraArgs = ignoreExtra.IgnoreValue;
break;
case SetRunModeAttribute runmode:
builder.RunMode = runmode.RunMode;
break;
default:
builder.AddAttributes(attribute);
break;


+ 0
- 2
src/Discord.Net.Commands/CommandService.cs View File

@@ -45,8 +45,6 @@ namespace Discord.Commands
_ignoreExtraArgs = config.IgnoreExtraArgs;
_separatorChar = config.SeparatorChar;
_defaultRunMode = config.DefaultRunMode;
if (_defaultRunMode == RunMode.Default)
throw new InvalidOperationException("The default run mode cannot be set to Default.");

_logManager = new LogManager(config.LogLevel);
_logManager.Message += async msg => await _logEvent.InvokeAsync(msg).ConfigureAwait(false);


+ 1
- 1
src/Discord.Net.Commands/Info/CommandInfo.cs View File

@@ -43,7 +43,7 @@ namespace Discord.Commands
Summary = builder.Summary;
Remarks = builder.Remarks;

RunMode = (builder.RunMode == RunMode.Default ? service._defaultRunMode : builder.RunMode);
RunMode = builder.RunMode;
Priority = builder.Priority;

Aliases = module.Aliases


+ 2
- 0
src/Discord.Net.Commands/Info/ModuleInfo.cs View File

@@ -14,6 +14,7 @@ namespace Discord.Commands
public string Remarks { get; }
public string Group { get; }
public bool IgnoreExtraArgs { get; }
public RunMode RunMode { get; }

public IReadOnlyList<string> Aliases { get; }
public IReadOnlyList<CommandInfo> Commands { get; }
@@ -32,6 +33,7 @@ namespace Discord.Commands
Remarks = builder.Remarks;
Group = builder.Group;
IgnoreExtraArgs = builder.IgnoreExtraArgs;
RunMode = builder.RunMode;
Parent = parent;

Aliases = BuildAliases(builder, service).ToImmutableArray();


+ 1
- 2
src/Discord.Net.Commands/RunMode.cs View File

@@ -1,8 +1,7 @@
namespace Discord.Commands
namespace Discord.Commands
{
public enum RunMode
{
Default,
Sync,
Async
}


Loading…
Cancel
Save