# Gensokyo.social Discord Bot ## Features - Assigns roles based on emojis - Dinner ## How to Develop 1. `$ printf 'include "reference"\n\ndiscordToken = "{INSERT_YOUR_DISCORD_TOKEN}"' > local.conf` (`local.conf` is already in gitignore.) 2. `$ sbt` to run sbt and setup project 3. (Within sbt shell) `~assembly` to compile and assemble jar in watch mode (triggered by source file changes) 4. `$ java -Dconfig.file=local.conf -jar target/scala-2.13/GensocBot-{version}.jar` 5. Wait for `~assembly` to finish building on file change and then restart the step 4 ## How to Deploy 1. Follow first two development steps 2. In `src/main/scala/roleassign/RoleAssign.scala` replace `textId`, `channelId` and `assigners` Sequence to match your desired discord channel, roles and text to watch for reactions. 3. Run `assembly` (without the `~`!) to compile the jarfile once. 4. Copy `target/scala/2.13/GensocBot-{version}.jar` to your machine 5. Create `application.conf` in the same folder as the jarfile and edit as such ``` include "reference" discordToken = "{INSERT_YOUR_DISCORD_BOT_TOKEN_HERE}" ``` 6. Finally, run it with `java -Dconfig.file=application.conf -jar GensocBot-{version}.jar`. ## Roadmap - [ ] Command support - [ ] Config-driven role assignment: Declare desired roles, emojis and text message using config - [ ] Database-driven role assignment: Allow to declare desired roles, emojis and text message to watch using bot commands (stored in the database) Visit our [Discord](https://gensokyo.social/discord) for help.