zephyrkul 04e97f3516 [CustomCom] Custom Command Parameters (#2051)
* [V3 CustomCom] Custom Command Parameters

Allows specifying more parameters for CC's via {0}, {1}, etc. that will be filled by the user invoking the CC. Python-style type hinting and attribute access is also allowed for Discord and builtin types.

> [p]cc add simple greet Hi, {0.mention:Member}!
> ...
> [p]greet zephyrkul
> Hi, @zephyrkul!

The bot will reply with the standard help messages if the cc is incorrectly executed.

> [p]greet me
> Member "me" not found

* black formatting

* check command failure

Only call the custom command if the faked command succeeded.

* misc fixes

1) don't str.strip all the time, it's not family-friendly and doesn't match transform_parameter
2) transform_arg now actually returns strings in every case
3) improve prepare_args parsing security
4) help parameters will show what type they expect
5) make linter less angery

* customcom documentation

I hate rst

* don't require repeated type hinting

If a parameter was type hinted previously, don't require it again.
Ex: `{0.display_name:Member}#{0.discriminator}` is now possible.

* add cog_customcom.rts to index

I despise rst

* don't enforce order

Allow type hinting and attribute access to be in either order.
Ex. `{0:Member.mention}` is now valid.

* clean up on_message

We're building context anyway, may as well use it.

* [doc] correct cog name

Cog class is named CustomCommands, not CustomCom

* minor on_message optimization

only build context if it's needed

* update cc_add docstring

Old one wasn't user-friendly. Replaced with a link to the new docs.
Link will not function until PR is merged and docs refreshed.

* [doc] change repeat to say

repeat is an audio command, use say in the example instead

* compare ctx.prefix to None

allows for null prefixes, which is a bad idea but who am I to judge

* address review

* raise error on conflicting colon notation

bugfix I was working on but failed to actually commit
2018-09-07 00:14:02 +10:00
2018-01-09 16:20:05 -09:00
2018-08-15 12:10:55 +10:00


Red - Discord Bot
Red Discord Bot

Music, Moderation, Trivia, Stream Alerts and Fully Modular.

Discord Server Support Red on Patreon! Made with Python 3 Localized with Crowdin discord.py

Travis CI Red on readthedocs.org Code Style: Black

OverviewInstallationDocumentationPluginsCommunityLicense

Overview

Red is a fully modular bot meaning all features and commands can be enabled/disabled to your liking, making it completely customizable. This is also a self-hosted bot meaning you will need to host and maintain your own instance. You can turn Red into an admin bot, music bot, trivia bot, new best friend or all of these together!

Installation is easy, and you do NOT need to know anything about coding! Aside from installation and updating, every part of the bot can be controlled from within Discord.

The default set of modules includes and is not limited to:

  • Moderation features (kick/ban/softban/hackban, mod-log, filter, chat cleanup)
  • Trivia (lists are included and can be easily added)
  • Music features (YouTube, SoundCloud, local files, playlists, queues)
  • Stream alerts (Twitch, Youtube, Mixer, Hitbox, Picarto)
  • Bank (slot machine, user credits)
  • Custom commands
  • Imgur/gif search
  • Admin automation (self-role assignment, cross-server announcements, mod-mail reports)
  • Customisable command permissions

Additionally, other plugins (cogs) can be easily found and added from our growing community of cog repositories.

Installation

The following platforms are officially supported:

Already using Red V2? Take a look at the Data Converter to import your data to V3.

If after reading the guide you are still experiencing issues, feel free to join the Official Discord Server and ask in the #v3-support channel for help.

Plugins

Red is fully modular, allowing you to load and unload plugins of your choice, and install 3rd party plugins directly from Discord! A few examples are:

  • Cleverbot integration (talk to Red and she talks back)
  • Ban sync
  • Welcome messages
  • Casino
  • Reaction roles
  • Slow Mode
  • Anilist
  • And much, much more!

Feel free to take a peek at a list of available 3rd party cogs!

Join the community!

Red is in continuous development, and its supported by an active community which produces new content (cogs/plugins) for everyone to enjoy. New features are constantly added. If you cant find the cog youre looking for, consult our guide on building your own cogs!

Join us on our Official Discord Server!

License

Released under the GNU GPL v3 license.

Red is named after the main character of "Transistor", a video game by Super Giant Games.

Artwork created by Sinlaire on Deviant Art for the Red Discord Bot Project.

Languages
Python 98.9%
PLpgSQL 0.9%