If both seer and target have deceit totem, the result should be printed normally (e.g. the totems cancel out). They were not doing that previously, as it would route all non-village non-wolf roles into villager (e.g. harlot -> villager). Let's fix that.
This ensures that code paths that should not be run if the user is stasised are not run if we don't know the user's status. Generally we don't know the user's status because they are not in the main channel, and therefore allowing them to effectively bypass stasis by not being around is a bad thing. We return -1 to differentiate between actual stasis, and because -1 is still True when cast to boolean. This may have the effect of giving some very odd-looking error messages but that's a very minor issue.
Rejoining an IRC server after quitting can take a bunch of time for slow connections or if a lot of channels are to be joined. Additionally, quits could be indicative of temporary internet issues, want to make sure we give sufficient time to reconnect in case of a DHCP lease expiring or whatnot.
Now observes every role that acts at night as "not in bed" EXCEPT:
- matchmaker
- assassin
- clone
- turncoat
matchmaker and clone are night 1-only, and allowing them to be observed
would only serve to reduce werecrow power. assassin and turncoat's night
actions are passive and not anything that would require staying up late
at night or moving around at night for.
In the event that a luck or misdirection totem is applied, wolf-aligned
roles are now also observable as not in bed should they act. This will
also apply if RESTRICT_WOLFCHAT is used to take those roles out of
wolfchat.
Admin-only command (can be !fallowed) to spectate deadchat or wolfchat.
The person spectating is not revealed to anyone in the chat, however
they can see everyone in that chat.
If used outside of debug mode, it is restricted a la !revealroles where
it cannot be used by an alive player or an active vengeful ghost.