FjordFursBot is a simple bot written for the FjordFurs Discord server. It doesn't have a lot of features at this time, but more features might be added later. Please open an issue if you find a bug or have a suggestion.
- Greet new members with a custom message
- Send a message when a user leaves
- Send anonymous modmail
- Self-assignable roles using commands
- Auto-responses to words and phrases, with an opt-out role
- Wish people happy birthday on their birthday
All commands are slash commands, and provide documentation while you type them.
/helpGives a list of commands/aboutShows information about the bot/serverinfoShows member count and creation date of server/uwu {message}Translates the message above, or the provided text into uwuspeech/getrole [name]Gives you a role that has been made self-assignable. Note the use of name, not ID/takerole [name]Removes a self-assignable role/listrolesLists self-assignable roles for this server/modmail [servername] [message]Sends an anonymous modmail (must be used in DM)/randemoji [count] {a}Sendscountrandom emojis. Ifais true, start with an animal/creature/remember-birthday dd.mm.yyyy(if enabled in server) Remembers your birthday, so the bot can wish you happy birthday when the day comes :)
/greeting channel [id]Set what channel to greet new users in/greeting message [message]Set a message to greet users with. Replaces{user}with a mention of the new user, and{members}with guild member count./goodbye channel [id]Set what channel to send a message when someone leaves/goodbye message [message]Set a message to send when someone leaves the server. Replaces{user}with the name of the user who left, and{members}with guild member count./modmailset channel [id]Set what channel modmails should be forwarded to/modmailset servername [name]Set what name people should use to send modmail to this server/addselfassignrole [id]Makes a role self-assignable for users using the/getrole-command/removeselfassignrole [name]Removes a role from being self-assignable. Note that name is used here, not id./setbirthdayschannel [id]Sets channel to wish people happy birthday in
Autoresponses are replies the bot makes to specific words or phrases. A user can choose to opt out of all responses using a customizable role. The following commands are available for admins to manage the auto-responses:
/addautoresponse [trigger] [exact/anywhere] [response]Makes the bot respond totriggerwithresponse. The middle parameter should beExactif the bot should only respond to messages containing only thetrigger, andAnywhereif thetriggeronly has to be somewhere in the message./removeautoresponse [trigger]Remove the autoresponse ontrigger/listautoresponsesGives a list of all triggers of autoresponses/setnoautoresponserole [role id]Sets a role to opt out of auto-responses. A user with this role will never receive an auto-response.
- Install Node.js, and open a command prompt/shell
- Clone the project with
git clone https://github.com/KHTangent/fjordfursbot - In the new directory, run
npm install - Create a copy of
config-example.jsonnamedconfig.json, and set your Discord bot token and client ID there - Run database migrations:
npm run migrate - Compile and run the bot with
npm startfrom the project directory
It's also possible to set bot token and client ID using the TOKEN and CLIENT_ID environment variables. You can either set them in your shell, or add them to a .env file in the root directory.
Remember to re-run db-migrate when a new update has arrived to update the database schema.
If other errors happen, try deleting the out/ directory, and run again.