Move some spectator logic to the spectators mixin

Signed-off-by: Ian Macalinao <me@ian.pw>