https://github.com/denperidge/discord-brantsteele-hungergames
Run a brantsteele.net hunger games game, in your Discord server with your friends' custom characters!
https://github.com/denperidge/discord-brantsteele-hungergames
bot discord
Last synced: about 2 months ago
JSON representation
Run a brantsteele.net hunger games game, in your Discord server with your friends' custom characters!
- Host: GitHub
- URL: https://github.com/denperidge/discord-brantsteele-hungergames
- Owner: Denperidge
- License: mit
- Created: 2023-06-04T21:59:27.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2025-01-22T00:00:00.000Z (4 months ago)
- Last Synced: 2025-02-11T19:13:28.631Z (3 months ago)
- Topics: bot, discord
- Language: TypeScript
- Homepage:
- Size: 158 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Brantsteele Hungergames Discord Wrapper
## How-to
**NOTE:** Either using your command line or a .env file, make sure to set your bots client id & token respectively in `BHGD_CLIENT_ID` & `BHGD_TOKEN`.### Run (Docker Compose)
Pre-requirements: docker compose
```bash
git clone https://github.com/Denperidge/discord-brantsteele-hungergames.git
cd discord-brantsteele-hungergames
docker-compose up --detach
```### Run (Node)
Pre-requirements: node.js & npm/yarn
```bash
git clone https://github.com/Denperidge/discord-brantsteele-hungergames.git
cd discord-brantsteele-hungergames
yarn install --dev
yarn start
```### Build locally
Pre-requirements: node.js & npm/yarnInstall using the following commands
```bash
git clone https://github.com/Denperidge/discord-brantsteele-hungergames.git
cd discord-brantsteele-hungergames
yarn install --dev
yarn build
```## Reference
### Commands
/hungergames person1:@Matty person2:@Cat
/proceed
(TODO add a table & expand + document)### The player & profile system
A `player` is what is used on the original briansteele website. A `profile` is a preset player that a user can make for themselves, that is locked to that specific server. (Oh, a `user` is a person in Discord)The wrapper for **players** should allow the following:
- Set nickname, image url & internally used gender
- Set the static value of "Real player/Real show" to use the `Use Custom` option
- Have a pronoun field, that will attempt to replace the pronouns used for that player (does some library for this already exist?)The **profile** system should allow the following:
- Create a profile using one command
- Export easily for other servers, thanks to the above one-command creation
- Use the Discord avatar as a fallback if none is provided
- This profile should be linked to the Discord user on that specific server
- This profile should be able to be accessed by tagging the user during hungergames creation
- And this profile will have all the information to create a `player` automatically, without any extra steps needed## Discussions
### Why a wrapper instead of a rebuild?
I explicitly did not want Discord bot that could replace it.That’d take a ton of work for something that either:
- Wouldn’t be as good as the original
- Or - if you’d dev it further than the original did - would be stuck in its Discord format, and not translate easily to a websiteBut with a wrapper (e.g. a Selenium browser instance) you can:
- Fully let a hunger games session play out in the exact same way as you could in the browser, but basically “streamed” to the text chat
- Create no more than usual traffic load for the website
- Easily link back to the original### Not implementing the built-in saves & statistics
The website has a built-in save function, which is *not* used, for the following reasons:
- Less load on the brantsteele servers
- It saves (as far as I am aware? check this) solely seasons### Further expansions
These are things that could be added to the project, but aren't planned to be developed by me. However, someone else is free to do so through a PR and/or their own fork.#### Stats system
While there is no set idea on what to put in this or how to implement it, it would be interesting#### Profile+
Expansion would be possible by perhaps allowing a user to have multiple profiles to switch between, or by having characters on a per server basis. But with the latter, make sure to be wary of possible abuse and vandalism?## License
Brantsteele's own TOS apply for their website. All the code written by me in this repo falls under the [MIT License](LICENSE).