1
0
Fork 0
mirror of https://github.com/diamondburned/arikawa.git synced 2024-09-12 13:16:42 +00:00
arikawa/bot
diamondburned 273fcf1418 Bot: Added subcommand aliases and better setup API
This commit adds subcommand aliases as well as additional code in
HelpGenerate to cover for both subcommand and command aliases.

A breaking change is that {,Must}RegisterSubcommandCustom methods are
now replaced with normal {,Must}RegisterSubcommand methods. This is
because they now use variadic strings, which could take 0, 1 or more
arguments.

This commit also allows AddMiddleware and similar methods to be given a
method directly:

    sub.Plumb(cmds.PlumbedHandler)
    sub.AddMiddleware(cmds.PlumbedHandler, cmds.plumbMiddleware)

This change closes issue #146.
2020-11-12 19:02:52 -08:00
..
extras *: Migrated Go Modules to v2 2020-10-28 15:39:59 -07:00
arguments.go Bot: Allow hanging quotes if command has a custom parser 2020-08-11 13:44:32 -07:00
arguments_test.go Bot: Added more tests and the Help API 2020-05-14 14:04:18 -07:00
command.go Bot: Added automatic Intents detection from handlers 2020-10-28 22:49:18 -07:00
ctx.go Bot: Added subcommand aliases and better setup API 2020-11-12 19:02:52 -08:00
ctx_call.go Bot: Added subcommand aliases and better setup API 2020-11-12 19:02:52 -08:00
ctx_plumb_test.go *: Migrated Go Modules to v2 2020-10-28 15:39:59 -07:00
ctx_test.go Bot: Added subcommand aliases and better setup API 2020-11-12 19:02:52 -08:00
error.go make all error messages lowercase 2020-05-16 23:14:49 +02:00
error_test.go make all error messages lowercase 2020-05-16 23:14:49 +02:00
README.md Bot: Partially implemented middlewares 2020-05-14 13:59:17 -07:00
subcommand.go Bot: Added subcommand aliases and better setup API 2020-11-12 19:02:52 -08:00
subcommand_test.go Bot: Added more tests and the Help API 2020-05-14 14:04:18 -07:00

What are the performance impacts of this library?

Not a lot for a Discord bot:

THIS IS OUTDATED. TODO: UPDATE.

# Cold functions, or functions that are called once in runtime:
BenchmarkConstructor-8               	  150537	      7617 ns/op
BenchmarkSubcommandConstructor-8     	  155068	      7721 ns/op

# Hot functions, or functions that can be called multiple times:
BenchmarkCall-8                      	 1000000	      1194 ns/op
BenchmarkHelp-8                      	 1751619	       680 ns/op

# Hot functions, but called implicitly on non-message-create events:
BenchmarkReflectChannelID_1Level-8   	10111023	       113 ns/op
BenchmarkReflectChannelID_5Level-8   	 1872080	       686 ns/op