/// <summary> /// Initializes a new instance of the <see cref="TestPlugin"/> class. /// The plugin constructor can receive services by dependency injection. /// </summary> public TestPlugin(ICommandService commands, IPermissionService permissions) { Console.WriteLine("TEST PLUGIN - Constructor"); commands.RegisterDelegate("ping", ctx => ctx.Respond("pong")); permissions.SetDefaultAccess(PermissionModifier.Allow); //permissions.GetPermissions("misc", "console").AddExpression(new PermissionExpression("cmd.ping")); permissions.SavePermissions(); commands.AddProcessorStep((ctx, next) => { if (ctx.Sender is ConsoleService) { var node = $"cmd.{ctx.CommandName}"; if (!permissions.IsAllowed("misc", "console", node)) { ctx.Respond($"You do not have permission to use this command (node {node})."); return; } } next(ctx); }); }