2024-11-03 11:52:24 -05:00
2024-12-21 21:36:05 -05:00
2024-10-13 20:24:05 -04:00
2024-12-18 20:13:12 -05:00
2024-12-21 21:36:05 -05:00
2024-09-03 22:33:29 -04:00
2024-12-21 10:44:42 -05:00
2024-11-03 11:52:24 -05:00
2024-12-19 13:50:31 -05:00
2024-10-13 20:22:34 -04:00
2023-07-05 22:42:25 -04:00
2024-10-13 20:22:34 -04:00
2024-09-03 22:33:29 -04:00

drawing

Siren

Siren is a D&D Bot built for Discord, written in Rust. Features include:

  • Music commands from Youtube and locally hosted files
  • Database for D&D 5e content
  • Session scheduling
  • Backend API
  • ChatGPT integration

Requirements

Running

  1. Setup the Discord Developer Application and bot
  2. Create .env.local and override any variables from .env
    • At minimum, DISCORD_TOKEN must be set. See instructions for additional steps.
  3. Build the Docker application with make build
  4. Start the application with make up

Setting up the Discord Developer Application

Visit the Discord Developer Portal and create a new application. Click here for guides and more information.

Oauth2

Required Scopes:

  • bot
  • applications.commands

Required Bot Permissions:

  • General Permissions
    • Manage Roles
    • Change Nickname
    • View Channels
    • Manage Events
    • Create Events
  • Text Permissions
    • Send Messages
    • Create Public Threads
    • Create Private Threads
    • Send Messages in Threads
    • Manage Messages
    • Manage Threads
    • Embed Links
    • Attach Files
    • Read Message History
    • Mention Everyone
    • Use External Emojis
    • Use External Stickers
    • Add Reactions
    • Create Polls
  • Voice Permissions
    • Connect
    • Speak

Example Invites:

https://discord.com/api/oauth2/authorize?client_id=<CLIENT_ID>&permissions=40671259392832&scope=bot%20applications.commands
https://discord.com/oauth2/authorize?client_id=<CLIENT_ID>&permissions=581083641408576&integration_type=0&scope=bot+applications.commands

The CLIENT_ID can be found in the General Information tab on the Discord Developer Portal for your application, under Application ID

The DISCORD_TOKEN (used in the .env file) can be found under the Bot tab on the Discord Developer Portal for your application.

DISCORD_TOKEN Example

Commands

Siren utilizes Discord slash commands. To view the commands, run /help in a server where the bot is installed. The following commands are available:

Music Commands

Command Description
/play <Track> Play a track from Youtube or locally hosted files
/pause Pause the current track
/resume Resume the current track
/skip Skip the current track
/stop Stop the current track
/mute Mute the current track
/queue TODO - Display the current queue
/clear TODO - Clear the current queue
/shuffle TODO - Shuffle the current queue
/loop TODO - Loop or unloop the current track
/nowplaying TODO - Display the current track
/volume <Volume> Set the volume of the bot

Event Commands

Command Description
/schedule TODO - Schedule a new event
/events TODO - Display all events
/event <Event ID> TODO - Display a specific event
/deleteevent <Event ID> TODO - Delete a specific event
/updateevent <Event ID> TODO - Update a specific event
/remindme <Event ID> TODO - Set a reminder for a specific event

Fun Commands

Command Description
/coinflip Flip a coin
/roll <Dice> Roll a dice
/requestroll <User> <Dice> Request a dice roll from a user

Utility Commands

Command Description
/ping Display the bot's latency
/poll TODO - Create a poll
/help TODO - Display a list of commands

Contributing

Running Locally

  1. Start the backend containers with make backend-up
  2. Run the application locally with make run

The application can also be tested from within a Docker container:

make docker-build
make docker-up
Description
No description provided
Readme 2.9 MiB
Languages
Rust 48.4%
TypeScript 40.8%
CSS 10%
Dockerfile 0.5%
JavaScript 0.2%