diff --git a/chapter-19/arena.js b/chapter-19/arena.js index 1e516e5..4455c83 100644 --- a/chapter-19/arena.js +++ b/chapter-19/arena.js @@ -8,6 +8,10 @@ var instructions = [ '/jsp snowball' ]; +// Added reference to prevent persist() object thrashing when called externally +function getArenas() { + return arenas; + function snowballArena() { var arena = {}; @@ -67,4 +71,5 @@ function snowballArena() { Drone.extend( snowballArena ); +exports.getArenas = getArenas; diff --git a/chapter-19/command.js b/chapter-19/command.js index c47875d..81f9255 100644 --- a/chapter-19/command.js +++ b/chapter-19/command.js @@ -4,7 +4,7 @@ var utils = require('utils'); var cm = Packages.net.canarymod; var cmLocation = cm.api.world.position.Location; var game = require('./game'); -var arenas = persist('snowball-arenas', []); + function snowball( params, sender ){ var duration = 60; // seconds @@ -17,6 +17,9 @@ function snowball( params, sender ){ var teams = {red: [], blue:[], yellow:[]}; var spawns = []; var spawn = null; +// use local arenas object reference from arenas.js, rather than creating another global one. Seemed to cause issues when it was global. + var aplugin = require('./arena'); + var arenas = aplugin.getArenas(); for ( i = 0; i < arenas.length; i++ ) { arena = arenas[i];