o!uw bot is a Discord bot for osu!uwaterloo that provides various features to imporove the quality of life for the club server.
Warning This bot is highly specialized for osu!uwaterloo. If you want to use this bot for your own server, you will need to modify the code a lot.
- Provides an interface for new members to verify themselves
- Allow UW students to verify themselves with their watiam and email
- Has a voucher system for non-UW students to automatically verify the invited user
- Supports integration with osu! API for osu! account linking
- Allows users to add their social media links to their profile
- Automatically restores previous-verified users' status
- User/message context menu shortcut for adding verified roles to user to simplify the manual verification process for admins
- Auto records user's watiam, Discord ID, osu! account and so on to a sheet
- Logs all verification events to a channel
- Allows users to get a custom hex colour role
- Maintains a colour role list and will remove unused roles
- Contrast check to ensure the colour is readable
- Maintains a 2FA code generator for club Twitch account
- Export the watiams of all the reacted members of a message
- React 🐱 to meowssages
- Reply a sequence of meow if a message meowed a lot
- Send a message everyday at 7:27 PM (time time time)
- For the "time" messages that posted within +/- 10 minutes of 7:27 PM, react the offset time of that message
For the "time" messages that posted at else time, DM the user "skill issue"Removed- Timeout users who post "nailong" tenor gifs for random short durations
- Post messages on behalf of the bot
!setupverify
- Setup the verification message (with a request verification button)!setupcolour
- Send a message explaining the colour role system!setuptwitch2fa
- Setup a message with a button which provides the 2FA code for the club Twitch account
This bot was written in Node.js and can be deployed very simply.
There are two ways to set up the environment variables:
- Create a
env.json
file in the root directory. - Or setup an environment variable
CONFIG_JSON
with the content ofenv.json
.
Here is a template for the env.json
file:
npm i
npm start
You can also use PM2 to manage the node process (although it is already very stable).
This project is licensed under the MIT License.