make worldFolder optional, fix tests

This commit is contained in:
Romain Beaumont 2016-01-14 19:44:54 +01:00
parent 255791b577
commit 1412722d8c
2 changed files with 22 additions and 16 deletions

View file

@ -8,7 +8,11 @@ import {fs} from 'node-promise-es6';
import {level} from 'prismarine-provider-anvil'; import {level} from 'prismarine-provider-anvil';
module.exports.server=async function(serv,{worldFolder,generation={"name":"diamond_square","options":{"worldHeight":80}}}={}) { module.exports.server=async function(serv,{worldFolder,generation={"name":"diamond_square","options":{"worldHeight":80}}}={}) {
const regionFolder=worldFolder+"/region"; const newSeed=generation.options.seed || Math.floor(Math.random()*Math.pow(2, 31));
let seed;
let regionFolder;
if(worldFolder) {
regionFolder = worldFolder + "/region";
try { try {
const stats = await fs.stat(regionFolder); const stats = await fs.stat(regionFolder);
} }
@ -16,15 +20,17 @@ module.exports.server=async function(serv,{worldFolder,generation={"name":"diamo
await fs.mkdir(regionFolder); await fs.mkdir(regionFolder);
} }
let seed;
try { try {
const levelData = await level.readLevel(worldFolder + "/level.dat"); const levelData = await level.readLevel(worldFolder + "/level.dat");
seed = levelData["RandomSeed"][0]; seed = levelData["RandomSeed"][0];
} }
catch (err) { catch (err) {
seed=generation.options.seed || Math.floor(Math.random()*Math.pow(2, 31)); seed = newSeed;
await level.writeLevel(worldFolder + "/level.dat", {"RandomSeed": [seed, 0]}); await level.writeLevel(worldFolder + "/level.dat", {"RandomSeed": [seed, 0]});
} }
}
else
seed=newSeed;
generation.options.seed=seed; generation.options.seed=seed;
serv.emit("seed",generation.options.seed); serv.emit("seed",generation.options.seed);
serv.overworld = new World(generations[generation.name](generation.options), regionFolder); serv.overworld = new World(generations[generation.name](generation.options), regionFolder);

View file

@ -66,7 +66,7 @@ describe("Server with mineflayer connection", function() {
options["online-mode"]=false; options["online-mode"]=false;
options["port"]=25566; options["port"]=25566;
options["view-distance"]=2; options["view-distance"]=2;
options["regionFolder"]=undefined; options["worldFolder"]=undefined;
serv=mcServer.createMCServer(options); serv=mcServer.createMCServer(options);