You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

CommandsPlugin.Events.cs 2.1 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. using System;
  2. namespace Discord.Commands
  3. {
  4. public class PermissionException : Exception { public PermissionException() : base("User does not have permission to run this command.") { } }
  5. public class ArgumentException : Exception { public ArgumentException() : base("This command requires more arguments.") { } }
  6. public class CommandEventArgs
  7. {
  8. public Message Message { get; }
  9. public Command Command { get; }
  10. public string MessageText { get; }
  11. public string CommandText { get; }
  12. public string ArgText { get; }
  13. public int? Permissions { get; }
  14. public string[] Args { get; }
  15. public User User => Message.User;
  16. public Channel Channel => Message.Channel;
  17. public Server Server => Message.Channel.Server;
  18. public CommandEventArgs(Message message, Command command, string messageText, string commandText, string argText, int? permissions, string[] args)
  19. {
  20. Message = message;
  21. Command = command;
  22. MessageText = messageText;
  23. CommandText = commandText;
  24. ArgText = argText;
  25. Permissions = permissions;
  26. Args = args;
  27. }
  28. }
  29. public class CommandErrorEventArgs : CommandEventArgs
  30. {
  31. public Exception Exception { get; }
  32. public CommandErrorEventArgs(CommandEventArgs baseArgs, Exception ex)
  33. : base(baseArgs.Message, baseArgs.Command, baseArgs.MessageText, baseArgs.CommandText, baseArgs.ArgText, baseArgs.Permissions, baseArgs.Args)
  34. {
  35. Exception = ex;
  36. }
  37. }
  38. public partial class CommandsPlugin
  39. {
  40. public event EventHandler<CommandEventArgs> RanCommand;
  41. private void RaiseRanCommand(CommandEventArgs args)
  42. {
  43. if (RanCommand != null)
  44. RanCommand(this, args);
  45. }
  46. public event EventHandler<CommandEventArgs> UnknownCommand;
  47. private void RaiseUnknownCommand(CommandEventArgs args)
  48. {
  49. if (UnknownCommand != null)
  50. UnknownCommand(this, args);
  51. }
  52. public event EventHandler<CommandErrorEventArgs> CommandError;
  53. private void RaiseCommandError(CommandEventArgs args, Exception ex)
  54. {
  55. if (CommandError != null)
  56. CommandError(this, new CommandErrorEventArgs(args, ex));
  57. }
  58. }
  59. }