From 62bd48ee881ca0b2b8438a1c7cce447829b35a23 Mon Sep 17 00:00:00 2001 From: manveti Date: Mon, 11 May 2015 14:34:36 -0700 Subject: [PATCH] Fix broken firing of count-based jobs --- cron/cron.js | 12 +++++++++++- cron/package.json | 2 +- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/cron/cron.js b/cron/cron.js index eb2f88d0a8..d7c509100a 100644 --- a/cron/cron.js +++ b/cron/cron.js @@ -93,7 +93,7 @@ var cron = cron || { jobsToFire.sort(); if (newCount < oldCount){ jobsToFire.reverse(); } for (var i = 0; i < jobsToFire.length; i++){ - cron.handleJob(state.cron.countJobs[jobsToFire[i]]); + cron.handleJob(state.cron.countJobs[jobsToFire[i][1]]); } for (var i = 0; i < jobsToDelete.length; i++){ delete state.cron.countJobs[jobsToDelete[i]]; @@ -404,6 +404,15 @@ var cron = cron || { else{ doCount = true; } } args['interval'] = cron.parseInterval(args['interval']); + if (doCount){ + if (!args.hasOwnProperty('rounds')){ + args['rounds'] = args['interval']; + } + if (!args.hasOwnProperty('count')){ + var turns = JSON.parse(Campaign().get('turnorder') || "[]"); + args['count'] = (turns.length > 0 ? turns[0].pr : 0); + } + } } if ((doCount) && (doTimed)){ cron.write("Error: Cannot mix initiative-based and timed jobs", msg.who, "", "CronD"); @@ -430,6 +439,7 @@ var cron = cron || { registerCron: function(){ cron.init(); + on("change:campaign:turnorder", cron.handleTurnChange); if ((typeof(Shell) != "undefined") && (Shell) && (Shell.registerCommand)){ Shell.registerCommand("!cron", "!cron [options] command", "Schedule a command to run in the future", cron.handleCronMessage); if (Shell.write){ diff --git a/cron/package.json b/cron/package.json index 636be68f44..c7b878789a 100644 --- a/cron/package.json +++ b/cron/package.json @@ -1,6 +1,6 @@ { "name": "cron", - "version": "0.2", + "version": "0.3", "description": "Schedule (possibly recurring) commands to run at some point in the future.", "authors": "manveti", "roll20userid": "503018",