diff --git a/master.spec.js b/master.spec.js index b99fb297..1b7fff6a 100644 --- a/master.spec.js +++ b/master.spec.js @@ -75,6 +75,16 @@ describe('Master server endpoint testing', function() { }); }); }); + it("sends some HTML when accessing /remoteMap",function(done){ + this.timeout(6000); + request(app).get("/remoteMap").end(function(err,res){ + assert.equal(res.statusCode, 200); + validateHTML(res.text).then(result => { + assert(result.messages.length === 0, "there are HTML errors on the page, please fix: "+JSON.stringify(result.messages)); + done(); + }); + }); + }); }); let persistentMaster = request(app); describe("#POST /api/place", function(){ diff --git a/sharedPlugins/UPSdisplay/index.js b/sharedPlugins/UPSdisplay/index.js index 6a1bd2ac..d3902c4a 100644 --- a/sharedPlugins/UPSdisplay/index.js +++ b/sharedPlugins/UPSdisplay/index.js @@ -39,4 +39,4 @@ setInterval(function(){ console.log(err); } } -}, 10000); \ No newline at end of file +}, 10000); diff --git a/sharedPlugins/inventoryImports/index.js b/sharedPlugins/inventoryImports/index.js index b90d568e..dbf5e216 100644 --- a/sharedPlugins/inventoryImports/index.js +++ b/sharedPlugins/inventoryImports/index.js @@ -12,7 +12,6 @@ process.stdin.on('readable', () => { var chunk = process.stdin.read(); // console.log(chunk) if (chunk !== null && isNaN(chunk) && config && isJson(chunk) && !JSON.parse(chunk).factorioPort){ - let inventory = JSON.parse(chunk) // process inventory of players and ask master for more stuff functions.handleInventory(inventory, config, console.log); diff --git a/sharedPlugins/remoteMap/index.js b/sharedPlugins/remoteMap/index.js index d3cf6da9..181c1962 100644 --- a/sharedPlugins/remoteMap/index.js +++ b/sharedPlugins/remoteMap/index.js @@ -1,9 +1,14 @@ const needle = require("needle"); const io = require("socket.io"); +const chunkStore = require("./../../lib/chunkStore.js"); + const moduleConfig = require("./config"); // not to be confused with clusterio config. This config is private to this plugin. console.log("/silent-command game.print('"+moduleConfig.name+" version "+moduleConfig.version+" enabled')"); +// initialize chunk database +const chunkMap = new chunkStore(config.unique, 64, "./chunkStore/"+config.unique); + /*setInterval(function(){ console.log("/silent-command game.write_file('"+moduleConfig.scriptOutputFileSubscription+"', game.tick, true, 0)"); },1000);*/ @@ -14,6 +19,7 @@ process.stdin.on('readable', () => { var chunk = process.stdin.read(); if (chunk !== null && !isNaN(chunk) && !chunk.includes("objects")){ console.log(chunk); + throw chunk; // objects -29,-35;-28,-34: ,inserter -28.5 -34.5 let data = chunk.split(","); @@ -27,11 +33,18 @@ process.stdin.on('readable', () => { let name = entity.split(" ")[0]; let xPos = entity.split(" ")[1]; let yPos = entity.split(" ")[2]; + if(xPos && yPos && name){ + chunkMap.setEntity(xPos, yPos, name).then(chunk => { + console.log("Added "+name+" to chunk "+chunk.position.x+", "+chunk.position.y); + }); + } }); } else { // config is the same config as client.js and master.js uses config = JSON.parse(chunk); + + // set up websocket communication and handle requests from web interface users (which are going through master) // socket should be a global socket = io.connect("http://"+config.masterIP+":"+config.masterPort); socket.on("hello", data => {