38 lines
1.1 KiB
JavaScript
38 lines
1.1 KiB
JavaScript
const promisify = require('util').promisify
|
|
const wrap = require('minecraft-wrap')
|
|
const downloadServer = promisify(wrap.downloadServer)
|
|
const path = require('path')
|
|
const debug = require('debug')('prismarine-registry')
|
|
|
|
async function startServer (version, port = 25569) {
|
|
const MC_SERVER_PATH = path.join(__dirname, `server_${version}`)
|
|
const MC_SERVER_JAR = path.join(__dirname, `server_${version}.jar`)
|
|
|
|
console.log('🔻 Downloading server', version)
|
|
await downloadServer(version, MC_SERVER_JAR)
|
|
|
|
const vServer = new wrap.WrapServer(MC_SERVER_JAR, MC_SERVER_PATH)
|
|
|
|
vServer.on('line', function (line) {
|
|
debug(line)
|
|
})
|
|
|
|
console.log('▶ Starting server', port)
|
|
|
|
const settings = {
|
|
'online-mode': 'false',
|
|
'server-port': port,
|
|
'view-distance': 2,
|
|
// 'generator-settings': 'minecraft:bedrock,minecraft:grass_block;minecraft:plains;',
|
|
'level-type': 'flat'
|
|
}
|
|
|
|
await new Promise(resolve => vServer.startServer(settings, resolve))
|
|
|
|
vServer.stop = async () => new Promise((resolve, reject) => vServer.stopServer(reject, resolve))
|
|
|
|
return vServer
|
|
}
|
|
|
|
module.exports = { startServer }
|