https://github.com/oakbrad/dungeonchurch-cogs
RPG and D&D related cogs for RedBot-Discord
https://github.com/oakbrad/dungeonchurch-cogs
discord discord-bot discord-py dnd red-cogs red-discord-bot-cogs red-discordbot redbot redbot-cogs redbotv3 rpg ttrpg
Last synced: 16 days ago
JSON representation
RPG and D&D related cogs for RedBot-Discord
- Host: GitHub
- URL: https://github.com/oakbrad/dungeonchurch-cogs
- Owner: oakbrad
- License: gpl-3.0
- Created: 2024-11-11T02:27:35.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-12-04T20:08:11.000Z (over 1 year ago)
- Last Synced: 2025-01-24T01:38:04.173Z (over 1 year ago)
- Topics: discord, discord-bot, discord-py, dnd, red-cogs, red-discord-bot-cogs, red-discordbot, redbot, redbot-cogs, redbotv3, rpg, ttrpg
- Language: Python
- Homepage: https://www.dungeon.church
- Size: 811 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Dungeon Church Cogs
[Red-DiscordBot](https://github.com/Cog-Creators/Red-DiscordBot/releases) cogs by the [Dungeon Church](https://www.dungeon.church) RPG group.
Focused on making RPG, D&D, & game related cogs - ideas or pull requests welcome.
## Installation
To add these cogs to your instance, run this command first (`[p]` is your bot prefix):
```
[p]repo add dungeonchurch https://github.com/oakbrad/dungeonchurch-cogs
```
Then install your cog(s) of choice:
```
[p]cog install dungeonchurch
```
Finally, load your cog(s):
```
[p]load
```
## API Keys
For cogs that need API keys, set them globally in Red's shared API storage:
```
[p]set api openai api_key,
[p]set api googlesheets api_key,
[p]set api ghost key_id, key_secret,
[p]set api outline api_key,
```
## Slash Commands
To register slash commands, first load the cog, then list the commands available. Enable the commands you want to register, then sync them with Discord.
```
[p]slash list
[p]slash enable
[p]slash sync
```
# Cogs
Current cogs and their commands. `[p]` is your bot prefix, `/` slash commands indicate a hybrid command.
## augury
A simple roller that transforms into a customizable NPC when you add an OpenAI API key.
* `/augury` make an appeal to the gods
* `[p]augur` to change settings
## dice
Forked from [PCXCogs](https://github.com/PhasecoreX/PCXCogs). I added better formatting and commands useful for RPG players, including contested rolls.
* `/roll` roll complicated [dice formulas](https://github.com/StarlitGhost/pyhedrals)
* `/qr <@mention>` quick roll 1d20, optionally challenge with a mention
* `/adv ` quick roll 2d20dl
* `/dis ` quick roll 2d20dh
* `/randstats` roll ability scores within a set range
* `/flipcoin <@mention>` flip a coin, get heads or tails. Mention to have someone else call it.
* `/eightball` ask the Magic 8 Ball
* `[p]diceset` to change settings
## dragonchess (threes)
The dice game threes, aka dragonchess if you play in [Pyora](https://github.com/oakbrad/dungeonchurch-pyora). Tracks stats per player and a leaderboard.
* `/threes rules` show the rules
* `/threes play <@mention>` start a game with an optional challenge, otherwise it's open to first comer
* `/threes leaderboard` server rankings
* `/threes stats <@mention>` see player stats, defaults to self with no mention
* `[p]dc` settings, reset rankings, set timeout, debug game state
## ghostsync
Tools for linking [Ghost](https://ghost.org) members to Discord accounts, syncing subscription status to a Discord role, and syncing Discord roles to Ghost labels. This allows you to reward Ghost subscribers with Discord roles, or segment your Ghost newsletters by Discord roles. Requires setting a Ghost Integration Admin API key & secret.
> **Privacy Note:** this cog stores the user's numeric Discord ID in the Ghost Member Profile, under the private "Note". This is visible to any Ghost staff that can see the Member list.
**Configuration**
* `[p]ghostsync url` base API URL
* `[p]ghostsync interval` how often to sync in seconds
* `[p]ghostsync logchannel` report API failures to this channel
* `[p]ghostsync settings` view current settings
**Ghost Subscription → Discord Role**
* `[p]ghostsync role` role added/removed based on Ghost paid (or comped) subscription
* `[p]ghostsync rolesync` sync a secondary role (ex: Server Boosters) to the primary role
**Discord Role → Ghost Label**
* `[p]ghostsync label <@role> ` map a Discord role to a Ghost label
* `[p]ghostsync labelrem <@role>` remove a label mapping
* `[p]ghostsync labels` list all label mappings
**Member Management**
* `[p]ghostsync link <@mention>` link a member email to a Discord user (stores ID in Member Note)
* `[p]ghostsync unlink ` unlink a user (removes ID from Member Note)
* `[p]ghostsync members` list all linked members
* `[p]ghostsync subscribers` list linked subscribers & their subscripßtion tier name
* `[p]ghostsync orphans` list Discord members not linked to Ghost
* `[p]ghostsync sync` force a syncß
## lore
Search and use an [Outline](https://getoutline.com) wiki in the chat.
* `/lore wiki ` searches and returns the first article's content
* `/lore search ` returns the first 5 search results with buttons to load those articles
* `/lore link ` searches and returns just a link (and with optional AI key, a one sentence summary)
* `[p]loreconfig` set base URL & prompts
## q3stat
Quake III Arena [server](https://quake.dungeon.church) notifications with [qstat](https://github.com/Unity-Technologies/qstat). Run qstat via crontab on your server to output JSON to a publicly accessible file:
```
qstat -json -P -q3s dungeon.church:27960 > /var/www/html/qstat.json
```
* `[p]q3stat` to set the URL of that file & notification options.
## randomstatus
Make a list of status activities, then cycle through them randomly or sequentially at a set interval.
* `/randomstatus` to change settings
## rollfood
Rolls a random restaurant from a Google Sheet and provides a link to order. The sheet should have two columns: the restaurant name, and the URL for ordering. Requires [Google Sheets API](https://console.cloud.google.com/flows/enableapi?apiid=sheets.googleapis.com) key.
* `/rollfood` rolls for food
* `/addfood` links to the spreadsheet
* `[p]foodconfig sheet` to set the Sheet ID
* `[p]foodconfig prompt` set an optional prompt for your bot
# Local Development
To work on cogs locally, run the bot in a container:
```yaml
services:
redbotdev:
container_name: redbotdev
image: phasecorex/red-discordbot
restart: unless-stopped
volumes:
- /tmp/redbotdev:/data
- /path/to/local/dungeonchurch-cogs:/devcogs
environment:
- TOKEN=
- PREFIX=!
- TZ=America/Los_Angeles
- PUID=1000
- OWNER=
```
Add the path and downloader. Locally installed cogs need their dependencies installed manually.
```
[p]addpath /devcogs
[p]load downloader
[p]pipinstall
```
