@dimzxzzx07/mc-headless 1.7.0 → 1.8.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.
- package/dist/core/JavaChecker.d.ts +2 -2
- package/dist/core/JavaChecker.d.ts.map +1 -1
- package/dist/core/JavaChecker.js +63 -21
- package/dist/core/JavaChecker.js.map +1 -1
- package/dist/core/MinecraftServer.d.ts +46 -0
- package/dist/core/MinecraftServer.d.ts.map +1 -1
- package/dist/core/MinecraftServer.js +599 -7
- package/dist/core/MinecraftServer.js.map +1 -1
- package/package.json +1 -1
- package/src/core/JavaChecker.ts +59 -24
- package/src/core/MinecraftServer.ts +685 -8
- package/src/scripts/install-java.sh +97 -32
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export declare class JavaChecker {
|
|
2
2
|
private static logger;
|
|
3
3
|
static checkJava(): Promise<boolean>;
|
|
4
|
-
static ensureJava(): Promise<void>;
|
|
5
4
|
static getJavaVersion(): string | null;
|
|
6
|
-
static
|
|
5
|
+
static ensureJava(version?: '17' | '21' | 'auto'): Promise<void>;
|
|
6
|
+
static installJava(version?: '17' | '21' | 'auto'): Promise<void>;
|
|
7
7
|
}
|
|
8
8
|
//# sourceMappingURL=JavaChecker.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JavaChecker.d.ts","sourceRoot":"","sources":["../../src/core/JavaChecker.ts"],"names":[],"mappings":"AAIA,qBAAa,WAAW;IACpB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAwB;WAE/B,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"JavaChecker.d.ts","sourceRoot":"","sources":["../../src/core/JavaChecker.ts"],"names":[],"mappings":"AAIA,qBAAa,WAAW;IACpB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAwB;WAE/B,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;WAc7B,cAAc,IAAI,MAAM,GAAG,IAAI;WAczB,UAAU,CAAC,OAAO,GAAE,IAAI,GAAG,IAAI,GAAG,MAAe,GAAG,OAAO,CAAC,IAAI,CAAC;WAqBjE,WAAW,CAAC,OAAO,GAAE,IAAI,GAAG,IAAI,GAAG,MAAe,GAAG,OAAO,CAAC,IAAI,CAAC;CAiDzF"}
|
package/dist/core/JavaChecker.js
CHANGED
|
@@ -20,20 +20,17 @@ class JavaChecker {
|
|
|
20
20
|
});
|
|
21
21
|
});
|
|
22
22
|
}
|
|
23
|
-
static async ensureJava() {
|
|
24
|
-
const hasJava = await this.checkJava();
|
|
25
|
-
if (!hasJava) {
|
|
26
|
-
this.logger.warning('Java not found. Attempting to install...');
|
|
27
|
-
await this.installJava();
|
|
28
|
-
}
|
|
29
|
-
const version = this.getJavaVersion();
|
|
30
|
-
if (version) {
|
|
31
|
-
this.logger.success(`Java version: ${version}`);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
23
|
static getJavaVersion() {
|
|
35
24
|
try {
|
|
36
25
|
const output = (0, child_process_1.execSync)('java -version 2>&1').toString();
|
|
26
|
+
if (output.includes('version "21'))
|
|
27
|
+
return '21';
|
|
28
|
+
if (output.includes('version "17'))
|
|
29
|
+
return '17';
|
|
30
|
+
if (output.includes('version "11'))
|
|
31
|
+
return '11';
|
|
32
|
+
if (output.includes('version "1.8'))
|
|
33
|
+
return '8';
|
|
37
34
|
const match = output.match(/version "([^"]+)"/);
|
|
38
35
|
return match ? match[1] : null;
|
|
39
36
|
}
|
|
@@ -41,9 +38,54 @@ class JavaChecker {
|
|
|
41
38
|
return null;
|
|
42
39
|
}
|
|
43
40
|
}
|
|
44
|
-
static async
|
|
45
|
-
const
|
|
46
|
-
|
|
41
|
+
static async ensureJava(version = 'auto') {
|
|
42
|
+
const hasJava = await this.checkJava();
|
|
43
|
+
if (!hasJava) {
|
|
44
|
+
this.logger.warning('Java not found. Attempting to install...');
|
|
45
|
+
await this.installJava(version);
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
const currentVersion = this.getJavaVersion();
|
|
49
|
+
this.logger.info(`Detected Java version: ${currentVersion}`);
|
|
50
|
+
if (version !== 'auto' && currentVersion !== version) {
|
|
51
|
+
this.logger.warning(`This server recommends Java ${version} but found ${currentVersion}. This may cause issues.`);
|
|
52
|
+
}
|
|
53
|
+
if (currentVersion === '8' || currentVersion === '11') {
|
|
54
|
+
this.logger.warning(`Java ${currentVersion} is outdated. Minecraft 1.21+ works best with Java 17 or 21.`);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
static async installJava(version = 'auto') {
|
|
58
|
+
const osType = SystemDetector_1.SystemDetector.getOS();
|
|
59
|
+
const distro = SystemDetector_1.SystemDetector.getDistro();
|
|
60
|
+
const targetVersion = version === 'auto' ? '17' : version;
|
|
61
|
+
let command = '';
|
|
62
|
+
const javaPackage = targetVersion === '21' ? 'openjdk-21-jre-headless' : 'openjdk-17-jre-headless';
|
|
63
|
+
if (osType === 'linux' || osType === 'android') {
|
|
64
|
+
if (distro === 'ubuntu' || distro === 'debian') {
|
|
65
|
+
command = `apt update && apt install -y ${javaPackage}`;
|
|
66
|
+
}
|
|
67
|
+
else if (distro === 'centos' || distro === 'fedora') {
|
|
68
|
+
command = `yum install -y java-${targetVersion}-openjdk-headless`;
|
|
69
|
+
}
|
|
70
|
+
else if (distro === 'arch') {
|
|
71
|
+
const archPackage = targetVersion === '21' ? 'jre21-openjdk-headless' : 'jre17-openjdk-headless';
|
|
72
|
+
command = `pacman -S --noconfirm ${archPackage}`;
|
|
73
|
+
}
|
|
74
|
+
else if (distro === 'termux') {
|
|
75
|
+
command = 'pkg install -y openjdk-17';
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
command = `curl -s https://raw.githubusercontent.com/Dimzxzzx07/mc-headless/main/scripts/install-java.sh | bash -s ${targetVersion}`;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
else if (osType === 'darwin') {
|
|
82
|
+
command = `brew install openjdk@${targetVersion}`;
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
this.logger.error('Automatic Java installation not supported on this OS');
|
|
86
|
+
throw new Error('Java not installed');
|
|
87
|
+
}
|
|
88
|
+
this.logger.info(`Installing Java ${targetVersion} with: ${command}`);
|
|
47
89
|
return new Promise((resolve, reject) => {
|
|
48
90
|
const child = (0, child_process_1.exec)(command, (error) => {
|
|
49
91
|
if (error) {
|
|
@@ -51,16 +93,16 @@ class JavaChecker {
|
|
|
51
93
|
reject(error);
|
|
52
94
|
}
|
|
53
95
|
else {
|
|
54
|
-
this.logger.success(
|
|
96
|
+
this.logger.success(`Java ${targetVersion} installed successfully`);
|
|
55
97
|
resolve();
|
|
56
98
|
}
|
|
57
99
|
});
|
|
58
|
-
child.stdout
|
|
59
|
-
|
|
60
|
-
}
|
|
61
|
-
child.stderr
|
|
62
|
-
|
|
63
|
-
}
|
|
100
|
+
if (child.stdout) {
|
|
101
|
+
child.stdout.pipe(process.stdout);
|
|
102
|
+
}
|
|
103
|
+
if (child.stderr) {
|
|
104
|
+
child.stderr.pipe(process.stderr);
|
|
105
|
+
}
|
|
64
106
|
});
|
|
65
107
|
}
|
|
66
108
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JavaChecker.js","sourceRoot":"","sources":["../../src/core/JavaChecker.ts"],"names":[],"mappings":";;;AAAA,iDAA+C;AAC/C,4CAAyC;AACzC,4DAAyD;AAEzD,MAAa,WAAW;IACZ,MAAM,CAAC,MAAM,GAAG,eAAM,CAAC,WAAW,EAAE,CAAC;IAEtC,MAAM,CAAC,SAAS;QACnB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC3B,IAAA,oBAAI,EAAC,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC5B,IAAI,KAAK,EAAE,CAAC;oBACR,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;oBAC7C,OAAO,CAAC,KAAK,CAAC,CAAC;gBACnB,CAAC;qBAAM,CAAC;oBACJ,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;oBACzC,OAAO,CAAC,IAAI,CAAC,CAAC;gBAClB,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,UAAU;
|
|
1
|
+
{"version":3,"file":"JavaChecker.js","sourceRoot":"","sources":["../../src/core/JavaChecker.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,25 @@ export interface MinecraftServerOptions extends Partial<MinecraftConfig> {
|
|
|
5
5
|
enableViaBackwards?: boolean;
|
|
6
6
|
enableViaRewind?: boolean;
|
|
7
7
|
enableProtocolSupport?: boolean;
|
|
8
|
+
customJavaArgs?: string[];
|
|
9
|
+
javaVersion?: '17' | '21' | 'auto';
|
|
10
|
+
memoryMonitor?: {
|
|
11
|
+
enabled: boolean;
|
|
12
|
+
threshold: number;
|
|
13
|
+
interval: number;
|
|
14
|
+
action: 'restart' | 'warn' | 'stop';
|
|
15
|
+
};
|
|
16
|
+
autoInstallJava?: boolean;
|
|
17
|
+
networkOptimization?: {
|
|
18
|
+
tcpFastOpen: boolean;
|
|
19
|
+
bungeeMode: boolean;
|
|
20
|
+
proxyProtocol: boolean;
|
|
21
|
+
};
|
|
22
|
+
owners?: string[];
|
|
23
|
+
ownerCommands?: {
|
|
24
|
+
prefix: string;
|
|
25
|
+
enabled: boolean;
|
|
26
|
+
};
|
|
8
27
|
}
|
|
9
28
|
export declare class MinecraftServer extends EventEmitter {
|
|
10
29
|
private config;
|
|
@@ -18,9 +37,36 @@ export declare class MinecraftServer extends EventEmitter {
|
|
|
18
37
|
private players;
|
|
19
38
|
private backupCron;
|
|
20
39
|
private startTime;
|
|
40
|
+
private memoryMonitorInterval;
|
|
41
|
+
private memoryUsageHistory;
|
|
42
|
+
private worldSize;
|
|
43
|
+
private playerCount;
|
|
44
|
+
private javaCommand;
|
|
45
|
+
private owners;
|
|
46
|
+
private ownerCommandPrefix;
|
|
21
47
|
constructor(userConfig?: MinecraftServerOptions);
|
|
22
48
|
private createEngine;
|
|
49
|
+
private detectJavaVersion;
|
|
50
|
+
private ensureJava;
|
|
51
|
+
private installJavaLinux;
|
|
52
|
+
private installJavaMac;
|
|
53
|
+
private calculateWorldSize;
|
|
54
|
+
private buildJavaArgs;
|
|
55
|
+
private processOwnerCommand;
|
|
56
|
+
private handleGamemodeCommand;
|
|
57
|
+
private handleTeleportCommand;
|
|
58
|
+
private handleGiveCommand;
|
|
59
|
+
private handleTimeCommand;
|
|
60
|
+
private handleWeatherCommand;
|
|
61
|
+
private handleKillCommand;
|
|
62
|
+
private handleBanCommand;
|
|
63
|
+
private handleKickCommand;
|
|
64
|
+
private handleOpCommand;
|
|
65
|
+
private handleDeopCommand;
|
|
66
|
+
private sendOwnerHelp;
|
|
23
67
|
start(): Promise<ServerInfo>;
|
|
68
|
+
private startMemoryMonitor;
|
|
69
|
+
private gracefulRestart;
|
|
24
70
|
stop(): Promise<void>;
|
|
25
71
|
sendCommand(command: string): void;
|
|
26
72
|
getInfo(): Promise<ServerInfo>;
|
|
@@ -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;AAItC,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"MinecraftServer.d.ts","sourceRoot":"","sources":["../../src/core/MinecraftServer.ts"],"names":[],"mappings":"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"}
|