A general-purpose and powerful Discord bot with osu! features related to mapping & modding
- invite link (or run
/info
on a server the bot is in) - Discord server: If you want to notified with all bot updates, or make bug reports/feature requests.
This bot contains many features that makes your life easier as an osu! Discord server owner, moderator or member, including:
- Message purging
- Sending messages as the bot user
- A configurable quote responses system
- command cooldowns
- A message logging system
- A reminder system
- A bunch of fun and trivial commands
- Clickable osu! timestamps
- Automatic beatmap discussion and comment embeds
The bot also interacts with osu!'s API v2 and the BN/NAT Management website's interOp routes to provide you with multiple stats and management systems such as:
- An OAuth2 verification system where you sign up with your osu! account in order to be granted access to the server, with usergroup-specific role assignments
- A feed system that actively keeps track of the request statuses for all BNs/NATs
- Several commands that allow you to view your playing/mapping stats from the osu! website or the BN/NAT website
- Sebola3461 for helping me a lot with this project!
- pishifat for granting me access to BN site's interOp routes.
- invite the bot.
- type
/help
to see a list of all available commands; Use/help <command>
to see how a specific command works.
from this step onwards, you can set up any of these following systems as a server owner/manager:
- The osu! verification system
- The logging channel
- The quotes system
- The command cooldowns system
Before starting to work on things for this project, please open an issue that describes what you're working on, and wait for approval from one of the main devs!
If you want to contribute to this project, please read the following to learn how to set up a local instance of the bot, and read this to learn more about the command structure of the bot:
- A Discord bot user
- Node v17
- yarn
- MongoDB
- an osu! API v2 client
- (optional) BN site interOp access
- Clone the repository
yarn
- Set up
config.json
owners
: array of Discord user IDs that will be considered as bot ownersownersOsuIds
: array of osu! user IDs that will be considered as bot ownersautomation
: boolean that determines whether the bot should run automated tasks
- Set up
.env
file starting from the.env.example
fileTOKEN
: bot's tokenCLIENT_ID
: bot's client IDOSU_CLIENT_ID
: osu! API v2 client IDOSU_CLIENT_SECRET
: osu! API v2 client secretPORT
: port, default is 3000MONGO_USER
: MongoDB usernameMONGO_PASSWORD
: MongoDB passwordMONGO_DB
: mongoDB database nameMONGO_CLUSTER
: mongoDB cluster nameQAT_USER
: BN site interOp username1QAT_SECRET
: BN site interOp secret1OSU_USERNAME
: your osu! username2OSU_PASSWORD
: your osu! password2
yarn dev