Skip to content

general-purpose TypeScript Discord bot with osu! features related to mapping & modding

License

Notifications You must be signed in to change notification settings

Hiviexd/AxerBot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

b294d1d · Feb 19, 2025
Jan 22, 2025
May 10, 2022
Feb 19, 2025
Feb 12, 2023
Apr 8, 2023
Apr 8, 2023
Jan 16, 2025
Apr 19, 2024
Jan 6, 2024
Nov 24, 2024
Jul 24, 2022
Jun 16, 2024
Jul 15, 2022
Feb 19, 2025
Feb 19, 2025
Nov 24, 2024
Jun 16, 2024
Mar 2, 2023
Apr 19, 2024
Nov 5, 2024
Dec 27, 2023
Jun 16, 2024
Jul 2, 2023
Nov 5, 2024
May 10, 2022
Sep 15, 2023
Nov 5, 2024
Sep 15, 2023
Jul 2, 2023
Nov 5, 2024
Feb 22, 2023
Mar 28, 2022
Apr 18, 2023
Nov 5, 2024

Repository files navigation

AxerBot

CodeFactor GitHub license Lines of code GitHub last commit

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.

About

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

Thanks to

  • Sebola3461 for helping me a lot with this project!
  • pishifat for granting me access to BN site's interOp routes.

Usage

  • 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

Contributing

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:

Prerequisites

  • A Discord bot user
  • Node v17
  • yarn
  • MongoDB
  • an osu! API v2 client
  • (optional) BN site interOp access

Installation

  • Clone the repository
  • yarn
  • Set up config.json
    • owners: array of Discord user IDs that will be considered as bot owners
    • ownersOsuIds: array of osu! user IDs that will be considered as bot owners
    • automation: boolean that determines whether the bot should run automated tasks
  • Set up .env file starting from the .env.example file
    • TOKEN: bot's token
    • CLIENT_ID: bot's client ID
    • OSU_CLIENT_ID: osu! API v2 client ID
    • OSU_CLIENT_SECRET: osu! API v2 client secret
    • PORT: port, default is 3000
    • MONGO_USER: MongoDB username
    • MONGO_PASSWORD: MongoDB password
    • MONGO_DB: mongoDB database name
    • MONGO_CLUSTER: mongoDB cluster name
    • QAT_USER: BN site interOp username1
    • QAT_SECRET: BN site interOp secret1
    • OSU_USERNAME: your osu! username2
    • OSU_PASSWORD: your osu! password2
  • yarn dev

Footnotes

  1. These are optional, but without those, all BN site-related functionality won't work (BN commands/tracking). 2

  2. These are optional, but without those, the "Download" button on beatmap embeds won't work. 2

About

general-purpose TypeScript Discord bot with osu! features related to mapping & modding

Topics

Resources

License

Stars

Watchers

Forks

Languages