* Update deps, fix test warnings.
* Support ns2.0
* Fix typo
* Remove ns1.1 support
* Net.Http and Net.Websockets.Client are not needed in ns2.0
* Move to net46 per volt
* Remove ns1.3 constants
* Add ability to support different types of quotation marks
* Added normal quotation mark to list of aliases, removed single quote mark
* clean up leftover changes from testing
* change quotation mark parsing to use a map of matching pairs
* remove commented out code
* Fix conventions of the command parser utility functions
* change storage type of alias dictionary to be IReadOnlyDictionary
* revert type of CommandServiceConfig QuotationMarkAliasMap to Dictionary
* minor formatting changes to CommandParser
* remove unnecessary whitespace
* Move aliases outside of CommandInfo class
* copy IReadOnlyDictionary to ImmutableDictionary
* minor syntax changes in CommandServiceConfig
* add newline before namespace for consistency
* newline formatting tweak
* simplification of GetMatch method for CommandParser
* add more quote unicode punctuation pairs
* add check for null value when building ImmutableDictionary
* Move default alias map into a separate source file
* Ensure that the collection passed into command service is not null
* Allow setting IgnoreExtraArgs on an individual basis
* Remove passing in the flag as a separate parameter
* VS plz
* Push the RunMode setting out to its own attribute, because fox wants consistency.
Bonus: Removes the need for that godawful 'RunMode.Default'.
* Revert previous commit
* Fox doesn't like module-wide switches 😒
To reply with just a rich embed, users have to invoke ReplyAsync with
`ReplyAsync("", embed: embed)`, which seems wasteful, when they only
need to specify the embed.
In f19730e4, AddModule(s)Async was changed so that the IServiceProvider
was optional, both at compile time and runtime. This had the side effect
of meaning that there was no longer a compile-time hint that users would
need to pass an IServiceProvider to AddModulesAsync. I assumed this
would not be an issue - users would recognize the runtime exception here
and self correct - but activity in our Discord support channel would
indicate otherwise.
We now require the user to explicitly opt-out of dependency injection -
they are still free to pass null in place of an IServiceProvider if they
do not intend to use one, and the library will handle this at runtime.
IServiceProvider does not support scopes by itself - this is a behavior
introduced by Microsoft's DI container. As such, not all DI containers
may support an IScopeFactory the way that Microsoft's DI is expecting
them to.
This also means that our builtin EmptyServiceProvider does not support
scopes - meaning that users who do not use a DI container can not invoke
commands.
* Set usage of TokenType.User as an error rather than a warning.
* Remove commented sections and #pragma's
Additionally, changes use of ReadMessages to ViewChannel since that Obsolete was also suppressed by the pragma