A Slack chat bot that facilitates playing the excellent boardgame Codenames!

You'll need to grab a new Slack "Classic" app token for this bot - sorry, the code is ancient and uses the deprecated "RTM" API.
Create it here: Slack: Create Classic App
Once you've created your app and installed it into your workspace, use the "bot token" to run the app.
For everything to work correctly, you should also upload all the custom emoji
used by the bot for drawing the board. Here's how my slack emoji settings look:

You can find all the emoji in the images directory in the codenames-redux Github repo.
npm install -g codenames-redux
PERSIST=/path/to/persistance/dir SLACK_TOKEN=asfajdjfds codenames-redux-slack-bot
/db path in the container where the bot will store its board
state.docker run --rm -it --volume /path/to/persistance/dir:/db --env SLACK_TOKEN=your-bot-token-here \
jitl/codenames-redux:latest
The bot responds to commands beginning with cn. Once you've invited the bot user
to a Slack channel, type cn help to get help direct-messaged to you.
Or, type cn help --here to print the help in the current channel.
cn enable-channel to create a game lobby for the current slack channel.
Each channel has a separate game state.cn join to enter the game and be automatically assigned to a team.cn join blue or cn join red.cb become-spymastercn new-gamePlease read the official Codenames rules!
As the game progresses, public board state will be posted in the slack channel where the game was started

Each Spymaster recieves the "private" board state with the color of each word revealed in a direct message

cn give-clue <clue word> <number of guesses>, eg cn give-clue toad 3.cn guess <word on the board>.cn guesscn sudo-pass.
Please don't abuse this.Play continues until one of the teams is victorious.
cn become-spymastercn shufflecn new-gameThis codebase supports several alternative UIs for the core game logic.
run npm test to start the game. Type commands like give clue foo 2 to give
foo 2 as a clue. Visit localhost:1337 for the guesser view. I recommend
putting this on a second computer and letting the guessers stare at it.
The main computer should be used for the spymasters. Put a watch curl localhost:1337/spymaster in one terminal, and leave the game process with the
readline interface in another terminal. Have the guessers relay their guesses to
the spymasters, who do all the computer input.
Here's how it looks:
Playing in "single-game mode" in the terminal:

The start of the web ui:

PLEASE PLEASE PLEASE open a Github issue with suggestions for improvements or bug reports!
Content type
Image
Digest
Size
100.3 MB
Last updated
over 6 years ago
docker pull jitl/codenames-redux