LookAtMySuitBot/js/node_modules/prismarine-registry/test/util/downloadMcpcServer.js

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 }