@Override
    public final void run() {
        if (shutdown) {
            CTT.debug("Attempting to shutdown game " + getGameId() + " again");
            plugin.getServer().getScheduler().cancelTask(taskID);
            return;
        }
        signTracker++;
        if (signTracker == 2) {
            signTracker = 0;
            updateGameSign();
        }

        if (playerlist.size() == 0 && gamestage != defaultStage) {
            CTT.debug("Set game " + getGameId() + " to not running because there aren't any more players, setting to default game stage: " + defaultStage);
            setGameStage(defaultStage);
            setRunning(false);
        }

        if (!running && playerlist.size() > 0) {
            setRunning(true);
        }

        if (!running) {
            idleRun();
        }

        if (running) {
            gameRun();
        }
    }