@dimzxzzx07/mc-headless 2.1.0 → 2.2.0

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.
@@ -11,10 +11,7 @@ export declare class JavaChecker {
11
11
  static checkJava(): Promise<boolean>;
12
12
  static getSystemJavaPath(): string | null;
13
13
  static getSystemJavaVersion(): string | null;
14
- private static downloadWithCurl;
15
- private static downloadWithWget;
16
14
  private static downloadWithNode;
17
- private static downloadWithFallback;
18
15
  static getOrDownloadPortableJava(version: '17' | '21'): Promise<JavaInfo>;
19
16
  static ensureJava(serverVersion: string, usePortable?: boolean): Promise<JavaInfo>;
20
17
  static cleanupOldJava(): void;
@@ -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,MAAM,CAAwB;IAC7C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAA0C;IAE1E,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAS/B;WAEY,sBAAsB,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;WAUpD,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;WAenC,iBAAiB,IAAI,MAAM,GAAG,IAAI;WASlC,oBAAoB,IAAI,MAAM,GAAG,IAAI;mBAc9B,gBAAgB;mBA0BhB,gBAAgB;mBA0BhB,gBAAgB;mBAsDhB,oBAAoB;WAoBrB,yBAAyB,CAAC,OAAO,EAAE,IAAI,GAAG,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC;WAqElE,UAAU,CAAC,aAAa,EAAE,MAAM,EAAE,WAAW,GAAE,OAAc,GAAG,OAAO,CAAC,QAAQ,CAAC;WAyBvF,cAAc,IAAI,IAAI;CAkBvC"}
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,MAAM,CAAwB;IAC7C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAqC;IAGrE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAS/B;WAEY,sBAAsB,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;WAUpD,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;WAenC,iBAAiB,IAAI,MAAM,GAAG,IAAI;WASlC,oBAAoB,IAAI,MAAM,GAAG,IAAI;mBAc9B,gBAAgB;WAoFjB,yBAAyB,CAAC,OAAO,EAAE,IAAI,GAAG,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC;WAqElE,UAAU,CAAC,aAAa,EAAE,MAAM,EAAE,WAAW,GAAE,OAAc,GAAG,OAAO,CAAC,QAAQ,CAAC;WAyBvF,cAAc,IAAI,IAAI;CAkBvC"}
@@ -43,15 +43,16 @@ const tar = __importStar(require("tar"));
43
43
  const Logger_1 = require("../utils/Logger");
44
44
  class JavaChecker {
45
45
  static logger = Logger_1.Logger.getInstance();
46
- static JAVA_DIR = path.join('/tmp', '.mc-headless-java');
46
+ static JAVA_DIR = path.join(process.cwd(), '.java');
47
+ // Hanya pakai URL yang reliable dan direct download
47
48
  static JAVA_URLS = {
48
49
  '21': [
49
- 'https://download.oracle.com/java/21/latest/jdk-21_linux-x64_bin.tar.gz',
50
- 'https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.2%2B13/OpenJDK21U-jdk_x64_linux_hotspot_21.0.2_13.tar.gz'
50
+ 'https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.2%2B13/OpenJDK21U-jdk_x64_linux_hotspot_21.0.2_13.tar.gz',
51
+ 'https://corretto.aws/downloads/latest/amazon-corretto-21-x64-linux-jre.tar.gz'
51
52
  ],
52
53
  '17': [
53
- 'https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz',
54
- 'https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.10%2B7/OpenJDK17U-jdk_x64_linux_hotspot_17.0.10_7.tar.gz'
54
+ 'https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.10%2B7/OpenJDK17U-jdk_x64_linux_hotspot_17.0.10_7.tar.gz',
55
+ 'https://corretto.aws/downloads/latest/amazon-corretto-17-x64-linux-jre.tar.gz'
55
56
  ]
56
57
  };
57
58
  static getRequiredJavaVersion(serverVersion) {
@@ -105,56 +106,15 @@ class JavaChecker {
105
106
  return null;
106
107
  }
107
108
  }
108
- static async downloadWithCurl(url, destPath) {
109
- return new Promise((resolve, reject) => {
110
- this.logger.info(`Downloading with curl: ${url}`);
111
- const curl = (0, child_process_1.exec)(`curl -L -o "${destPath}" "${url}"`, (error) => {
112
- if (error) {
113
- reject(error);
114
- }
115
- else {
116
- resolve();
117
- }
118
- });
119
- if (curl.stdout) {
120
- curl.stdout.on('data', (data) => {
121
- process.stdout.write(data);
122
- });
123
- }
124
- if (curl.stderr) {
125
- curl.stderr.on('data', (data) => {
126
- process.stderr.write(data);
127
- });
128
- }
129
- });
130
- }
131
- static async downloadWithWget(url, destPath) {
132
- return new Promise((resolve, reject) => {
133
- this.logger.info(`Downloading with wget: ${url}`);
134
- const wget = (0, child_process_1.exec)(`wget -O "${destPath}" "${url}"`, (error) => {
135
- if (error) {
136
- reject(error);
137
- }
138
- else {
139
- resolve();
140
- }
141
- });
142
- if (wget.stdout) {
143
- wget.stdout.on('data', (data) => {
144
- process.stdout.write(data);
145
- });
146
- }
147
- if (wget.stderr) {
148
- wget.stderr.on('data', (data) => {
149
- process.stderr.write(data);
150
- });
151
- }
152
- });
153
- }
154
109
  static async downloadWithNode(url, destPath) {
155
110
  return new Promise((resolve, reject) => {
111
+ this.logger.info(`Downloading Java from ${url}`);
156
112
  const protocol = url.startsWith('https') ? https : http;
157
- const request = protocol.get(url, (response) => {
113
+ const request = protocol.get(url, {
114
+ headers: {
115
+ 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36'
116
+ }
117
+ }, (response) => {
158
118
  if (response.statusCode === 301 || response.statusCode === 302 || response.statusCode === 307 || response.statusCode === 308) {
159
119
  const location = response.headers.location;
160
120
  if (location) {
@@ -167,20 +127,35 @@ class JavaChecker {
167
127
  reject(new Error(`Download failed: ${response.statusCode}`));
168
128
  return;
169
129
  }
130
+ const contentType = response.headers['content-type'];
131
+ if (contentType && contentType.includes('text/html')) {
132
+ reject(new Error('Received HTML instead of binary - likely license redirect'));
133
+ return;
134
+ }
170
135
  const file = fs.createWriteStream(destPath);
171
136
  const totalSize = parseInt(response.headers['content-length'] || '0');
172
137
  let downloadedSize = 0;
138
+ let lastPercent = 0;
173
139
  response.on('data', (chunk) => {
174
140
  downloadedSize += chunk.length;
175
141
  if (totalSize > 0) {
176
142
  const percent = ((downloadedSize / totalSize) * 100).toFixed(1);
177
- process.stdout.write(`\rDownloading Java: ${percent}% (${(downloadedSize / 1024 / 1024).toFixed(1)} MB)`);
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
+ }
178
147
  }
179
148
  });
180
149
  response.pipe(file);
181
150
  file.on('finish', () => {
182
151
  process.stdout.write('\n');
183
152
  file.close();
153
+ const stats = fs.statSync(destPath);
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;
158
+ }
184
159
  resolve();
185
160
  });
186
161
  file.on('error', (err) => {
@@ -192,27 +167,14 @@ class JavaChecker {
192
167
  fs.unlink(destPath).catch(() => { });
193
168
  reject(err);
194
169
  });
170
+ request.setTimeout(300000, () => {
171
+ request.destroy();
172
+ fs.unlink(destPath).catch(() => { });
173
+ reject(new Error('Download timeout after 5 minutes'));
174
+ });
195
175
  request.end();
196
176
  });
197
177
  }
198
- static async downloadWithFallback(url, destPath) {
199
- const downloaders = [
200
- this.downloadWithCurl.bind(this),
201
- this.downloadWithWget.bind(this),
202
- this.downloadWithNode.bind(this)
203
- ];
204
- for (const downloader of downloaders) {
205
- try {
206
- await downloader(url, destPath);
207
- return;
208
- }
209
- catch (error) {
210
- const errorMessage = error instanceof Error ? error.message : String(error);
211
- this.logger.warning(`Download method failed: ${errorMessage}`);
212
- }
213
- }
214
- throw new Error('All download methods failed');
215
- }
216
178
  static async getOrDownloadPortableJava(version) {
217
179
  await fs.ensureDir(this.JAVA_DIR);
218
180
  const javaHome = path.join(this.JAVA_DIR, `jre-${version}`);
@@ -237,11 +199,11 @@ class JavaChecker {
237
199
  let lastError = null;
238
200
  for (let i = 0; i < urls.length; i++) {
239
201
  const url = urls[i];
240
- const tarPath = path.join(this.JAVA_DIR, `jre-${version}-${i}.tar.gz`);
202
+ const tarPath = path.join(this.JAVA_DIR, `jre-${version}-${Date.now()}.tar.gz`);
241
203
  try {
242
204
  this.logger.info(`Downloading portable Java ${version} (attempt ${i + 1}/${urls.length})...`);
243
205
  this.logger.info(`URL: ${url}`);
244
- await this.downloadWithFallback(url, tarPath);
206
+ await this.downloadWithNode(url, tarPath);
245
207
  this.logger.info(`Extracting Java ${version}...`);
246
208
  await fs.ensureDir(javaHome);
247
209
  await tar.extract({
@@ -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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dimzxzzx07/mc-headless",
3
- "version": "2.1.0",
3
+ "version": "2.2.0",
4
4
  "description": "Minecraft Headless Server Manager - Run Java/Bedrock/Crossplay servers easily via Node.js",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -35,17 +35,42 @@
35
35
  },
36
36
  "keywords": [
37
37
  "minecraft",
38
- "server",
38
+ "minecraft server",
39
+ "minecraft hosting",
39
40
  "paper",
41
+ "paperMC",
40
42
  "spigot",
41
43
  "forge",
42
44
  "fabric",
43
45
  "bedrock",
44
46
  "geyser",
47
+ "crossplay",
45
48
  "headless",
49
+ "server manager",
50
+ "pterodactyl",
46
51
  "termux",
47
- "automation"
52
+ "automation",
53
+ "minecraft automation",
54
+ "minecraft vps",
55
+ "minecloud",
56
+ "minecraft panel",
57
+ "minecraft api",
58
+ "viaversion",
59
+ "viabackwards",
60
+ "viarewind",
61
+ "skinrestorer",
62
+ "java portable",
63
+ "minecraft java",
64
+ "minecraft bedrock",
65
+ "minecraft crossplay",
66
+ "minecraft docker",
67
+ "minecraft container",
68
+ "minecraft server hosting",
69
+ "free minecraft server",
70
+ "minecraft server setup",
71
+ "minecraft server manager",
72
+ "minecraft control panel"
48
73
  ],
49
74
  "author": "Dimzxzzx07",
50
- "license": "UNLICENSED"
75
+ "license": "MIT"
51
76
  }
@@ -14,16 +14,17 @@ export interface JavaInfo {
14
14
 
15
15
  export class JavaChecker {
16
16
  private static logger = Logger.getInstance();
17
- private static readonly JAVA_DIR = path.join('/tmp', '.mc-headless-java');
17
+ private static readonly JAVA_DIR = path.join(process.cwd(), '.java');
18
18
 
19
+ // Hanya pakai URL yang reliable dan direct download
19
20
  private static readonly JAVA_URLS = {
20
21
  '21': [
21
- 'https://download.oracle.com/java/21/latest/jdk-21_linux-x64_bin.tar.gz',
22
- 'https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.2%2B13/OpenJDK21U-jdk_x64_linux_hotspot_21.0.2_13.tar.gz'
22
+ 'https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.2%2B13/OpenJDK21U-jdk_x64_linux_hotspot_21.0.2_13.tar.gz',
23
+ 'https://corretto.aws/downloads/latest/amazon-corretto-21-x64-linux-jre.tar.gz'
23
24
  ],
24
25
  '17': [
25
- 'https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz',
26
- 'https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.10%2B7/OpenJDK17U-jdk_x64_linux_hotspot_17.0.10_7.tar.gz'
26
+ 'https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.10%2B7/OpenJDK17U-jdk_x64_linux_hotspot_17.0.10_7.tar.gz',
27
+ 'https://corretto.aws/downloads/latest/amazon-corretto-17-x64-linux-jre.tar.gz'
27
28
  ]
28
29
  };
29
30
 
@@ -75,63 +76,17 @@ export class JavaChecker {
75
76
  }
76
77
  }
77
78
 
78
- private static async downloadWithCurl(url: string, destPath: string): Promise<void> {
79
- return new Promise((resolve, reject) => {
80
- this.logger.info(`Downloading with curl: ${url}`);
81
-
82
- const curl = exec(`curl -L -o "${destPath}" "${url}"`, (error) => {
83
- if (error) {
84
- reject(error);
85
- } else {
86
- resolve();
87
- }
88
- });
89
-
90
- if (curl.stdout) {
91
- curl.stdout.on('data', (data) => {
92
- process.stdout.write(data);
93
- });
94
- }
95
-
96
- if (curl.stderr) {
97
- curl.stderr.on('data', (data) => {
98
- process.stderr.write(data);
99
- });
100
- }
101
- });
102
- }
103
-
104
- private static async downloadWithWget(url: string, destPath: string): Promise<void> {
105
- return new Promise((resolve, reject) => {
106
- this.logger.info(`Downloading with wget: ${url}`);
107
-
108
- const wget = exec(`wget -O "${destPath}" "${url}"`, (error) => {
109
- if (error) {
110
- reject(error);
111
- } else {
112
- resolve();
113
- }
114
- });
115
-
116
- if (wget.stdout) {
117
- wget.stdout.on('data', (data) => {
118
- process.stdout.write(data);
119
- });
120
- }
121
-
122
- if (wget.stderr) {
123
- wget.stderr.on('data', (data) => {
124
- process.stderr.write(data);
125
- });
126
- }
127
- });
128
- }
129
-
130
79
  private static async downloadWithNode(url: string, destPath: string): Promise<void> {
131
80
  return new Promise((resolve, reject) => {
81
+ this.logger.info(`Downloading Java from ${url}`);
82
+
132
83
  const protocol = url.startsWith('https') ? https : http;
133
84
 
134
- const request = protocol.get(url, (response) => {
85
+ const request = protocol.get(url, {
86
+ headers: {
87
+ 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36'
88
+ }
89
+ }, (response) => {
135
90
  if (response.statusCode === 301 || response.statusCode === 302 || response.statusCode === 307 || response.statusCode === 308) {
136
91
  const location = response.headers.location;
137
92
  if (location) {
@@ -146,15 +101,25 @@ export class JavaChecker {
146
101
  return;
147
102
  }
148
103
 
104
+ const contentType = response.headers['content-type'];
105
+ if (contentType && contentType.includes('text/html')) {
106
+ reject(new Error('Received HTML instead of binary - likely license redirect'));
107
+ return;
108
+ }
109
+
149
110
  const file = fs.createWriteStream(destPath);
150
111
  const totalSize = parseInt(response.headers['content-length'] || '0');
151
112
  let downloadedSize = 0;
113
+ let lastPercent = 0;
152
114
 
153
115
  response.on('data', (chunk) => {
154
116
  downloadedSize += chunk.length;
155
117
  if (totalSize > 0) {
156
118
  const percent = ((downloadedSize / totalSize) * 100).toFixed(1);
157
- process.stdout.write(`\rDownloading Java: ${percent}% (${(downloadedSize / 1024 / 1024).toFixed(1)} MB)`);
119
+ if (parseFloat(percent) >= lastPercent + 5 || parseFloat(percent) >= 100) {
120
+ lastPercent = parseFloat(percent);
121
+ process.stdout.write(`\rDownloading Java: ${percent}% (${(downloadedSize / 1024 / 1024).toFixed(1)} MB)`);
122
+ }
158
123
  }
159
124
  });
160
125
 
@@ -163,6 +128,14 @@ export class JavaChecker {
163
128
  file.on('finish', () => {
164
129
  process.stdout.write('\n');
165
130
  file.close();
131
+
132
+ const stats = fs.statSync(destPath);
133
+ if (stats.size < 1000000) {
134
+ fs.unlinkSync(destPath);
135
+ reject(new Error(`Downloaded file too small: ${stats.size} bytes - possibly HTML page`));
136
+ return;
137
+ }
138
+
166
139
  resolve();
167
140
  });
168
141
 
@@ -177,30 +150,16 @@ export class JavaChecker {
177
150
  reject(err);
178
151
  });
179
152
 
153
+ request.setTimeout(300000, () => {
154
+ request.destroy();
155
+ fs.unlink(destPath).catch(() => {});
156
+ reject(new Error('Download timeout after 5 minutes'));
157
+ });
158
+
180
159
  request.end();
181
160
  });
182
161
  }
183
162
 
184
- private static async downloadWithFallback(url: string, destPath: string): Promise<void> {
185
- const downloaders = [
186
- this.downloadWithCurl.bind(this),
187
- this.downloadWithWget.bind(this),
188
- this.downloadWithNode.bind(this)
189
- ];
190
-
191
- for (const downloader of downloaders) {
192
- try {
193
- await downloader(url, destPath);
194
- return;
195
- } catch (error) {
196
- const errorMessage = error instanceof Error ? error.message : String(error);
197
- this.logger.warning(`Download method failed: ${errorMessage}`);
198
- }
199
- }
200
-
201
- throw new Error('All download methods failed');
202
- }
203
-
204
163
  public static async getOrDownloadPortableJava(version: '17' | '21'): Promise<JavaInfo> {
205
164
  await fs.ensureDir(this.JAVA_DIR);
206
165
 
@@ -229,13 +188,13 @@ export class JavaChecker {
229
188
 
230
189
  for (let i = 0; i < urls.length; i++) {
231
190
  const url = urls[i];
232
- const tarPath = path.join(this.JAVA_DIR, `jre-${version}-${i}.tar.gz`);
191
+ const tarPath = path.join(this.JAVA_DIR, `jre-${version}-${Date.now()}.tar.gz`);
233
192
 
234
193
  try {
235
194
  this.logger.info(`Downloading portable Java ${version} (attempt ${i + 1}/${urls.length})...`);
236
195
  this.logger.info(`URL: ${url}`);
237
196
 
238
- await this.downloadWithFallback(url, tarPath);
197
+ await this.downloadWithNode(url, tarPath);
239
198
 
240
199
  this.logger.info(`Extracting Java ${version}...`);
241
200
  await fs.ensureDir(javaHome);