bring (static) multi version support to everything else + fix some formatting

This commit is contained in:
Romain Beaumont 2018-05-13 20:21:23 +02:00
parent 0b53189116
commit 48be4f2266
No known key found for this signature in database
GPG key ID: DB60E388B3BCF286
13 changed files with 54 additions and 47 deletions

View file

@ -1,22 +1,22 @@
const mcServer=require("flying-squid");
const mcServer = require('flying-squid')
mcServer.createMCServer({
"motd": "A Minecraft Server \nRunning flying-squid",
"port": 25565,
"max-players": 10,
"online-mode": true,
"logging": true,
"gameMode": 1,
"generation": {
"name": "diamond_square",
"options":{
"worldHeight": 80
'motd': 'A Minecraft Server \nRunning flying-squid',
'port': 25565,
'max-players': 10,
'online-mode': true,
'logging': true,
'gameMode': 1,
'generation': {
'name': 'diamond_square',
'options': {
'worldHeight': 80
}
},
"kickTimeout": 10000,
"plugins": {
'kickTimeout': 10000,
'plugins': {
},
"modpe": false,
"view-distance": 10
});
'modpe': false,
'view-distance': 10
})

View file

@ -15,7 +15,7 @@
},
"scripts": {
"prepare": "require-self",
"lint": "standard test/*.test.js src/**/*.js src/**/**/*.js src/*.js *.js",
"lint": "standard test/*.test.js src/**/*.js src/**/**/*.js src/*.js examples/*.js *.js",
"test": "jest --verbose --runInBand"
},
"keywords": [],

View file

@ -11,7 +11,6 @@ module.exports = {
createMCServer: createMCServer,
Behavior: require('./lib/behavior'),
Command: require('./lib/command'),
version: require('./lib/version'),
generations: require('./lib/generations'),
experience: require('./lib/experience'),
UserError: require('./lib/user_error'),

View file

@ -15,6 +15,8 @@ module.exports = (obj) => {
let resp
func = func || (() => {})
await obj.emitThen(eventName + '_cancel', data, cancel).catch((err) => setTimeout(() => { throw err }, 0))
await obj.emitThen(eventName, data, cancelled, cancelCount).catch((err) => setTimeout(() => { throw err }, 0))

View file

@ -1,6 +1,6 @@
const UserError = require('flying-squid').UserError
module.exports.player = function (player, serv) {
module.exports.player = function (player, serv, {version}) {
player.commands.add({
base: 'help',
info: 'to show all commands',
@ -80,7 +80,7 @@ module.exports.player = function (player, serv) {
info: 'to get version of the server',
usage: '/version',
action () {
return 'This server is running flying-squid version ' + require('../../../package').version
return 'This server is running flying-squid version ' + version
}
})

View file

@ -1,9 +1,9 @@
const version = require('flying-squid').version
const windows = require('prismarine-windows')(version).windows
const Item = require('prismarine-item')(version)
const Vec3 = require('vec3')
module.exports.player = function (player, serv) {
module.exports.player = function (player, serv, {version}) {
const Item = require('prismarine-item')(version)
const windows = require('prismarine-windows')(version).windows
player.heldItemSlot = 0
player.heldItem = new Item(256, 1)
player.inventory = new windows.InventoryWindow(0, 'Inventory', 44)

View file

@ -1,7 +1,8 @@
const blocks = require('minecraft-data')(require('flying-squid').version).blocks
const Vec3 = require('vec3').Vec3
module.exports.entity = function (entity) {
module.exports.entity = function (entity, serv, {version}) {
const blocks = require('minecraft-data')(version).blocks
entity.calculatePhysics = async (delta) => {
if (entity.gravity) {
addGravity(entity, 'x', delta)

View file

@ -1,4 +1,3 @@
const blocks = require('minecraft-data')(require('flying-squid').version).blocks
const Vec3 = require('vec3').Vec3
const materialToSound = {
@ -11,7 +10,9 @@ const materialToSound = {
'wood': 'wood'
}
module.exports.player = function (player, serv) {
module.exports.player = function (player, serv, {version}) {
const blocks = require('minecraft-data')(version).blocks
player._client.on('block_place', ({direction, heldItem, location} = {}) => {
if (direction === -1 || heldItem.blockId === -1 || !blocks[heldItem.blockId]) return
const referencePosition = new Vec3(location.x, location.y, location.z)

View file

@ -1,17 +1,17 @@
const version = require('flying-squid').version
const entitiesByName = require('minecraft-data')(version).entitiesByName
const mobsById = require('minecraft-data')(version).mobs
const objectsById = require('minecraft-data')(version).objects
const Entity = require('prismarine-entity')
const path = require('path')
const requireIndex = require('../requireindex')
const plugins = requireIndex(path.join(__dirname, '..', 'plugins'))
const Item = require('prismarine-item')(version)
const UserError = require('flying-squid').UserError
const Vec3 = require('vec3').Vec3
module.exports.server = function (serv, options) {
const version = options.version
const mobsById = require('minecraft-data')(version).mobs
const objectsById = require('minecraft-data')(version).objects
serv.initEntity = (type, entityType, world, position) => {
if (Object.keys(serv.entities).length > options['max-entities']) { throw new Error('Too many mobs !') }
serv.entityMaxId++
@ -74,6 +74,10 @@ module.exports.server = function (serv, options) {
}
module.exports.player = function (player, serv, options) {
const version = options.version
const entitiesByName = require('minecraft-data')(version).entitiesByName
const Item = require('prismarine-item')(version)
player.commands.add({
base: 'summon',
info: 'Summon an entity',

View file

@ -1,8 +1,9 @@
const items = require('minecraft-data')(require('flying-squid').version).items
const Item = require('prismarine-item')(require('flying-squid').version)
const Vec3 = require('vec3').Vec3
module.exports.player = function (player, serv) {
module.exports.player = function (player, serv, {version}) {
const items = require('minecraft-data')(version).items
const Item = require('prismarine-item')(version)
player._client.on('block_place', ({direction, heldItem, location} = {}) => {
if (direction === -1 || heldItem.blockId === -1 || !items[heldItem.blockId]) return
const item = Item.fromNotch(heldItem)

View file

@ -128,10 +128,10 @@ async function makeWorldWithPortal (portal, additionalAir, additionalObsidian) {
return world
}
function loader(version) {
function loader (version) {
World = require('prismarine-world')(version)
Chunk = require('prismarine-chunk')(version)
return {detectFrame,findPotentialLines,findBorder,getAir,generateLine,generatePortal,addPortalToWorld,makeWorldWithPortal}
return {detectFrame, findPotentialLines, findBorder, getAir, generateLine, generatePortal, addPortalToWorld, makeWorldWithPortal}
}
module.exports = loader

View file

@ -1 +0,0 @@
module.exports = '1.8'

View file

@ -1,14 +1,14 @@
/* eslint-env jest */
const {
detectFrame,
findPotentialLines,
findBorder,
getAir,
generateLine,
generatePortal,
makeWorldWithPortal
} = require('flying-squid')('1.8').portal_detector
detectFrame,
findPotentialLines,
findBorder,
getAir,
generateLine,
generatePortal,
makeWorldWithPortal
} = require('flying-squid').portal_detector('1.8')
const { Vec3 } = require('vec3')