Akuma Matata
A Discord Bot written in Python using the Rewrite API Wrapper
Getting Started
Prerequisites
- Python 3.6
- Discord Rewrite API Wrapper
You can get the Wrapper with pip:
python -m pip install discord.py
Depending on your OS and environment you need to type python3
or another equivalent instead of python
Initial setup
- Go to your Discord's App Overview and create a new app.
- Scroll down and "Create a Bot User"
- Reveal and copy Token of your new Bot
- Start the Bot (see below)
- The Bot will ask you for the Token. Paste it.
- Go to your Discord's App Overview again and open the Bot
- Click on "Generate OAuth2 URL" and give the bot
Administrator
Bot Permissions - Open the generated URL and add the Bot to your Server
Start the Bot
Just open a console and type python akuma.py
Depending on your OS and environment you need to type python3
or another equivalent instead of python
Configuration
The configuration files for the bot are now stored in %APPDATA%, $XDG_CONFIG_HOME or ~/.config. The specific directory for these files is Akumatic/Akuma-Matata
. However is a direct interaction with them not necessary anymore.
Add your own extensions
It is easy to create a new extension on your own. First you need to create a new python file in the "extensions" folder.
You'll need this code in the newly created file:
from discord.ext import commands
class Name(commands.Cog):
def __init__(self, bot):
self.bot = bot
#Setup
def setup(bot):
bot.add_cog(Name(bot))
Just replace "Name" in Line 1 and 6 by an own class name. A new command needs to be a member of this class.
Instead of using @bot.command()
you'll need to use @commands.command()
.
The first argument of a method needs to be self
.
After implementing all your functions, you just need to load the extension with the following command in any channel your bot can listen to: load <extension>
If you add true
to your command, the extension will be added to your configuration files and gets automatically loaded on start.
An Example:
from discord.ext import commands
class PingPong(commands.Cog):
def __init__(self, bot):
self.bot = bot
@commands.command()
async def ping(self, ctx):
await ctx.send("Pong")
#Setup
def setup(bot):
bot.add_cog(PingPong(bot))
License
This project is licensed under the MIT License - see the LICENSE file for details