Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
// simplified pseudo code
 
function setLocalStorage(fromPlayer,key,val) {
  // work out what script called setLocalStorage (eg. nullbot_1.1.js):
  var playerEngine = getEngineForPlayer(fromPlayer);
  var playerScript = playerEngine.scriptFileName;
  // update all other players where applicable:
  for (var i=0; i<maxPlayers; i++) {
    // no need to update the script that triggered setLocalStorage():
    if (i != fromPlayer) {
      // is this player's engine running same script as the calling script?
      var engine = getEngineForPlayer(i);
      if (engine.scriptFileName == playerScript) {
        // update it's localStorage with the new data
        engine.globalObject.localStorage.setItem(key,val,false,true); // 4th param tells setItem() not to call setLocalStorage()
      }
    }
  }
  // now persist the localStorage data to file on disk
  var jsonData = playerEngine.globalObject.localStorage.toJSON();
  var fileName = "path/to/config/folder/"+playerScript+"_localStorage.js";
  createOrReplaceFile(filename,jsonData);
}

...