diff --git a/examples/basic.js b/examples/basic.js index fedd195..478ca67 100644 --- a/examples/basic.js +++ b/examples/basic.js @@ -1,4 +1,4 @@ -var mcServer=require("../"); +var mcServer=require("flying-squid"); mcServer.createMCServer({ "motd": "A Minecraft Server \nRunning flying-squid", diff --git a/package.json b/package.json index a663ec5..3d69f31 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ "flying-squid": "./app.js" }, "scripts": { - "prepublish": "gulp", + "prepublish": "gulp && require-self", "test": "mocha --reporter spec distTest" }, "keywords": [], @@ -62,6 +62,7 @@ "gulp-sourcemaps": "^1.3.0", "longjohn": "~0.2.8", "mineflayer": "^1.5.2", - "mocha": "~2.3.4" + "mocha": "~2.3.4", + "require-self": "^0.1.0" } } diff --git a/src/index.js b/src/index.js index 5978229..be1cf38 100644 --- a/src/index.js +++ b/src/index.js @@ -2,14 +2,17 @@ var mc = require('minecraft-protocol'); var EventEmitter = require('events').EventEmitter; var path = require('path'); var requireIndex = require('requireindex'); -var plugins = requireIndex(path.join(__dirname, 'lib', 'plugins')); require('emit-then').register(); if (process.env.NODE_ENV === 'dev'){ require('longjohn'); } module.exports = { - createMCServer:createMCServer + createMCServer:createMCServer, + Behavior:require("./lib/behavior"), + Command:require("./lib/command"), + version:require("./lib/version"), + generations:require("./lib/generations") }; function createMCServer(options) { @@ -26,6 +29,7 @@ class MCServer extends EventEmitter { } connect(options) { + var plugins = requireIndex(path.join(__dirname, 'lib', 'plugins')); this._server = mc.createServer(options); Object.keys(plugins) .filter(pluginName => plugins[pluginName].server!=undefined) diff --git a/src/lib/generations.js b/src/lib/generations.js new file mode 100644 index 0000000..bb6572d --- /dev/null +++ b/src/lib/generations.js @@ -0,0 +1,7 @@ +module.exports = { + 'grass_field':require("./worldGenerations/grass_field"), + 'diamond_square':require("./worldGenerations/diamond_square"), + 'superflat':require("./worldGenerations/superflat"), + 'all_the_blocks':require("./worldGenerations/all_the_blocks"), + 'nether':require("./worldGenerations/nether") +}; \ No newline at end of file diff --git a/src/lib/plugins/behavior.js b/src/lib/plugins/behavior.js index b41178f..737fef0 100644 --- a/src/lib/plugins/behavior.js +++ b/src/lib/plugins/behavior.js @@ -1,4 +1,4 @@ -var Behavior = require('../behavior'); +var Behavior = require("flying-squid").Behavior; module.exports.server = function(serv) { serv.behavior = new Behavior(serv); diff --git a/src/lib/plugins/commands.js b/src/lib/plugins/commands.js index 0f43a1d..0999d31 100644 --- a/src/lib/plugins/commands.js +++ b/src/lib/plugins/commands.js @@ -1,5 +1,3 @@ -var Vec3 = require("vec3").Vec3; - module.exports.player=function(player, serv) { player.commands.add({ diff --git a/src/lib/plugins/inventory.js b/src/lib/plugins/inventory.js index 50c7344..3b83091 100644 --- a/src/lib/plugins/inventory.js +++ b/src/lib/plugins/inventory.js @@ -1,4 +1,4 @@ -var version = require("../version"); +var version = require("flying-squid").version; var windows = require("prismarine-windows")(version).windows; var Item = require("prismarine-item")(version); diff --git a/src/lib/plugins/login.js b/src/lib/plugins/login.js index 6944be8..b685927 100644 --- a/src/lib/plugins/login.js +++ b/src/lib/plugins/login.js @@ -4,7 +4,7 @@ var Vec3 = require("vec3").Vec3; var path = require('path'); var requireIndex = require('requireindex'); var plugins = requireIndex(path.join(__dirname,'..', 'plugins')); -var Command = require('../command'); +var Command = require('flying-squid').Command; module.exports.server=function(serv,options) { diff --git a/src/lib/plugins/physics.js b/src/lib/plugins/physics.js index ad83dc1..ba3b183 100644 --- a/src/lib/plugins/physics.js +++ b/src/lib/plugins/physics.js @@ -1,4 +1,4 @@ -var blocks=require("minecraft-data")(require("../version")).blocks; +var blocks=require("minecraft-data")(require("flying-squid").version).blocks; var Vec3 = require("vec3").Vec3; module.exports.entity=function(entity){ diff --git a/src/lib/plugins/placeBlock.js b/src/lib/plugins/placeBlock.js index 1b4f5d7..2f26567 100644 --- a/src/lib/plugins/placeBlock.js +++ b/src/lib/plugins/placeBlock.js @@ -1,4 +1,4 @@ -var blocks=require("minecraft-data")(require("../version")).blocks; +var blocks=require("minecraft-data")(require("flying-squid").version).blocks; var Vec3 = require("vec3").Vec3; var materialToSound = { diff --git a/src/lib/plugins/spawn.js b/src/lib/plugins/spawn.js index d3dce1e..a558591 100644 --- a/src/lib/plugins/spawn.js +++ b/src/lib/plugins/spawn.js @@ -1,4 +1,4 @@ -var version = require("../version"); +var version = require("flying-squid").version; var entitiesByName=require("minecraft-data")(version).entitiesByName; var entitiesById=require("minecraft-data")(version).entities; var Entity = require("prismarine-entity"); diff --git a/src/lib/plugins/world.js b/src/lib/plugins/world.js index 04378a9..907b444 100644 --- a/src/lib/plugins/world.js +++ b/src/lib/plugins/world.js @@ -1,17 +1,9 @@ -var Vec3 = require("vec3").Vec3; var spiralloop = require('spiralloop'); -var Chunk = require('prismarine-chunk')(require("../version")); var World = require('prismarine-world'); var WorldSync = require("prismarine-world-sync"); -var generations={ - 'grass_field':require("../worldGenerations/grass_field"), - 'diamond_square':require("../worldGenerations/diamond_square"), - 'superflat':require("../worldGenerations/superflat"), - 'all_the_blocks':require("../worldGenerations/all_the_blocks"), - 'nether':require("../worldGenerations/nether") -}; +var generations=require("flying-squid").generations; module.exports.server=function(serv,{regionFolder,generation={"name":"diamond_square","options":{"worldHeight":80}}}={}) { generation.options.seed=generation.options.seed || Math.random()*Math.pow(2, 32); diff --git a/src/lib/version.js b/src/lib/version.js index c25e3a6..d40afe1 100644 --- a/src/lib/version.js +++ b/src/lib/version.js @@ -1,3 +1 @@ -var mc = require("minecraft-protocol"); - module.exports="1.8"; \ No newline at end of file diff --git a/test/mineflayer.js b/test/mineflayer.js index 1b25f0f..e792aa6 100644 --- a/test/mineflayer.js +++ b/test/mineflayer.js @@ -1,5 +1,5 @@ var net = require('net'); -var mcServer=require("../"); +var mcServer=require("flying-squid"); var settings = require('../config/default-settings'); var mineflayer = require("mineflayer"); var assert = require('chai').assert;