@dimzxzzx07/mc-headless 2.2.1 → 2.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +658 -765
- package/dist/core/JavaChecker.d.ts +8 -2
- package/dist/core/JavaChecker.d.ts.map +1 -1
- package/dist/core/JavaChecker.js +219 -104
- package/dist/core/JavaChecker.js.map +1 -1
- package/dist/core/MinecraftServer.d.ts +17 -32
- package/dist/core/MinecraftServer.d.ts.map +1 -1
- package/dist/core/MinecraftServer.js +449 -186
- package/dist/core/MinecraftServer.js.map +1 -1
- package/dist/index.d.ts +19 -18
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +40 -18
- package/dist/index.js.map +1 -1
- package/dist/platforms/GeyserBridge.d.ts +21 -3
- package/dist/platforms/GeyserBridge.d.ts.map +1 -1
- package/dist/platforms/GeyserBridge.js +160 -60
- package/dist/platforms/GeyserBridge.js.map +1 -1
- package/dist/platforms/PluginManager.d.ts +16 -0
- package/dist/platforms/PluginManager.d.ts.map +1 -0
- package/dist/platforms/PluginManager.js +208 -0
- package/dist/platforms/PluginManager.js.map +1 -0
- package/dist/platforms/ViaVersion.d.ts +1 -7
- package/dist/platforms/ViaVersion.d.ts.map +1 -1
- package/dist/platforms/ViaVersion.js +23 -87
- package/dist/platforms/ViaVersion.js.map +1 -1
- package/dist/types/index.d.ts +189 -0
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +4 -2
- package/src/core/JavaChecker.ts +224 -108
- package/src/core/MinecraftServer.ts +540 -254
- package/src/index.ts +19 -19
- package/src/platforms/GeyserBridge.ts +196 -80
- package/src/platforms/PluginManager.ts +206 -0
- package/src/platforms/ViaVersion.ts +26 -107
- package/src/types/index.ts +206 -0
|
@@ -4,16 +4,22 @@ export interface JavaInfo {
|
|
|
4
4
|
type: 'system' | 'portable';
|
|
5
5
|
}
|
|
6
6
|
export declare class JavaChecker {
|
|
7
|
-
private static logger;
|
|
8
7
|
private static readonly JAVA_DIR;
|
|
9
8
|
private static readonly JAVA_URLS;
|
|
9
|
+
private static getOptimalJavaDirectory;
|
|
10
|
+
private static getArch;
|
|
10
11
|
static getRequiredJavaVersion(serverVersion: string): '17' | '21';
|
|
11
12
|
static checkJava(): Promise<boolean>;
|
|
12
13
|
static getSystemJavaPath(): string | null;
|
|
13
14
|
static getSystemJavaVersion(): string | null;
|
|
14
|
-
private static
|
|
15
|
+
private static shouldUpdateJava;
|
|
16
|
+
private static downloadAndExtractWithStream;
|
|
15
17
|
static getOrDownloadPortableJava(version: '17' | '21'): Promise<JavaInfo>;
|
|
16
18
|
static ensureJava(serverVersion: string, usePortable?: boolean): Promise<JavaInfo>;
|
|
17
19
|
static cleanupOldJava(): void;
|
|
20
|
+
static getJavaInfo(): {
|
|
21
|
+
dir: string;
|
|
22
|
+
arch: string;
|
|
23
|
+
};
|
|
18
24
|
}
|
|
19
25
|
//# sourceMappingURL=JavaChecker.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JavaChecker.d.ts","sourceRoot":"","sources":["../../src/core/JavaChecker.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,QAAQ;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,QAAQ,GAAG,UAAU,CAAC;CAC/B;AAED,qBAAa,WAAW;IACpB,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"JavaChecker.d.ts","sourceRoot":"","sources":["../../src/core/JavaChecker.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,QAAQ;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,QAAQ,GAAG,UAAU,CAAC;CAC/B;AAED,qBAAa,WAAW;IACpB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAyC;IAEzE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CA+B/B;IAEF,OAAO,CAAC,MAAM,CAAC,uBAAuB;IAmBtC,OAAO,CAAC,MAAM,CAAC,OAAO;WAOR,sBAAsB,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;WAUpD,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;WAYnC,iBAAiB,IAAI,MAAM,GAAG,IAAI;WASlC,oBAAoB,IAAI,MAAM,GAAG,IAAI;IA2BnD,OAAO,CAAC,MAAM,CAAC,gBAAgB;mBAUV,4BAA4B;WAoI7B,yBAAyB,CAAC,OAAO,EAAE,IAAI,GAAG,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC;WAgElE,UAAU,CAAC,aAAa,EAAE,MAAM,EAAE,WAAW,GAAE,OAAc,GAAG,OAAO,CAAC,QAAQ,CAAC;WAoBvF,cAAc,IAAI,IAAI;WAwBtB,WAAW,IAAI;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;CAM7D"}
|
package/dist/core/JavaChecker.js
CHANGED
|
@@ -39,22 +39,66 @@ const fs = __importStar(require("fs-extra"));
|
|
|
39
39
|
const path = __importStar(require("path"));
|
|
40
40
|
const https = __importStar(require("https"));
|
|
41
41
|
const http = __importStar(require("http"));
|
|
42
|
+
const os = __importStar(require("os"));
|
|
42
43
|
const tar = __importStar(require("tar"));
|
|
43
|
-
const Logger_1 = require("../utils/Logger");
|
|
44
44
|
class JavaChecker {
|
|
45
|
-
static
|
|
46
|
-
static JAVA_DIR = path.join(process.cwd(), '.java');
|
|
47
|
-
// Hanya pakai URL yang reliable dan direct download
|
|
45
|
+
static JAVA_DIR = JavaChecker.getOptimalJavaDirectory();
|
|
48
46
|
static JAVA_URLS = {
|
|
49
|
-
'21':
|
|
50
|
-
'
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
'
|
|
56
|
-
|
|
47
|
+
'21': {
|
|
48
|
+
'x64': [
|
|
49
|
+
'https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.2%2B13/OpenJDK21U-jre_x64_linux_hotspot_21.0.2_13.tar.gz',
|
|
50
|
+
'https://corretto.aws/downloads/latest/amazon-corretto-21-x64-linux-jre.tar.gz',
|
|
51
|
+
'https://download.bell-sw.com/java/21.0.2+13/bellsoft-jre21.0.2+13-linux-amd64.tar.gz'
|
|
52
|
+
],
|
|
53
|
+
'arm64': [
|
|
54
|
+
'https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.2%2B13/OpenJDK21U-jre_aarch64_linux_hotspot_21.0.2_13.tar.gz',
|
|
55
|
+
'https://corretto.aws/downloads/latest/amazon-corretto-21-aarch64-linux-jre.tar.gz',
|
|
56
|
+
'https://download.bell-sw.com/java/21.0.2+13/bellsoft-jre21.0.2+13-linux-aarch64.tar.gz'
|
|
57
|
+
],
|
|
58
|
+
'arm': [
|
|
59
|
+
'https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.2%2B13/OpenJDK21U-jre_arm_linux_hotspot_21.0.2_13.tar.gz'
|
|
60
|
+
]
|
|
61
|
+
},
|
|
62
|
+
'17': {
|
|
63
|
+
'x64': [
|
|
64
|
+
'https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.10%2B7/OpenJDK17U-jre_x64_linux_hotspot_17.0.10_7.tar.gz',
|
|
65
|
+
'https://corretto.aws/downloads/latest/amazon-corretto-17-x64-linux-jre.tar.gz',
|
|
66
|
+
'https://download.bell-sw.com/java/17.0.10+13/bellsoft-jre17.0.10+13-linux-amd64.tar.gz'
|
|
67
|
+
],
|
|
68
|
+
'arm64': [
|
|
69
|
+
'https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.10%2B7/OpenJDK17U-jre_aarch64_linux_hotspot_17.0.10_7.tar.gz',
|
|
70
|
+
'https://corretto.aws/downloads/latest/amazon-corretto-17-aarch64-linux-jre.tar.gz',
|
|
71
|
+
'https://download.bell-sw.com/java/17.0.10+13/bellsoft-jre17.0.10+13-linux-aarch64.tar.gz'
|
|
72
|
+
],
|
|
73
|
+
'arm': [
|
|
74
|
+
'https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.10%2B7/OpenJDK17U-jre_arm_linux_hotspot_17.0.10_7.tar.gz'
|
|
75
|
+
]
|
|
76
|
+
}
|
|
57
77
|
};
|
|
78
|
+
static getOptimalJavaDirectory() {
|
|
79
|
+
const pterodactylDir = '/home/container/.java';
|
|
80
|
+
const tmpDir = '/tmp/.mc-headless';
|
|
81
|
+
try {
|
|
82
|
+
if (fs.existsSync('/home/container')) {
|
|
83
|
+
return pterodactylDir;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
catch {
|
|
87
|
+
}
|
|
88
|
+
const totalRamGB = os.totalmem() / 1024 / 1024 / 1024;
|
|
89
|
+
if (totalRamGB < 3) {
|
|
90
|
+
console.warn(`Warning: Low RAM (${totalRamGB.toFixed(1)} GB). Java in /tmp may cause issues.`);
|
|
91
|
+
}
|
|
92
|
+
return tmpDir;
|
|
93
|
+
}
|
|
94
|
+
static getArch() {
|
|
95
|
+
const arch = process.arch;
|
|
96
|
+
if (arch === 'arm64')
|
|
97
|
+
return 'arm64';
|
|
98
|
+
if (arch === 'arm')
|
|
99
|
+
return 'arm';
|
|
100
|
+
return 'x64';
|
|
101
|
+
}
|
|
58
102
|
static getRequiredJavaVersion(serverVersion) {
|
|
59
103
|
if (serverVersion.startsWith('1.21') || serverVersion === '1.21.11') {
|
|
60
104
|
return '21';
|
|
@@ -68,12 +112,9 @@ class JavaChecker {
|
|
|
68
112
|
return new Promise((resolve) => {
|
|
69
113
|
(0, child_process_1.exec)('which java', (error, stdout) => {
|
|
70
114
|
if (error || !stdout.trim()) {
|
|
71
|
-
this.logger.warning('Java is not installed in system');
|
|
72
115
|
resolve(false);
|
|
73
116
|
}
|
|
74
117
|
else {
|
|
75
|
-
const javaPath = stdout.trim();
|
|
76
|
-
this.logger.success(`System Java found at: ${javaPath}`);
|
|
77
118
|
resolve(true);
|
|
78
119
|
}
|
|
79
120
|
});
|
|
@@ -91,131 +132,199 @@ class JavaChecker {
|
|
|
91
132
|
static getSystemJavaVersion() {
|
|
92
133
|
try {
|
|
93
134
|
const output = (0, child_process_1.execSync)('java -version 2>&1').toString();
|
|
94
|
-
|
|
135
|
+
const versionRegex = /(?:version|openjdk|java)[\s"]+(\d+)(?:\.(\d+))?/i;
|
|
136
|
+
const match = output.match(versionRegex);
|
|
137
|
+
if (match) {
|
|
138
|
+
const majorVersion = parseInt(match[1]);
|
|
139
|
+
if (majorVersion === 21)
|
|
140
|
+
return '21';
|
|
141
|
+
if (majorVersion === 17)
|
|
142
|
+
return '17';
|
|
143
|
+
if (majorVersion === 11)
|
|
144
|
+
return '11';
|
|
145
|
+
if (majorVersion === 8)
|
|
146
|
+
return '8';
|
|
147
|
+
if (majorVersion === 1 && match[2] === '8')
|
|
148
|
+
return '8';
|
|
149
|
+
}
|
|
150
|
+
if (output.includes('version "21') || output.includes('openjdk 21'))
|
|
95
151
|
return '21';
|
|
96
|
-
if (output.includes('version "17'))
|
|
152
|
+
if (output.includes('version "17') || output.includes('openjdk 17'))
|
|
97
153
|
return '17';
|
|
98
|
-
if (output.includes('version "11'))
|
|
154
|
+
if (output.includes('version "11') || output.includes('openjdk 11'))
|
|
99
155
|
return '11';
|
|
100
|
-
if (output.includes('version "1.8'))
|
|
156
|
+
if (output.includes('version "1.8') || output.includes('openjdk 1.8'))
|
|
101
157
|
return '8';
|
|
102
|
-
|
|
103
|
-
return match ? match[1] : null;
|
|
158
|
+
return null;
|
|
104
159
|
}
|
|
105
160
|
catch {
|
|
106
161
|
return null;
|
|
107
162
|
}
|
|
108
163
|
}
|
|
109
|
-
static
|
|
164
|
+
static shouldUpdateJava(javaHome) {
|
|
165
|
+
try {
|
|
166
|
+
const stats = fs.statSync(javaHome);
|
|
167
|
+
const ageInDays = (Date.now() - stats.mtimeMs) / (1000 * 60 * 60 * 24);
|
|
168
|
+
return ageInDays > 30;
|
|
169
|
+
}
|
|
170
|
+
catch {
|
|
171
|
+
return true;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
static async downloadAndExtractWithStream(url, javaHome, retryCount = 0) {
|
|
175
|
+
const maxRetries = 3;
|
|
176
|
+
const userAgents = [
|
|
177
|
+
'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 Chrome/120.0.0.0 Safari/537.36',
|
|
178
|
+
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/120.0.0.0 Safari/537.36',
|
|
179
|
+
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 Chrome/120.0.0.0 Safari/537.36'
|
|
180
|
+
];
|
|
110
181
|
return new Promise((resolve, reject) => {
|
|
111
|
-
|
|
182
|
+
console.log(`Downloading Java...`);
|
|
112
183
|
const protocol = url.startsWith('https') ? https : http;
|
|
184
|
+
let isDone = false;
|
|
185
|
+
let cleanup = () => {
|
|
186
|
+
if (!isDone) {
|
|
187
|
+
isDone = true;
|
|
188
|
+
fs.remove(javaHome).catch(() => { });
|
|
189
|
+
}
|
|
190
|
+
};
|
|
113
191
|
const request = protocol.get(url, {
|
|
114
192
|
headers: {
|
|
115
|
-
'User-Agent':
|
|
193
|
+
'User-Agent': userAgents[retryCount % userAgents.length],
|
|
194
|
+
'Accept': 'application/octet-stream',
|
|
195
|
+
'Accept-Encoding': 'gzip, deflate'
|
|
116
196
|
}
|
|
117
197
|
}, (response) => {
|
|
118
198
|
if (response.statusCode === 301 || response.statusCode === 302 || response.statusCode === 307 || response.statusCode === 308) {
|
|
119
199
|
const location = response.headers.location;
|
|
120
|
-
if (location) {
|
|
121
|
-
this.
|
|
122
|
-
|
|
123
|
-
|
|
200
|
+
if (location && retryCount < maxRetries) {
|
|
201
|
+
this.downloadAndExtractWithStream(location, javaHome, retryCount + 1).then(resolve).catch(reject);
|
|
202
|
+
}
|
|
203
|
+
else {
|
|
204
|
+
cleanup();
|
|
205
|
+
reject(new Error('Redirect failed'));
|
|
124
206
|
}
|
|
125
|
-
}
|
|
126
|
-
if (response.statusCode !== 200) {
|
|
127
|
-
reject(new Error(`Download failed: ${response.statusCode}`));
|
|
128
207
|
return;
|
|
129
208
|
}
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
209
|
+
if (response.statusCode !== 200) {
|
|
210
|
+
if (response.statusCode === 429 && retryCount < maxRetries) {
|
|
211
|
+
setTimeout(() => {
|
|
212
|
+
this.downloadAndExtractWithStream(url, javaHome, retryCount + 1).then(resolve).catch(reject);
|
|
213
|
+
}, 10000);
|
|
214
|
+
}
|
|
215
|
+
else if (response.statusCode && response.statusCode >= 500 && retryCount < maxRetries) {
|
|
216
|
+
setTimeout(() => {
|
|
217
|
+
this.downloadAndExtractWithStream(url, javaHome, retryCount + 1).then(resolve).catch(reject);
|
|
218
|
+
}, 10000);
|
|
219
|
+
}
|
|
220
|
+
else {
|
|
221
|
+
cleanup();
|
|
222
|
+
reject(new Error(`Download failed: ${response.statusCode}`));
|
|
223
|
+
}
|
|
133
224
|
return;
|
|
134
225
|
}
|
|
135
|
-
const
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
if (totalSize > 0) {
|
|
142
|
-
const percent = ((downloadedSize / totalSize) * 100).toFixed(1);
|
|
143
|
-
if (parseFloat(percent) >= lastPercent + 5 || parseFloat(percent) >= 100) {
|
|
144
|
-
lastPercent = parseFloat(percent);
|
|
145
|
-
process.stdout.write(`\rDownloading Java: ${percent}% (${(downloadedSize / 1024 / 1024).toFixed(1)} MB)`);
|
|
146
|
-
}
|
|
147
|
-
}
|
|
226
|
+
const contentLength = response.headers['content-length'];
|
|
227
|
+
let downloadedBytes = 0;
|
|
228
|
+
fs.ensureDirSync(javaHome);
|
|
229
|
+
const extractor = tar.extract({
|
|
230
|
+
cwd: javaHome,
|
|
231
|
+
strip: 1
|
|
148
232
|
});
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
if (stats.size < 1000000) {
|
|
155
|
-
fs.unlinkSync(destPath);
|
|
156
|
-
reject(new Error(`Downloaded file too small: ${stats.size} bytes - possibly HTML page`));
|
|
157
|
-
return;
|
|
233
|
+
let extractError = null;
|
|
234
|
+
extractor.on('finish', () => {
|
|
235
|
+
if (!isDone) {
|
|
236
|
+
isDone = true;
|
|
237
|
+
resolve();
|
|
158
238
|
}
|
|
159
|
-
resolve();
|
|
160
239
|
});
|
|
161
|
-
|
|
162
|
-
|
|
240
|
+
extractor.on('error', (err) => {
|
|
241
|
+
extractError = err;
|
|
242
|
+
cleanup();
|
|
163
243
|
reject(err);
|
|
164
244
|
});
|
|
245
|
+
response.on('data', (chunk) => {
|
|
246
|
+
downloadedBytes += chunk.length;
|
|
247
|
+
});
|
|
248
|
+
response.on('error', (err) => {
|
|
249
|
+
extractor.end();
|
|
250
|
+
cleanup();
|
|
251
|
+
reject(err);
|
|
252
|
+
});
|
|
253
|
+
response.on('end', () => {
|
|
254
|
+
if (contentLength) {
|
|
255
|
+
const expected = parseInt(contentLength);
|
|
256
|
+
if (downloadedBytes < expected * 0.95) {
|
|
257
|
+
cleanup();
|
|
258
|
+
reject(new Error(`Download incomplete: ${downloadedBytes} of ${expected} bytes`));
|
|
259
|
+
return;
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
extractor.on('finish', () => {
|
|
263
|
+
if (!isDone && !extractError) {
|
|
264
|
+
isDone = true;
|
|
265
|
+
resolve();
|
|
266
|
+
}
|
|
267
|
+
});
|
|
268
|
+
});
|
|
269
|
+
response.pipe(extractor);
|
|
165
270
|
});
|
|
166
271
|
request.on('error', (err) => {
|
|
167
|
-
|
|
168
|
-
|
|
272
|
+
if (retryCount < maxRetries) {
|
|
273
|
+
setTimeout(() => {
|
|
274
|
+
this.downloadAndExtractWithStream(url, javaHome, retryCount + 1).then(resolve).catch(reject);
|
|
275
|
+
}, 5000);
|
|
276
|
+
}
|
|
277
|
+
else {
|
|
278
|
+
cleanup();
|
|
279
|
+
reject(err);
|
|
280
|
+
}
|
|
169
281
|
});
|
|
170
282
|
request.setTimeout(300000, () => {
|
|
171
283
|
request.destroy();
|
|
172
|
-
|
|
173
|
-
reject(new Error('Download timeout
|
|
284
|
+
cleanup();
|
|
285
|
+
reject(new Error('Download timeout'));
|
|
174
286
|
});
|
|
175
287
|
request.end();
|
|
176
288
|
});
|
|
177
289
|
}
|
|
178
290
|
static async getOrDownloadPortableJava(version) {
|
|
179
291
|
await fs.ensureDir(this.JAVA_DIR);
|
|
180
|
-
const
|
|
292
|
+
const arch = this.getArch();
|
|
293
|
+
const javaHome = path.join(this.JAVA_DIR, `jre-${version}-${arch}`);
|
|
181
294
|
const javaBin = path.join(javaHome, 'bin', 'java');
|
|
182
295
|
if (await fs.pathExists(javaBin)) {
|
|
183
|
-
this.
|
|
184
|
-
try {
|
|
185
|
-
const versionOutput = (0, child_process_1.execSync)(`"${javaBin}" -version 2>&1`).toString();
|
|
186
|
-
this.logger.debug(`Portable Java version: ${versionOutput.split('\n')[0]}`);
|
|
296
|
+
if (!this.shouldUpdateJava(javaHome)) {
|
|
187
297
|
return {
|
|
188
298
|
path: javaBin,
|
|
189
299
|
version: version,
|
|
190
300
|
type: 'portable'
|
|
191
301
|
};
|
|
192
302
|
}
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
303
|
+
console.log('Java update available, downloading latest...');
|
|
304
|
+
await fs.remove(javaHome);
|
|
305
|
+
}
|
|
306
|
+
const archUrls = this.JAVA_URLS[version]?.[arch];
|
|
307
|
+
if (!archUrls || archUrls.length === 0) {
|
|
308
|
+
throw new Error(`No Java download for ${version} on ${arch}`);
|
|
197
309
|
}
|
|
198
|
-
const urls = this.JAVA_URLS[version] || this.JAVA_URLS['21'];
|
|
199
310
|
let lastError = null;
|
|
200
|
-
for (let i = 0; i <
|
|
201
|
-
const url =
|
|
202
|
-
const tarPath = path.join(this.JAVA_DIR, `jre-${version}-${Date.now()}.tar.gz`);
|
|
311
|
+
for (let i = 0; i < archUrls.length; i++) {
|
|
312
|
+
const url = archUrls[i];
|
|
203
313
|
try {
|
|
204
|
-
|
|
205
|
-
this.logger.info(`URL: ${url}`);
|
|
206
|
-
await this.downloadWithNode(url, tarPath);
|
|
207
|
-
this.logger.info(`Extracting Java ${version}...`);
|
|
314
|
+
await fs.remove(javaHome);
|
|
208
315
|
await fs.ensureDir(javaHome);
|
|
209
|
-
await
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
});
|
|
214
|
-
await fs.remove(tarPath);
|
|
316
|
+
await this.downloadAndExtractWithStream(url, javaHome);
|
|
317
|
+
if (!await fs.pathExists(javaBin)) {
|
|
318
|
+
throw new Error('Java binary not found after extraction');
|
|
319
|
+
}
|
|
215
320
|
await fs.chmod(javaBin, 0o755);
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
321
|
+
try {
|
|
322
|
+
(0, child_process_1.execSync)(`"${javaBin}" -version 2>&1`);
|
|
323
|
+
}
|
|
324
|
+
catch {
|
|
325
|
+
await fs.remove(javaHome);
|
|
326
|
+
throw new Error('Java verification failed');
|
|
327
|
+
}
|
|
219
328
|
return {
|
|
220
329
|
path: javaBin,
|
|
221
330
|
version: version,
|
|
@@ -224,53 +333,59 @@ class JavaChecker {
|
|
|
224
333
|
}
|
|
225
334
|
catch (error) {
|
|
226
335
|
lastError = error instanceof Error ? error : new Error(String(error));
|
|
227
|
-
|
|
228
|
-
await fs.remove(
|
|
336
|
+
console.log(`Download attempt ${i + 1} failed, trying next source...`);
|
|
337
|
+
await fs.remove(javaHome).catch(() => { });
|
|
229
338
|
}
|
|
230
339
|
}
|
|
231
|
-
throw new Error(`Failed to download Java
|
|
340
|
+
throw new Error(`Failed to download Java: ${lastError?.message}`);
|
|
232
341
|
}
|
|
233
342
|
static async ensureJava(serverVersion, usePortable = true) {
|
|
234
343
|
const requiredVersion = this.getRequiredJavaVersion(serverVersion);
|
|
235
|
-
this.logger.info(`Server requires Java ${requiredVersion}`);
|
|
236
344
|
if (!usePortable) {
|
|
237
345
|
const systemJava = this.getSystemJavaPath();
|
|
238
346
|
if (systemJava) {
|
|
239
347
|
const systemVersion = this.getSystemJavaVersion();
|
|
240
348
|
if (systemVersion === requiredVersion) {
|
|
241
|
-
this.logger.success(`Using system Java ${systemVersion} at ${systemJava}`);
|
|
242
349
|
return {
|
|
243
350
|
path: systemJava,
|
|
244
351
|
version: systemVersion,
|
|
245
352
|
type: 'system'
|
|
246
353
|
};
|
|
247
354
|
}
|
|
248
|
-
else {
|
|
249
|
-
this.logger.warning(`System Java is ${systemVersion}, but server needs Java ${requiredVersion}`);
|
|
250
|
-
}
|
|
251
355
|
}
|
|
252
356
|
}
|
|
253
|
-
this.logger.info(`Downloading portable Java ${requiredVersion}...`);
|
|
254
357
|
return this.getOrDownloadPortableJava(requiredVersion);
|
|
255
358
|
}
|
|
256
359
|
static cleanupOldJava() {
|
|
257
360
|
try {
|
|
361
|
+
if (!fs.existsSync(this.JAVA_DIR))
|
|
362
|
+
return;
|
|
258
363
|
const files = fs.readdirSync(this.JAVA_DIR);
|
|
259
364
|
const now = Date.now();
|
|
260
365
|
const oneDay = 24 * 60 * 60 * 1000;
|
|
261
366
|
files.forEach(file => {
|
|
262
367
|
const filePath = path.join(this.JAVA_DIR, file);
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
368
|
+
try {
|
|
369
|
+
const stats = fs.statSync(filePath);
|
|
370
|
+
if (now - stats.mtimeMs > oneDay) {
|
|
371
|
+
if (stats.isDirectory()) {
|
|
372
|
+
fs.removeSync(filePath);
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
catch {
|
|
267
377
|
}
|
|
268
378
|
});
|
|
269
379
|
}
|
|
270
|
-
catch
|
|
271
|
-
this.logger.debug('No old Java to cleanup');
|
|
380
|
+
catch {
|
|
272
381
|
}
|
|
273
382
|
}
|
|
383
|
+
static getJavaInfo() {
|
|
384
|
+
return {
|
|
385
|
+
dir: this.JAVA_DIR,
|
|
386
|
+
arch: this.getArch()
|
|
387
|
+
};
|
|
388
|
+
}
|
|
274
389
|
}
|
|
275
390
|
exports.JavaChecker = JavaChecker;
|
|
276
391
|
//# sourceMappingURL=JavaChecker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JavaChecker.js","sourceRoot":"","sources":["../../src/core/JavaChecker.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"JavaChecker.js","sourceRoot":"","sources":["../../src/core/JavaChecker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,34 +1,5 @@
|
|
|
1
1
|
import { EventEmitter } from 'events';
|
|
2
|
-
import {
|
|
3
|
-
export interface MinecraftServerOptions extends Partial<MinecraftConfig> {
|
|
4
|
-
enableViaVersion?: boolean;
|
|
5
|
-
enableViaBackwards?: boolean;
|
|
6
|
-
enableViaRewind?: boolean;
|
|
7
|
-
enableSkinRestorer?: boolean;
|
|
8
|
-
enableProtocolSupport?: boolean;
|
|
9
|
-
customJavaArgs?: string[];
|
|
10
|
-
javaVersion?: '17' | '21' | 'auto';
|
|
11
|
-
usePortableJava?: boolean;
|
|
12
|
-
memoryMonitor?: {
|
|
13
|
-
enabled: boolean;
|
|
14
|
-
threshold: number;
|
|
15
|
-
interval: number;
|
|
16
|
-
action: 'restart' | 'warn' | 'stop';
|
|
17
|
-
};
|
|
18
|
-
autoInstallJava?: boolean;
|
|
19
|
-
networkOptimization?: {
|
|
20
|
-
tcpFastOpen: boolean;
|
|
21
|
-
bungeeMode: boolean;
|
|
22
|
-
proxyProtocol: boolean;
|
|
23
|
-
};
|
|
24
|
-
owners?: string[];
|
|
25
|
-
ownerCommands?: {
|
|
26
|
-
prefix: string;
|
|
27
|
-
enabled: boolean;
|
|
28
|
-
};
|
|
29
|
-
silentMode?: boolean;
|
|
30
|
-
statsInterval?: number;
|
|
31
|
-
}
|
|
2
|
+
import { ServerInfo, Player, MinecraftServerOptions } from '../types';
|
|
32
3
|
export declare class MinecraftServer extends EventEmitter {
|
|
33
4
|
private config;
|
|
34
5
|
private options;
|
|
@@ -37,10 +8,13 @@ export declare class MinecraftServer extends EventEmitter {
|
|
|
37
8
|
private geyser;
|
|
38
9
|
private viaVersion;
|
|
39
10
|
private skinRestorer;
|
|
11
|
+
private pluginManager;
|
|
40
12
|
private process;
|
|
41
13
|
private serverInfo;
|
|
42
14
|
private players;
|
|
43
15
|
private backupCron;
|
|
16
|
+
private cleanLogsCron;
|
|
17
|
+
private ramdiskBackupCron;
|
|
44
18
|
private startTime;
|
|
45
19
|
private memoryMonitorInterval;
|
|
46
20
|
private statsInterval;
|
|
@@ -56,11 +30,23 @@ export declare class MinecraftServer extends EventEmitter {
|
|
|
56
30
|
private cpuUsage;
|
|
57
31
|
private cgroupMemory;
|
|
58
32
|
private cgroupCpu;
|
|
33
|
+
private isPterodactyl;
|
|
34
|
+
private ramdiskPaths;
|
|
35
|
+
private serverReady;
|
|
59
36
|
constructor(userConfig?: MinecraftServerOptions);
|
|
37
|
+
private detectEnvironment;
|
|
60
38
|
private detectCgroupLimits;
|
|
39
|
+
private optimizeForPterodactylPanel;
|
|
61
40
|
private createEngine;
|
|
41
|
+
private setupSymlinkMaster;
|
|
42
|
+
private restoreFromMaster;
|
|
43
|
+
private setupRamdisk;
|
|
44
|
+
private backupRamdiskToMaster;
|
|
45
|
+
private cleanOldLogs;
|
|
46
|
+
private calculateWorldSize;
|
|
62
47
|
private buildJavaArgs;
|
|
63
48
|
private buildEnvironment;
|
|
49
|
+
private setupLogHandlers;
|
|
64
50
|
private processOwnerCommand;
|
|
65
51
|
private handleGamemodeCommand;
|
|
66
52
|
private handleTeleportCommand;
|
|
@@ -74,9 +60,9 @@ export declare class MinecraftServer extends EventEmitter {
|
|
|
74
60
|
private handleDeopCommand;
|
|
75
61
|
private sendOwnerHelp;
|
|
76
62
|
private updateStats;
|
|
77
|
-
start(): Promise<ServerInfo>;
|
|
78
63
|
private startMemoryMonitor;
|
|
79
64
|
private gracefulRestart;
|
|
65
|
+
start(): Promise<ServerInfo>;
|
|
80
66
|
stop(): Promise<void>;
|
|
81
67
|
sendCommand(command: string): void;
|
|
82
68
|
getInfo(): Promise<ServerInfo>;
|
|
@@ -88,6 +74,5 @@ export declare class MinecraftServer extends EventEmitter {
|
|
|
88
74
|
private handlePlayerJoin;
|
|
89
75
|
private handlePlayerLeave;
|
|
90
76
|
private parseMemory;
|
|
91
|
-
private calculateWorldSize;
|
|
92
77
|
}
|
|
93
78
|
//# sourceMappingURL=MinecraftServer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MinecraftServer.d.ts","sourceRoot":"","sources":["../../src/core/MinecraftServer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"MinecraftServer.d.ts","sourceRoot":"","sources":["../../src/core/MinecraftServer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAKtC,OAAO,EAEH,UAAU,EACV,MAAM,EACN,sBAAsB,EAKzB,MAAM,UAAU,CAAC;AAgBlB,qBAAa,eAAgB,SAAQ,YAAY;IAC7C,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,OAAO,CAAyB;IACxC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,UAAU,CAAoB;IACtC,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,OAAO,CAAa;IAC5B,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,UAAU,CAAmC;IACrD,OAAO,CAAC,aAAa,CAAmC;IACxD,OAAO,CAAC,iBAAiB,CAAmC;IAC5D,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,qBAAqB,CAA+B;IAC5D,OAAO,CAAC,aAAa,CAA+B;IACpD,OAAO,CAAC,kBAAkB,CAAgB;IAC1C,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,kBAAkB,CAAe;IACzC,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,aAAa,CAAkB;IACvC,OAAO,CAAC,YAAY,CAAkC;IACtD,OAAO,CAAC,WAAW,CAAkB;gBAEzB,UAAU,GAAE,sBAA2B;IAgHnD,OAAO,CAAC,iBAAiB;IA2BzB,OAAO,CAAC,kBAAkB;IAqB1B,OAAO,CAAC,2BAA2B;IAuBnC,OAAO,CAAC,YAAY;YAiBN,kBAAkB;YAelB,iBAAiB;YAqCjB,YAAY;YA+CZ,qBAAqB;IAenC,OAAO,CAAC,YAAY;YAwBN,kBAAkB;IA6BhC,OAAO,CAAC,aAAa;IAkHrB,OAAO,CAAC,gBAAgB;IAuBxB,OAAO,CAAC,gBAAgB;IA2ExB,OAAO,CAAC,mBAAmB;IA2D3B,OAAO,CAAC,qBAAqB;IAoC7B,OAAO,CAAC,qBAAqB;IAkB7B,OAAO,CAAC,iBAAiB;IAczB,OAAO,CAAC,iBAAiB;IA0BzB,OAAO,CAAC,oBAAoB;IAwB5B,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,iBAAiB;IAWzB,OAAO,CAAC,aAAa;YAwBP,WAAW;IA8CzB,OAAO,CAAC,kBAAkB;YAmDZ,eAAe;IAyBhB,KAAK,IAAI,OAAO,CAAC,UAAU,CAAC;IA2I5B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAkD3B,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAS5B,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC;IAKpC,UAAU,IAAI,MAAM,EAAE;IAIhB,MAAM,CAAC,IAAI,GAAE,MAAM,GAAG,OAAO,GAAG,SAAkB,GAAG,OAAO,CAAC,MAAM,CAAC;IAuBjF,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,qBAAqB;IAmB7B,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,WAAW;CAOtB"}
|