diff --git a/.gitignore b/.gitignore index 90716b3..c1d199a 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ node_modules # Project stuff config.js +servers.json diff --git a/manager.js b/manager.js index 7b2f5b9..0352bf0 100644 --- a/manager.js +++ b/manager.js @@ -1,6 +1,8 @@ -var spawn = require('child_process').spawn; +var fs = require('fs'), + spawn = require('child_process').spawn; var config = require('./config'); +var filePath = "servers.json"; function Server(id, title, port, mods) { this.id = id; @@ -42,10 +44,17 @@ Server.prototype.start = function() { function Manager() { this.serversArr = []; - this.serversHash = {} + this.serversHash = {}; + this.load(); }; Manager.prototype.addServer = (function (id, title) { + var server = this._addServer(id, title); + this.save(); + return server; +}); + +Manager.prototype._addServer = (function (id, title) { mods = []; port = 2302; var server = new Server(id, title, port, mods) @@ -62,4 +71,25 @@ Manager.prototype.getServers = (function () { return this.serversArr; }); +Manager.prototype.load = (function () { + var self = this; + + fs.readFile(filePath, function (err, data) { + if (err) { + console.log(err); + return; + } + + JSON.parse(data).forEach(function (server) { + self._addServer(server.id, server.title); + }); + }); +}); + +Manager.prototype.save = (function () { + fs.writeFile(filePath, JSON.stringify(this.serversArr), function(err) { + if(err) throw err; + }); +}); + module.exports = Manager;