A Discord bot made for the ANZT Discord server to assist with the running of osu! tournaments.
See server/README.md for details about the web server and tourney-signup.py
for the cog that it communicates with.
Allows users to sign up for tournaments by interacting with the bot.
This uses osu!'s OAuth2 service and is used to link each user's osu! and discord accounts.
Previously we used Google Forms but this allowed people to sign up on behalf of others, regardless of their intention to play or not. In addition, form responses often contained human error.
See match-result-posting.py
for implementation.
The feature is triggered by the match ID being posted in our referee's channel.
It fetches data from Google Sheets and the osu! API.
See qualifiers.py
for implementation.
Allows users that are registered for the tournament to pick and choose their qualifier lobby using their discord account at any time. Referees can then check the messages below to know when to invite which osu! accounts.
See twitch-pickem.py
for implementation.
Includes a command to opt-in or out of receiving these pings by giving or removing the relevant discord role.
See amplifiers.py
for implementation.
The tournament ANZT10S featured a custom gimmick where users could choose at least one modifier to their matches each week. This cog allowed ANZTBot to message each player their options each week, providing a dropdown for users to select their chosen amplifier(s) and persisting their choice in a database.
See error-reporting.py
for implementation.
Pings a set user in a set channel for uncaught errors providing a full traceback and context.
See requirements.txt
for specific packages.
The following can be set in the settings.py
file (refer settings_template.json
).
- A Discord bot's token. See
discord.py
's documentation - A Google service account's credentials to read spreadsheets. See
gpsread
's documentation which also applies togspread_asyncio
- A Twitch Application's ID and secret. See
python-twitch-client
's documentation. PostgreSQL database credentials for the qualifier lobbies feature
If you want to use this bot, you'll have to host it yourself and adapt the code to your use-case. Some coding knowledge will be required.