Mafia GM Commands

GM Command Effect on the Mafia tracker bot
PLAYER ... DIED
PLAYER ... DEAD
PLAYER ... BEEN LYNCHED

Recommended continuation of the previous line:
He was ...
She was ...
The bot considers a PLAYER as DEAD when it sees a correctly spelled player name on one line in a GM message and one of "DIED", "DEAD" or "BEEN LYNCHED" later on the same line. The 3 "..." means that there may be other words in this position.

Continue the line with "He/she was" and the bot will present this GM death comment on the status pages. If "He/she was" is missing the full line will be presented as the GM death comment.

Method
1. Bot search for any of "DIED", "DEAD" or "BEEN LYNCHED" in GM messages.
2. Bot tries to find a correctly spelled player name before on the same line and sentence (case does not matter).
3. Bot tries to find "He/She was" after the "DIED" word on the same line. If found the remaining of the line will be used as the GM death comment. If not found the whole line will be used.

##RESURRECT PLAYER
Write the command "##RESURRECT" followed by one correctly spelled player name on one separate line in an GM message.
This command can be used by the GM to tell the bot that a player is alive, to revert a mistaken death announcement.
DAY ... HAS ENDED EARLY
NIGHT ... HAS ENDED EARLY
The bot ends the current phase and start next phase, if this text and no other text is found on one single line in a GM message. Later deadlines for upcoming phases are not moved in time due to this GM command.

Method
1. Bot search for "ENDED EARLY"
2. Bot verfies that "DAY" or "NIGHT" can be found earlier on the same line and that it matches the current phase type. (if it finds "day" when it is night the phase will not end)

Important: Please note the relation to the next command for deadline movements. There will be different future deadlines scheduled dependent on the order the end phase and deadline movement commands are issued.
This end phase command should normally be done before moving the deadline.

DEADLINE ... MOVED 1 DAY LATER
DEADLINE ... MOVED 24 H EARLIER

Time can be given using days, hours and
minutes. Valid expressions are:

"2D", "1H", "1 D 12 H",
"1D12H", "1D 23H 30M"
or written out: "2 days", "24 hours"
"1 day 12 hours 34 minutes"

The bot moves the deadline time of the current phase earlier or later with the number of hours given. When moving the current phase earlier, the bot will not allow the current phase deadline to be moved into the past.

Note 1: All deadlines occuring after the current deadline that we moved, are also them moved the same number of hours earlier or later as the current deadline was moved.

Note 2: The schedule for the next 3 deadlines are visible on the current game status page if the game has not ended.

Method
1. The bot looks for one line in a GM message containing the words "DEADLINE", "MOVED" and either "LATER" or "EARLIER" in the order listed.
2. The Bot expects to find the time after "MOVED" and before "LATER" or "EARLIER".

NEW HAS REPLACED OLD
NEW IS REPLACING OLD
First make sure that the NEW replacing player exists in the User DB. If NEW does not exist, ask NEW to send ONE message in the game thread. This will add NEW to the User DB. When NEW exists, perform the replacement as follows:

If the bot in a GM message can find one line containing two exact user names NEW and OLD with only " HAS REPLACED " or " IS REPLACING " in between, then the bot will replace the old player OLD in the game with player NEW. This is needed for the bot to start register votes from the new player NEW and to make it possible for other players to vote for NEW.

GAME HAS ENDED
GAME ENDED
GAME IS OVER

UNEND GAME
GAME HAS UNENDED
GAME UNENDED

The game END messages put the game into the end of game phase. The bot change its game status presentation to present the end of game. The bot stops looking for player votes and all other GM commands except the UNEND command.

The various game UNEND commands remove the game end AND restores a new deadline schedule from the last past deadline.

Notes:

- Upper or lower case does not matter. The bots converts all text to upper case before it starts looking for GM commands.

- Before each game the bot is told which player ids the GMs have and which thread that is the game thread. The bot will look for GM commands in everything written by any GM in the game thread.

- The bot is given a time schedule (first EoD1 time and the length of the days and nights).

- The bot will follow the time schedule exactly how it is setup from the start (also taking DST changes into consideration) as long as the GMs do not by command end a phase early or move the deadline later or earlier.

- The bot is also told about who is playing the game and if there are any DST changes coming up for the game. The game normally follows the DST changes of he main GM's timezone.