minecraft-wrap
Advanced tools
# History | ||
# 1.5.0 | ||
* Fix etag not md5 on all downloads (@u9g) | ||
* Kill process when shutdown takes too long (@IceTank) | ||
## 1.4.0 | ||
* Throw on too old java version | ||
@@ -5,0 +11,0 @@ * Don't use broken native transport (Thanks @nickelpro) |
@@ -8,3 +8,2 @@ const fetch = require('node-fetch') | ||
const mkdirp = promisify(require('mkdirp')) | ||
const etagDownload = promisify(require('./etag_download')) | ||
const Queue = require('promise-queue') | ||
@@ -51,3 +50,4 @@ const flatmap = require('flatmap') | ||
const versionUrl = versionInfos.url | ||
return etagDownload(versionUrl, this.mcPath + '/versions/' + version + '/' + version + '.json') | ||
const path = `${this.mcPath}/versions/${version}/${version}.json` | ||
return downloadFile(versionUrl, path, null, null).then(() => path) | ||
}) | ||
@@ -186,2 +186,3 @@ .then(path => fs.readFile(path, 'utf8')) | ||
function checkFile (path, size, sha1) { | ||
if (size == null && sha1 == null) return fs.promises.access(path) | ||
return fs.stat(path).then(stats => assert.strictEqual(stats.size, size, 'wrong size for ' + path)) | ||
@@ -188,0 +189,0 @@ .then(() => fs.readFile(path)) |
@@ -41,3 +41,3 @@ const EventEmitter = require('events').EventEmitter | ||
auths.profiles[name] = { | ||
name: name, | ||
name, | ||
lastVersionId: this.version, | ||
@@ -44,0 +44,0 @@ allowedReleaseTypes: [ |
@@ -67,4 +67,9 @@ const path = require('path') | ||
this.mcServer.stdin.write('stop\n') | ||
const timeoutHandle = setTimeout(() => { | ||
console.warn('Server shutdown took to long. Killing process.') | ||
this.mcServer.kill() | ||
}, 10000) | ||
this.mcServer.on('close', () => { | ||
this.mcServer = null | ||
clearTimeout(timeoutHandle) | ||
done() | ||
@@ -71,0 +76,0 @@ }) |
{ | ||
"name": "minecraft-wrap", | ||
"version": "1.4.0", | ||
"version": "1.5.0", | ||
"description": "Download and wrap the vanilla minecraft server in node.js", | ||
@@ -44,4 +44,4 @@ "main": "index.js", | ||
"devDependencies": { | ||
"mocha": "^9.0.0", | ||
"standard": "^16.0.1" | ||
"mocha": "^10.0.0", | ||
"standard": "^17.0.0" | ||
}, | ||
@@ -48,0 +48,0 @@ "bin": { |
@@ -5,20 +5,23 @@ /* eslint-env mocha */ | ||
const fs = require('fs') | ||
const testedVersions = require('./tested_versions.json') | ||
describe('Download', function () { | ||
this.timeout(10 * 60 * 1000) | ||
it('Can download the client', done => { | ||
minecraftWrap.downloadClient('1.13', '1.13-client.jar', err => { | ||
if (err) return done(err) | ||
fs.unlinkSync('1.13-client.jar') | ||
done() | ||
for (const version of testedVersions) { | ||
describe(`Download ${version}`, function () { | ||
this.timeout(10 * 60 * 1000) | ||
it('Can download the client', done => { | ||
minecraftWrap.downloadClient(version, `${version}-client.jar`, err => { | ||
if (err) return done(err) | ||
fs.unlinkSync(`${version}-client.jar`) | ||
done() | ||
}) | ||
}) | ||
}) | ||
it('Can download the server', done => { | ||
minecraftWrap.downloadServer('1.13', '1.13-server.jar', err => { | ||
if (err) return done(err) | ||
fs.unlinkSync('1.13-server.jar') | ||
done() | ||
it('Can download the server', done => { | ||
minecraftWrap.downloadServer(version, `${version}-server.jar`, err => { | ||
if (err) return done(err) | ||
fs.unlinkSync(`${version}-server.jar`) | ||
done() | ||
}) | ||
}) | ||
}) | ||
}) | ||
} |
@@ -8,43 +8,32 @@ /* eslint-env mocha */ | ||
const MC_SERVER_JAR = path.join(__dirname, 'server.jar') | ||
const fs = require('fs') | ||
const testedVersions = require('./tested_versions.json') | ||
describe('server_session', function () { | ||
this.timeout(10 * 60 * 1000) | ||
before((done) => { | ||
downloadServer('1.13', MC_SERVER_JAR, err => { | ||
if (err) return done(err) | ||
done() | ||
for (const version of testedVersions) { | ||
describe(`server_session ${version}`, function () { | ||
this.timeout(10 * 60 * 1000) | ||
before((done) => { | ||
downloadServer(version, MC_SERVER_JAR, err => { | ||
if (err) return done(err) | ||
done() | ||
}) | ||
}) | ||
}) | ||
after((done) => { | ||
fs.unlinkSync(MC_SERVER_JAR) | ||
done() | ||
}) | ||
it('start and stop the server', function (done) { | ||
const vServer = new WrapServer(MC_SERVER_JAR, MC_SERVER_PATH) | ||
it('start and stop the server', function (done) { | ||
const vServer = new WrapServer(MC_SERVER_JAR, MC_SERVER_PATH) | ||
vServer.on('line', function (line) { | ||
console.log(line) | ||
}) | ||
vServer.on('line', function (line) { | ||
console.log(line) | ||
}) | ||
vServer.startServer({ 'server-port': 25569 }, | ||
function (err) { | ||
if (err) { | ||
console.log(err) | ||
done(err) | ||
return | ||
} | ||
console.log('Server Started !') | ||
vServer.startServer({ 'server-port': 25569 }, | ||
function (err) { | ||
if (err) { | ||
console.log(err) | ||
done(err) | ||
return | ||
} | ||
console.log('Server Started !') | ||
setTimeout(function () { | ||
vServer.stopServer(function (err) { | ||
if (err) { | ||
console.log(err) | ||
done(err) | ||
return | ||
} | ||
console.log('Server Stopped !') | ||
vServer.deleteServerData(function (err) { | ||
setTimeout(function () { | ||
vServer.stopServer(function (err) { | ||
if (err) { | ||
@@ -55,9 +44,18 @@ console.log(err) | ||
} | ||
console.log('Server data deleted !') | ||
done() | ||
console.log('Server Stopped !') | ||
vServer.deleteServerData(function (err) { | ||
if (err) { | ||
console.log(err) | ||
done(err) | ||
return | ||
} | ||
console.log('Server data deleted !') | ||
done() | ||
}) | ||
}) | ||
}) | ||
}, 3000) | ||
}) | ||
}, 3000) | ||
}) | ||
}) | ||
}) | ||
}) | ||
} |
Sorry, the diff of this file is not supported yet
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
Network access
Supply chain riskThis module accesses the network.
Found 1 instance in 1 package
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
Found 1 instance in 1 package
2
-50%4
-20%37986
-3.38%744
-5.7%