A Discord bot written in TypeScript, using the Bun runtime engine.
I mainly wrote this bot for my friends, but a lot more people wanted to use it than I thought. So now, we're here. Hopefully it meets your expectations.
If you're here to contribute/look at the code, welcome! Although, the code is not very well documented, I tried my best!
Feel free to open up an issue/pull request at this repository
Hanami is a comprehensive osu! Discord bot that provides detailed statistics and gameplay information. Features include:
- Player Statistics: View detailed profiles, rankings, and performance metrics
- Recent Activity: Track recent plays and scores
- Score Analysis: Compare scores, calculate performance points, and analyze plays
- Beatmap Information: Get detailed beatmap statistics, backgrounds, and metadata
- Account Linking: Link your osu! account with
/linkfor personalized commands - Server Customization: Custom prefixes and configuration options
The bot supports both slash commands and traditional prefix commands, with full osu! game mode support (Standard, Taiko, Catch, Mania).
Use /help to see all available commands.
You can look at all of the libraries I use by going to package.json in the main branch, but mainly:
-
Lilybird to communicate with Discord's API.
-
osu-api-extended to communicate with osu!'s servers.
-
rosu-pp-js for osu! performance and beatmap calculations.
-
Prisma for database access.
-
Redis for short-lived bot state.
Read the CONTRIBUTING.md file.
Production images are published with both latest and the immutable commit SHA. To roll back, deploy a known-good SHA tag instead of latest:
docker pull yorunoken/hanami-bot:<commit-sha>
docker run --rm yorunoken/hanami-bot:<commit-sha>If you have any questions or just want to have someone to talk to, add me on discord (@yorunoken), or message me on twitter (@_yorunoken)