Browse Source

Added required parameter to GetService

tags/docs-0.9
RogueException 9 years ago
parent
commit
2e4f880563
7 changed files with 19 additions and 28 deletions
  1. +2
    -2
      src/Discord.Net.Commands/CommandExtensions.cs
  2. +2
    -6
      src/Discord.Net.Commands/Permissions/Levels/PermissionLevelChecker.cs
  3. +2
    -6
      src/Discord.Net.Commands/Permissions/Userlist/BlacklistChecker.cs
  4. +2
    -6
      src/Discord.Net.Commands/Permissions/Userlist/WhitelistChecker.cs
  5. +2
    -2
      src/Discord.Net.Modules/ModuleExtensions.cs
  6. +1
    -3
      src/Discord.Net.Modules/ModuleManager.cs
  7. +8
    -3
      src/Discord.Net/DiscordClient.cs

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

@@ -2,7 +2,7 @@
{
public static class CommandExtensions
{
public static CommandService Commands(this DiscordClient client)
=> client.GetService<CommandService>();
public static CommandService Commands(this DiscordClient client, bool required = true)
=> client.GetService<CommandService>(required);
}
}

+ 2
- 6
src/Discord.Net.Commands/Permissions/Levels/PermissionLevelChecker.cs View File

@@ -1,6 +1,4 @@
using System;

namespace Discord.Commands.Permissions.Levels
namespace Discord.Commands.Permissions.Levels
{
public class PermissionLevelChecker : IPermissionChecker
{
@@ -12,10 +10,8 @@ namespace Discord.Commands.Permissions.Levels

internal PermissionLevelChecker(DiscordClient client, int minPermissions)
{
_service = client.GetService<PermissionLevelService>();
_service = client.GetService<PermissionLevelService>(true);
_minPermissions = minPermissions;
if (_service == null)
throw new InvalidOperationException($"{nameof(PermissionLevelService)} must be added to {nameof(DiscordClient)} before this function is called.");
}

public bool CanRun(Command command, User user, Channel channel)


+ 2
- 6
src/Discord.Net.Commands/Permissions/Userlist/BlacklistChecker.cs View File

@@ -1,6 +1,4 @@
using System;

namespace Discord.Commands.Permissions.Userlist
namespace Discord.Commands.Permissions.Userlist
{
public class BlacklistChecker : IPermissionChecker
{
@@ -8,9 +6,7 @@ namespace Discord.Commands.Permissions.Userlist

internal BlacklistChecker(DiscordClient client)
{
_service = client.GetService<BlacklistService>();
if (_service == null)
throw new InvalidOperationException($"{nameof(BlacklistService)} must be added to {nameof(DiscordClient)} before this function is called.");
_service = client.GetService<BlacklistService>(true);
}

public bool CanRun(Command command, User user, Channel channel)


+ 2
- 6
src/Discord.Net.Commands/Permissions/Userlist/WhitelistChecker.cs View File

@@ -1,6 +1,4 @@
using System;

namespace Discord.Commands.Permissions.Userlist
namespace Discord.Commands.Permissions.Userlist
{
public class WhitelistChecker : IPermissionChecker
{
@@ -8,9 +6,7 @@ namespace Discord.Commands.Permissions.Userlist

internal WhitelistChecker(DiscordClient client)
{
_service = client.GetService<WhitelistService>();
if (_service == null)
throw new InvalidOperationException($"{nameof(WhitelistService)} must be added to {nameof(DiscordClient)} before this function is called.");
_service = client.GetService<WhitelistService>(true);
}

public bool CanRun(Command command, User user, Channel channel)


+ 2
- 2
src/Discord.Net.Modules/ModuleExtensions.cs View File

@@ -2,7 +2,7 @@
{
public static class ModuleExtensions
{
public static ModuleService Modules(this DiscordClient client)
=> client.GetService<ModuleService>();
public static ModuleService Modules(this DiscordClient client, bool required = true)
=> client.GetService<ModuleService>(required);
}
}

+ 1
- 3
src/Discord.Net.Modules/ModuleManager.cs View File

@@ -109,9 +109,7 @@ namespace Discord.Modules

public void CreateCommands(string prefix, Action<CommandGroupBuilder> config)
{
var commandService = _client.Commands();
if (commandService == null)
throw new InvalidOperationException($"{nameof(CommandService)} must be added to DiscordClient before this property is accessed.");
var commandService = _client.Commands(true);
commandService.CreateGroup(prefix, x =>
{
x.Category(_name);


+ 8
- 3
src/Discord.Net/DiscordClient.cs View File

@@ -280,15 +280,20 @@ namespace Discord
obj.Install(this);
return obj;
}
public T GetService<T>()
public T GetService<T>(bool required = true)
where T : class, IService
{
IService service;
T serviceT = null;
if (_services.TryGetValue(typeof(T), out service))
return service as T;
serviceT = service as T;
else
return null;
}

if (serviceT == null && required)
throw new InvalidOperationException($"This operation requires {nameof(T)} to be added to {nameof(DiscordClient)}.");
return serviceT;
}

protected override IEnumerable<Task> GetTasks()
{


Loading…
Cancel
Save