packages feed

werewolf-slack-1.0.2.0: README.md

# werewolf-slack

[![Project Status: Active - The project has reached a stable, usable state and is being actively developed.](http://www.repostatus.org/badges/latest/active.svg)](http://www.repostatus.org/#active)
[![Build Status](https://travis-ci.org/hjwylde/werewolf-slack.svg?branch=master)](https://travis-ci.org/hjwylde/werewolf-slack)
[![Release](https://img.shields.io/github/release/hjwylde/werewolf-slack.svg)](https://github.com/hjwylde/werewolf-slack/releases/latest)
[![werewolf-slack on Stackage LTS](https://www.stackage.org/package/werewolf-slack/badge/lts)](https://www.stackage.org/lts/package/werewolf-slack)
[![werewolf-slack on Stackage Nightly](https://www.stackage.org/package/werewolf-slack/badge/nightly)](https://www.stackage.org/nightly/package/werewolf-slack)

A chat interface for playing [werewolf](https://github.com/hjwylde/werewolf) in
    [Slack](https://slack.com/).
Werewolf is a well known social party game, commonly also called Mafia.
See the [Wikipedia article](https://en.wikipedia.org/wiki/Mafia_(party_game)) for a rundown on its
    gameplay and history.

![Werewolf for Slack](https://raw.githubusercontent.com/hjwylde/werewolf-slack/master/.readme/werewolf-for-slack.png)

### Game description

Long has the woods been home to wild creatures, both kind and cruel.
Most have faces and are known to the inhabitants of Fougères in Brittany, France; but no-one from
    the village has yet to lay eyes on the merciless Werewolf.

Each night Werewolves attack the village and devour the innocent.
For centuries no-one knew how to fight this scourge, however recently a theory has taken ahold that
    mayhaps the Werewolves walk among the Villagers themselves...

Objective of the game:  
For the Loners: complete their own objective.  
For the Villagers: lynch all of the Werewolves.  
For the Werewolves: devour all of the Villagers.

### Setup

#### Preparing Slack

Set up an Incoming Webhook [here](https://my.slack.com/services/new/incoming-webhook/).
Make note of the *webhook url*, we'll be using that soon.

Set up a Slash Command (`/werewolf` or similar)
    [here](https://my.slack.com/services/new/slash-commands/).
The Slash Command should perform a GET request to the server werewolf-slack is going to be hosted
    on.
Make note of the *token* here too.

#### Installing

Installing werewolf-slack is easiest done using either
    [Docker](https://www.docker.com/) (recommended),
    [stack](https://github.com/commercialhaskell/stack) or
    [Cabal](https://github.com/haskell/cabal).

**Using Docker:**

```bash
docker pull hjwylde/werewolf-slack-docker
```

**Using stack:**

```bash
stack install werewolf-slack werewolf
export PATH=$PATH:~/.local/bin
```

**Using Cabal:**

```bash
cabal-install werewolf-slack werewolf
export PATH=$PATH:~/.cabal/bin
```

#### Running

werewolf-slack is a simple web server that listens for events from the Slack Slash Command.
After receiving an event werewolf-slack forwards it on to the werewolf game engine and uses the
    Incoming Webhook to send back the response.

Running werewolf-slack is easiest done using either
    [Docker](https://www.docker.com/) (recommended) or
    the binary itself.
Make sure to add rules to your firewall for werewolf-slack's port.

**With Docker:**

```bash
docker run -d -p 80:80 hjwylde/werewolf-slack-docker -v TOKEN -u WEBHOOK_URL
```

**With werewolf-slack:**

```bash
werewolf-slack -v TOKEN -u WEBHOOK_URL &
```

#### Configuration

It is possible to also configure the port that werewolf-slack listens on. This is done via the
    `--port` (`-p`) option.

The default port is *80*.

### Usage

Type `/werewolf help` in your Slack channel to get going!