Skip to content

A Discord bot meant to streamline the organisation of mapping collabs for osu!

Notifications You must be signed in to change notification settings

mappingtools/osu-collaboration-bot

Repository files navigation

osu! Collaboration Bot

This is a Discord bot meant to help manage big osu! mapping collabs in Discord. It automates various tedious tasks that collab organisers have to deal with, especially when you have many people working on a beatmap.

Built using Mapping Tools Core, Discord.Net, and a backing PostgreSQL database.

Features:

  • Creation and deletion of mapping projects
  • Adding or removing members of a project
  • Configurable permissions
  • Beatmap part division and claiming
  • Merging submitted parts and posting the latest version of the beatmap
  • Project channel and role creation
  • Reminders about upcoming deadlines
  • Part picking priority system
  • Generation of beatmap tags and description
  • CSV export of annotated beatmap parts for storyboarding
  • Mapped drain time calculation
  • Generation of difficulty names

For a full list of commands use /help in a server where the bot is present.

Adding this bot to your server

You can add this bot to your server by clicking here.

Make sure your collab category permissions are set up correctly. The bot needs at least the View Channels, Manage Channels, Manage Permissions, Send Messages and Create Posts, Attach Files, and Mention @everyone, @here and All Roles permissions in this category.

Lastly use /adminguide and /help guild to get a list of commands that can be used to configure the bot for your server.

To run this bot

  • Create a PostgreSQL database with the schema from database.sql
  • Add your discord bot token and PostgreSQL connection string to appsettings.json OR add them as environment variables:
App__ConnectionString=<YOUR CONNECTION STRING>
App__Token=<YOUR DISCORD BOT TOKEN>
  • Compile and run the program with .NET 6.0

Running with Docker

You can build a Docker image with the provided Docker compose file. To do this, you first have to edit docker-compose.yml and add in your Discord bot token in the environment variables where it says <BOT TOKEN HERE/>. You can also change the output location for the logs from usr/share/osu-collab-bot/logs to somewhere else.

If you want to be able to access the PostgreSQL database externally, uncomment the ports section of the Docker compose file and change the password of the database to something secure. Don't forget to update the password in the connection string environment variable.

About

A Discord bot meant to streamline the organisation of mapping collabs for osu!

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published