From 2b0ef8281c753b2e6aeccd5d2ab282f1ea5ce1b6 Mon Sep 17 00:00:00 2001 From: Felix Date: Sat, 20 Aug 2016 14:18:59 +0200 Subject: [PATCH] Bug fix - Fixed bug where first-run detection was checked in a bad way, which potentionally caused missing critical data - Updated to pogo-asset-downloader v0.2.3 --- cfg.js | 3 ++- package.json | 2 +- src/index.js | 12 +++++++++--- src/setup.js | 10 ++++++---- 4 files changed, 18 insertions(+), 9 deletions(-) diff --git a/cfg.js b/cfg.js index f2c8c94..39b6ffe 100644 --- a/cfg.js +++ b/cfg.js @@ -44,6 +44,7 @@ export default { TICK_INTERVAL: 1, BOOT_TIMEOUT: 10000, // Currently supported pokemon - MAX_POKEMON_NATIONAL_ID: 151 + MAX_POKEMON_NATIONAL_ID: 151, + DUMP_ASSET_PATH: "data/" } \ No newline at end of file diff --git a/package.json b/package.json index 74d1e6a..aee8f00 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "mysql": "^2.11.1", "jwt-decode": "^2.1.0", "long": "^3.2.0", - "pogo-asset-downloader": "^0.2.2", + "pogo-asset-downloader": "^0.2.3", "node-pogo-protos": "^1.3.0", "pogo-decode": "^0.5.2", "path": "^0.12.7", diff --git a/src/index.js b/src/index.js index 64f3925..d065c40 100644 --- a/src/index.js +++ b/src/index.js @@ -192,17 +192,23 @@ class GameServer { } getLocalIPv4() { - let address = null; let interfaces = os.networkInterfaces(); - for (var dev in interfaces) { interfaces[dev].filter((details) => details.family === "IPv4" && details.internal === false ? address = details.address: void 0); }; - return (address); } + directoryExists(directory) { + try { + fs.statSync(directory); + return true; + } catch(e) { + return false; + } + } + greet() { console.log(greetMessage); } diff --git a/src/setup.js b/src/setup.js index 2dcd21e..aa891f1 100644 --- a/src/setup.js +++ b/src/setup.js @@ -7,7 +7,7 @@ import CFG from "../cfg"; export function setup() { - let isFirstRun = !!fse.ensureDirSync("data/"); + let isFirstRun = !this.directoryExists(CFG.DUMP_ASSET_PATH); if (isFirstRun) { this.print("Preparing to dump required assets..", 36); @@ -37,7 +37,7 @@ export function setup() { export function parseAssetDigest() { let asset = null; try { - asset = proto.Networking.Responses.GetAssetDigestResponse.decode(fs.readFileSync("data/asset_digest")); + asset = proto.Networking.Responses.GetAssetDigestResponse.decode(fs.readFileSync(CFG.DUMP_ASSET_PATH + "asset_digest")); } catch (e) { this.print(e, 31); } @@ -51,7 +51,9 @@ export function onFirstRun(resolve) { password: CFG.DOWNLOAD_PASSWORD }).then((asset) => { this.print(`Dumping asset digest..`, 35); - fs.writeFileSync("data/asset_digest", asset.toBuffer()); + // create data dir, if login successed + fse.ensureDirSync(CFG.DUMP_ASSET_PATH); + fs.writeFileSync(CFG.DUMP_ASSET_PATH + "asset_digest", asset.toBuffer()); this.dumpPkmnModels(() => { resolve(); }); @@ -71,7 +73,7 @@ export function dumpPkmnModels(resolve) { downloads.map((item) => { this.print(`Dumping model ${item.name}..`, 35); try { - fs.writeFileSync("data/" + item.name, item.body); + fs.writeFileSync(CFG.DUMP_ASSET_PATH + item.name, item.body); } catch (e) { this.print(`Error while dumping model ${item.name}:` + e, 31);