diff --git a/.assets/screenshot.png b/.assets/screenshot.png new file mode 100644 index 0000000..c645ce7 Binary files /dev/null and b/.assets/screenshot.png differ diff --git a/.github/workflows/publish-images.yml b/.github/workflows/publish-images.yml index e62fbb2..e76b48d 100644 --- a/.github/workflows/publish-images.yml +++ b/.github/workflows/publish-images.yml @@ -3,6 +3,8 @@ on: push: branches: - master + paths-ignore: + - '**.md' workflow_dispatch: env: diff --git a/README.md b/README.md index e69de29..ffabfbb 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,86 @@ +
+ +# Discord role picker + +
+ +A Discord bot using dropdown message components to let users pick roles defined in a config. + +![Screenshot of the role picker with three option buttons with a dropdown menu for the first below](.assets/screenshot.png) + +### Why this over Onboarding? + +Discord does not let you enable new channels by default in onboarding. Once a user has gone through the onboarding process they need to manually toggle channels, which leads people to missing new channels entirely. + +## Usage + +### Docker compose + +Quick setup with docker compose: +```yaml +services: + discord-role-picker: + image: ghcr.io/mineinabyss/discord-role-picker:latest + environment: + BOT_TOKEN: "YOUR_BOT_TOKEN" + volumes: + - ./config.yml:/app/config.yml +``` + +### Set up your bot + +- Create the bot on Discord's developer portal, here's a [guide](https://discord.com/developers/docs/quick-start/getting-started) from them to get started. +- Add it to your server with permissions to read messages, send messages, and manage roles. +- Setup your bot with a config like below. +- Use `/rolesmessage` to create a message for your bot add role buttons to. Copy its id and channel id as shown in the config and restart. You can omit `role` in each config entry while testing. + +### Config example + +Part of the config we use on Mine in Abyss, this will show two buttons of different colors: + +Style options are: `Primary`, `Secondary`, `Success`, `Danger`, `Link` +```yaml +infoText: "Some text on top of the button row" +rolesMessageReference: + message: "" # Id of your message created by /rolesmessage + channel: "" # The channel id it's in +groups: + - id: notifications + name: Choose Notifications + style: Primary + options: + - name: Smaller Updates + desc: Extra announcements that don't deserve an @everyone + emoji: + name: "\ud83e\udd0f" + role: ... + - name: Changelog + desc: Every little server update + role: ... + emoji: + name: "\ud83d\udcdc" + - id: channels + name: Choose extra channels + style: Secondary + options: + - name: Manga + desc: Manga discussions and spoilers + role: ... + emoji: + name: "\ud83d\udcd6" + - name: Welcome channel + desc: See everyone that joins the server + role: ... + emoji: + name: "\ud83d\udc4b" +``` + +### Outside Docker + +We don't currently publish builds, but you can build a binary to the `build` folder using: + +``` +./gradlew installDist +``` + +The binary provides help instructions and needs Java 21+ to run. diff --git a/docker-compose.yml b/docker-compose.yml deleted file mode 100644 index 0171f00..0000000 --- a/docker-compose.yml +++ /dev/null @@ -1,7 +0,0 @@ -services: - discord-role-picker: - image: ghcr.io/mineinabyss/discord-role-picker - environment: - BOT_TOKEN: "YOUR_BOT_TOKEN" - volumes: - - ./config.yml:/app/config.yml