diff --git a/app.js b/app.js index 791205d..ffb4c82 100644 --- a/app.js +++ b/app.js @@ -14,7 +14,8 @@ var options = { commands: commands, logging:settings.logging, kickTimeout:10*60*1000, - generation:settings.generation + generation:settings.generation, + seed:settings.seed }; mcServer.createMCServer(options); diff --git a/src/lib/serverPlugins/log.js b/src/lib/serverPlugins/log.js index fe252e0..528db41 100644 --- a/src/lib/serverPlugins/log.js +++ b/src/lib/serverPlugins/log.js @@ -20,6 +20,10 @@ function inject(serv,settings) serv.log(banner.username + " banned " + bannedUsername + (reason ? " (" + reason + ")" : "")); }); + serv.on("seed",function(seed){ + serv.log("seed: "+seed); + }); + var logFile=path.join("logs",timeStarted + ".log"); function log(message) { diff --git a/src/lib/serverPlugins/world.js b/src/lib/serverPlugins/world.js index de60e6a..b32bca3 100644 --- a/src/lib/serverPlugins/world.js +++ b/src/lib/serverPlugins/world.js @@ -10,5 +10,7 @@ var generations={ module.exports = inject; function inject(serv,options) { - serv.world = new World(generations[options["generation"].name](options["generation"].options)); + var seed=options.seed || Math.random()*Math.pow(2, 32); + serv.emit("seed",seed); + serv.world = new World(generations[options["generation"].name](seed,options["generation"].options)); } diff --git a/src/lib/worldGenerations/diamond_square.js b/src/lib/worldGenerations/diamond_square.js index 73cba30..e484b86 100644 --- a/src/lib/worldGenerations/diamond_square.js +++ b/src/lib/worldGenerations/diamond_square.js @@ -5,7 +5,7 @@ function DiamondSquare(size, roughness, seed) { // public fields this.size = size; this.roughness = roughness; - this.seed = (seed ? seed : Math.random()); + this.seed = seed; var opCount = 0; // private field @@ -93,11 +93,11 @@ function DiamondSquare(size, roughness, seed) { } } -function generation(options) { +function generation(seed, options) { var worldHeight=options.worldHeight || 80; // Selected empirically var size = 10000000; - var space = new DiamondSquare(size, size / 1000, Math.random() * 10000); + var space = new DiamondSquare(size, size / 1000, seed); function generateSimpleChunk(chunkX, chunkZ) { var chunk = new Chunk(); diff --git a/src/lib/worldGenerations/grass_field.js b/src/lib/worldGenerations/grass_field.js index 62604ae..2220a16 100644 --- a/src/lib/worldGenerations/grass_field.js +++ b/src/lib/worldGenerations/grass_field.js @@ -1,7 +1,7 @@ var Chunk = require('prismarine-chunk')(require("../version")); var Vec3 = require('vec3'); -function generation(options) { +function generation(seed,options) { function generateSimpleChunk(chunkX, chunkZ) { var chunk = new Chunk();