@dimzxzzx07/mc-headless 1.0.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.
Files changed (100) hide show
  1. package/README.md +0 -0
  2. package/dist/core/ConfigHandler.d.ts +12 -0
  3. package/dist/core/ConfigHandler.d.ts.map +1 -0
  4. package/dist/core/ConfigHandler.js +118 -0
  5. package/dist/core/ConfigHandler.js.map +1 -0
  6. package/dist/core/JavaChecker.d.ts +8 -0
  7. package/dist/core/JavaChecker.d.ts.map +1 -0
  8. package/dist/core/JavaChecker.js +68 -0
  9. package/dist/core/JavaChecker.js.map +1 -0
  10. package/dist/core/MinecraftServer.d.ts +28 -0
  11. package/dist/core/MinecraftServer.d.ts.map +1 -0
  12. package/dist/core/MinecraftServer.js +312 -0
  13. package/dist/core/MinecraftServer.js.map +1 -0
  14. package/dist/core/ServerManager.d.ts +30 -0
  15. package/dist/core/ServerManager.d.ts.map +1 -0
  16. package/dist/core/ServerManager.js +203 -0
  17. package/dist/core/ServerManager.js.map +1 -0
  18. package/dist/engines/Downloader.d.ts +16 -0
  19. package/dist/engines/Downloader.d.ts.map +1 -0
  20. package/dist/engines/Downloader.js +159 -0
  21. package/dist/engines/Downloader.js.map +1 -0
  22. package/dist/engines/FabricEngine.d.ts +11 -0
  23. package/dist/engines/FabricEngine.d.ts.map +1 -0
  24. package/dist/engines/FabricEngine.js +70 -0
  25. package/dist/engines/FabricEngine.js.map +1 -0
  26. package/dist/engines/ForgeEngine.d.ts +11 -0
  27. package/dist/engines/ForgeEngine.d.ts.map +1 -0
  28. package/dist/engines/ForgeEngine.js +84 -0
  29. package/dist/engines/ForgeEngine.js.map +1 -0
  30. package/dist/engines/PaperEngine.d.ts +11 -0
  31. package/dist/engines/PaperEngine.d.ts.map +1 -0
  32. package/dist/engines/PaperEngine.js +88 -0
  33. package/dist/engines/PaperEngine.js.map +1 -0
  34. package/dist/engines/ServerEngine.d.ts +10 -0
  35. package/dist/engines/ServerEngine.d.ts.map +1 -0
  36. package/dist/engines/ServerEngine.js +3 -0
  37. package/dist/engines/ServerEngine.js.map +1 -0
  38. package/dist/engines/VanillaEngine.d.ts +11 -0
  39. package/dist/engines/VanillaEngine.d.ts.map +1 -0
  40. package/dist/engines/VanillaEngine.js +70 -0
  41. package/dist/engines/VanillaEngine.js.map +1 -0
  42. package/dist/index.d.ts +20 -0
  43. package/dist/index.d.ts.map +1 -0
  44. package/dist/index.js +89 -0
  45. package/dist/index.js.map +1 -0
  46. package/dist/platforms/BedrockServer.d.ts +30 -0
  47. package/dist/platforms/BedrockServer.d.ts.map +1 -0
  48. package/dist/platforms/BedrockServer.js +301 -0
  49. package/dist/platforms/BedrockServer.js.map +1 -0
  50. package/dist/platforms/GeyserBridge.d.ts +9 -0
  51. package/dist/platforms/GeyserBridge.d.ts.map +1 -0
  52. package/dist/platforms/GeyserBridge.js +98 -0
  53. package/dist/platforms/GeyserBridge.js.map +1 -0
  54. package/dist/platforms/JavaServer.d.ts +27 -0
  55. package/dist/platforms/JavaServer.d.ts.map +1 -0
  56. package/dist/platforms/JavaServer.js +237 -0
  57. package/dist/platforms/JavaServer.js.map +1 -0
  58. package/dist/types/index.d.ts +80 -0
  59. package/dist/types/index.d.ts.map +1 -0
  60. package/dist/types/index.js +3 -0
  61. package/dist/types/index.js.map +1 -0
  62. package/dist/utils/FileUtils.d.ts +20 -0
  63. package/dist/utils/FileUtils.d.ts.map +1 -0
  64. package/dist/utils/FileUtils.js +172 -0
  65. package/dist/utils/FileUtils.js.map +1 -0
  66. package/dist/utils/Logger.d.ts +26 -0
  67. package/dist/utils/Logger.d.ts.map +1 -0
  68. package/dist/utils/Logger.js +91 -0
  69. package/dist/utils/Logger.js.map +1 -0
  70. package/dist/utils/PropertiesParser.d.ts +7 -0
  71. package/dist/utils/PropertiesParser.d.ts.map +1 -0
  72. package/dist/utils/PropertiesParser.js +124 -0
  73. package/dist/utils/PropertiesParser.js.map +1 -0
  74. package/dist/utils/SystemDetector.d.ts +14 -0
  75. package/dist/utils/SystemDetector.d.ts.map +1 -0
  76. package/dist/utils/SystemDetector.js +152 -0
  77. package/dist/utils/SystemDetector.js.map +1 -0
  78. package/package.json +51 -0
  79. package/src/core/ConfigHandler.ts +136 -0
  80. package/src/core/JavaChecker.ts +71 -0
  81. package/src/core/MinecraftServer.ts +326 -0
  82. package/src/core/ServerManager.ts +196 -0
  83. package/src/engines/Downloader.ts +144 -0
  84. package/src/engines/FabricEngine.ts +49 -0
  85. package/src/engines/ForgeEngine.ts +65 -0
  86. package/src/engines/PaperEngine.ts +68 -0
  87. package/src/engines/ServerEngine.ts +10 -0
  88. package/src/engines/VanillaEngine.ts +49 -0
  89. package/src/index.ts +83 -0
  90. package/src/platforms/BedrockServer.ts +311 -0
  91. package/src/platforms/GeyserBridge.ts +83 -0
  92. package/src/platforms/JavaServer.ts +241 -0
  93. package/src/scripts/detect-os.sh +56 -0
  94. package/src/scripts/install-java.sh +38 -0
  95. package/src/types/index.ts +89 -0
  96. package/src/utils/FileUtils.ts +162 -0
  97. package/src/utils/Logger.ts +97 -0
  98. package/src/utils/PropertiesParser.ts +126 -0
  99. package/src/utils/SystemDetector.ts +127 -0
  100. package/tsconfig.json +23 -0
@@ -0,0 +1,172 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.FileUtils = void 0;
37
+ const fs = __importStar(require("fs-extra"));
38
+ const path = __importStar(require("path"));
39
+ const tar = __importStar(require("tar"));
40
+ const AdmZip = require('adm-zip');
41
+ const Logger_1 = require("./Logger");
42
+ class FileUtils {
43
+ static logger = Logger_1.Logger.getInstance();
44
+ static async ensureDir(dir) {
45
+ await fs.ensureDir(dir);
46
+ }
47
+ static async writeFile(filePath, data) {
48
+ await fs.ensureDir(path.dirname(filePath));
49
+ await fs.writeFile(filePath, data);
50
+ }
51
+ static async readFile(filePath) {
52
+ return fs.readFile(filePath);
53
+ }
54
+ static async fileExists(filePath) {
55
+ return fs.pathExists(filePath);
56
+ }
57
+ static async deleteFile(filePath) {
58
+ if (await fs.pathExists(filePath)) {
59
+ await fs.remove(filePath);
60
+ }
61
+ }
62
+ static async deleteFolder(folderPath) {
63
+ if (await fs.pathExists(folderPath)) {
64
+ await fs.remove(folderPath);
65
+ }
66
+ }
67
+ static async copyFile(source, destination) {
68
+ await fs.ensureDir(path.dirname(destination));
69
+ await fs.copy(source, destination);
70
+ }
71
+ static async moveFile(source, destination) {
72
+ await fs.ensureDir(path.dirname(destination));
73
+ await fs.move(source, destination, { overwrite: true });
74
+ }
75
+ static async listFiles(dir, pattern) {
76
+ if (!await fs.pathExists(dir)) {
77
+ return [];
78
+ }
79
+ const files = await fs.readdir(dir);
80
+ if (pattern) {
81
+ return files.filter(f => pattern.test(f));
82
+ }
83
+ return files;
84
+ }
85
+ static async getFileSize(filePath) {
86
+ const stat = await fs.stat(filePath);
87
+ return stat.size;
88
+ }
89
+ static async extractZip(zipPath, destPath) {
90
+ this.logger.debug(`Extracting ${zipPath} to ${destPath}`);
91
+ try {
92
+ const zip = new AdmZip(zipPath);
93
+ zip.extractAllTo(destPath, true);
94
+ this.logger.debug('Extraction complete');
95
+ }
96
+ catch (error) {
97
+ this.logger.error('Failed to extract zip:', error);
98
+ throw error;
99
+ }
100
+ }
101
+ static async extractTar(tarPath, destPath) {
102
+ this.logger.debug(`Extracting ${tarPath} to ${destPath}`);
103
+ try {
104
+ await tar.extract({
105
+ file: tarPath,
106
+ cwd: destPath
107
+ });
108
+ this.logger.debug('Extraction complete');
109
+ }
110
+ catch (error) {
111
+ this.logger.error('Failed to extract tar:', error);
112
+ throw error;
113
+ }
114
+ }
115
+ static async createBackup(sourcePath, backupPath) {
116
+ this.logger.info(`Creating backup of ${sourcePath} to ${backupPath}`);
117
+ await fs.ensureDir(path.dirname(backupPath));
118
+ if (await fs.pathExists(sourcePath)) {
119
+ await fs.copy(sourcePath, backupPath);
120
+ const size = await this.getFileSize(backupPath);
121
+ this.logger.success(`Backup created: ${backupPath} (${size} bytes)`);
122
+ }
123
+ else {
124
+ this.logger.warning(`Source path not found: ${sourcePath}`);
125
+ }
126
+ }
127
+ static async writeProperties(filePath, properties) {
128
+ const lines = [];
129
+ for (const [key, value] of Object.entries(properties)) {
130
+ if (value !== undefined && value !== null) {
131
+ lines.push(`${key}=${value}`);
132
+ }
133
+ }
134
+ await this.writeFile(filePath, lines.join('\n'));
135
+ this.logger.debug(`Properties written to ${filePath}`);
136
+ }
137
+ static async readProperties(filePath) {
138
+ if (!await this.fileExists(filePath)) {
139
+ return {};
140
+ }
141
+ const content = await fs.readFile(filePath, 'utf8');
142
+ const properties = {};
143
+ for (const line of content.split('\n')) {
144
+ const trimmed = line.trim();
145
+ if (trimmed && !trimmed.startsWith('#')) {
146
+ const eq = trimmed.indexOf('=');
147
+ if (eq > 0) {
148
+ const key = trimmed.substring(0, eq).trim();
149
+ const value = trimmed.substring(eq + 1).trim();
150
+ properties[key] = value;
151
+ }
152
+ }
153
+ }
154
+ return properties;
155
+ }
156
+ static async ensureServerStructure(config) {
157
+ const folders = [
158
+ config.folders.addons,
159
+ config.folders.mods,
160
+ config.folders.plugins,
161
+ config.folders.world,
162
+ path.join(process.cwd(), 'logs'),
163
+ path.join(process.cwd(), 'backups')
164
+ ];
165
+ for (const folder of folders) {
166
+ await this.ensureDir(folder);
167
+ }
168
+ this.logger.debug('Server structure created');
169
+ }
170
+ }
171
+ exports.FileUtils = FileUtils;
172
+ //# sourceMappingURL=FileUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileUtils.js","sourceRoot":"","sources":["../../src/utils/FileUtils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ export declare enum LogLevel {
2
+ DEBUG = 0,
3
+ INFO = 1,
4
+ SUCCESS = 2,
5
+ WARNING = 3,
6
+ ERROR = 4,
7
+ NONE = 5
8
+ }
9
+ export declare class Logger {
10
+ private static instance;
11
+ private logLevel;
12
+ private logFile;
13
+ private fs;
14
+ private constructor();
15
+ static getInstance(): Logger;
16
+ setLogLevel(level: LogLevel): void;
17
+ setLogFile(filePath: string): void;
18
+ private log;
19
+ debug(message: string, ...args: any[]): void;
20
+ info(message: string, ...args: any[]): void;
21
+ success(message: string, ...args: any[]): void;
22
+ warning(message: string, ...args: any[]): void;
23
+ error(message: string, ...args: any[]): void;
24
+ banner(): void;
25
+ }
26
+ //# sourceMappingURL=Logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Logger.d.ts","sourceRoot":"","sources":["../../src/utils/Logger.ts"],"names":[],"mappings":"AAEA,oBAAY,QAAQ;IAChB,KAAK,IAAI;IACT,IAAI,IAAI;IACR,OAAO,IAAI;IACX,OAAO,IAAI;IACX,KAAK,IAAI;IACT,IAAI,IAAI;CACX;AAED,qBAAa,MAAM;IACf,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAS;IAChC,OAAO,CAAC,QAAQ,CAA2B;IAC3C,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,EAAE,CAAM;IAEhB,OAAO;WAMO,WAAW,IAAI,MAAM;IAO5B,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAIlC,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAIzC,OAAO,CAAC,GAAG;IAiCJ,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAI5C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAI3C,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAI9C,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAI9C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;IAI5C,MAAM,IAAI,IAAI;CAKxB"}
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Logger = exports.LogLevel = void 0;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ var LogLevel;
9
+ (function (LogLevel) {
10
+ LogLevel[LogLevel["DEBUG"] = 0] = "DEBUG";
11
+ LogLevel[LogLevel["INFO"] = 1] = "INFO";
12
+ LogLevel[LogLevel["SUCCESS"] = 2] = "SUCCESS";
13
+ LogLevel[LogLevel["WARNING"] = 3] = "WARNING";
14
+ LogLevel[LogLevel["ERROR"] = 4] = "ERROR";
15
+ LogLevel[LogLevel["NONE"] = 5] = "NONE";
16
+ })(LogLevel || (exports.LogLevel = LogLevel = {}));
17
+ class Logger {
18
+ static instance;
19
+ logLevel = LogLevel.INFO;
20
+ logFile = null;
21
+ fs;
22
+ constructor() {
23
+ try {
24
+ this.fs = require('fs-extra');
25
+ }
26
+ catch { }
27
+ }
28
+ static getInstance() {
29
+ if (!Logger.instance) {
30
+ Logger.instance = new Logger();
31
+ }
32
+ return Logger.instance;
33
+ }
34
+ setLogLevel(level) {
35
+ this.logLevel = level;
36
+ }
37
+ setLogFile(filePath) {
38
+ this.logFile = filePath;
39
+ }
40
+ log(level, message, ...args) {
41
+ if (level < this.logLevel)
42
+ return;
43
+ const timestamp = new Date().toISOString();
44
+ const levelName = LogLevel[level];
45
+ let coloredMessage = '';
46
+ switch (level) {
47
+ case LogLevel.DEBUG:
48
+ coloredMessage = chalk_1.default.gray(`[${timestamp}] [${levelName}] ${message}`);
49
+ break;
50
+ case LogLevel.INFO:
51
+ coloredMessage = chalk_1.default.cyan(`[${timestamp}] [${levelName}] ${message}`);
52
+ break;
53
+ case LogLevel.SUCCESS:
54
+ coloredMessage = chalk_1.default.green(`[${timestamp}] [${levelName}] ${message}`);
55
+ break;
56
+ case LogLevel.WARNING:
57
+ coloredMessage = chalk_1.default.yellow(`[${timestamp}] [${levelName}] ${message}`);
58
+ break;
59
+ case LogLevel.ERROR:
60
+ coloredMessage = chalk_1.default.red(`[${timestamp}] [${levelName}] ${message}`);
61
+ break;
62
+ }
63
+ console.log(coloredMessage, ...args);
64
+ if (this.logFile && this.fs) {
65
+ const logMessage = `[${timestamp}] [${levelName}] ${message} ${args.map(a => JSON.stringify(a)).join(' ')}\n`;
66
+ this.fs.appendFileSync(this.logFile, logMessage);
67
+ }
68
+ }
69
+ debug(message, ...args) {
70
+ this.log(LogLevel.DEBUG, message, ...args);
71
+ }
72
+ info(message, ...args) {
73
+ this.log(LogLevel.INFO, message, ...args);
74
+ }
75
+ success(message, ...args) {
76
+ this.log(LogLevel.SUCCESS, message, ...args);
77
+ }
78
+ warning(message, ...args) {
79
+ this.log(LogLevel.WARNING, message, ...args);
80
+ }
81
+ error(message, ...args) {
82
+ this.log(LogLevel.ERROR, message, ...args);
83
+ }
84
+ banner() {
85
+ console.log(chalk_1.default.cyan(`
86
+ Mc Headless - Powered By Dimzxzzx07
87
+ `));
88
+ }
89
+ }
90
+ exports.Logger = Logger;
91
+ //# sourceMappingURL=Logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Logger.js","sourceRoot":"","sources":["../../src/utils/Logger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export declare class PropertiesParser {
2
+ static parse(content: string): Record<string, string>;
3
+ static stringify(properties: Record<string, any>): string;
4
+ static generateServerProperties(config: any): Record<string, any>;
5
+ static generateBedrockProperties(config: any): Record<string, any>;
6
+ }
7
+ //# sourceMappingURL=PropertiesParser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PropertiesParser.d.ts","sourceRoot":"","sources":["../../src/utils/PropertiesParser.ts"],"names":[],"mappings":"AAAA,qBAAa,gBAAgB;WACX,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;WAmB9C,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM;WAYlD,wBAAwB,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;WA8D1D,yBAAyB,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CA+B5E"}
@@ -0,0 +1,124 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PropertiesParser = void 0;
4
+ class PropertiesParser {
5
+ static parse(content) {
6
+ const properties = {};
7
+ const lines = content.split('\n');
8
+ for (const line of lines) {
9
+ const trimmed = line.trim();
10
+ if (trimmed && !trimmed.startsWith('#')) {
11
+ const eqIndex = trimmed.indexOf('=');
12
+ if (eqIndex > 0) {
13
+ const key = trimmed.substring(0, eqIndex).trim();
14
+ const value = trimmed.substring(eqIndex + 1).trim();
15
+ properties[key] = value;
16
+ }
17
+ }
18
+ }
19
+ return properties;
20
+ }
21
+ static stringify(properties) {
22
+ const lines = [];
23
+ for (const [key, value] of Object.entries(properties)) {
24
+ if (value !== undefined && value !== null) {
25
+ lines.push(`${key}=${value}`);
26
+ }
27
+ }
28
+ return lines.join('\n');
29
+ }
30
+ static generateServerProperties(config) {
31
+ return {
32
+ 'allow-flight': false,
33
+ 'allow-nether': true,
34
+ 'broadcast-console-to-ops': true,
35
+ 'broadcast-rcon-to-ops': true,
36
+ 'difficulty': config.world.difficulty,
37
+ 'enable-command-block': false,
38
+ 'enable-jmx-monitoring': false,
39
+ 'enable-query': false,
40
+ 'enable-rcon': false,
41
+ 'enable-status': true,
42
+ 'enforce-secure-profile': true,
43
+ 'enforce-whitelist': false,
44
+ 'entity-broadcast-range-percentage': 100,
45
+ 'force-gamemode': false,
46
+ 'function-permission-level': 2,
47
+ 'gamemode': config.world.gamemode,
48
+ 'generate-structures': true,
49
+ 'generator-settings': '',
50
+ 'hardcore': config.world.hardcore,
51
+ 'hide-online-players': false,
52
+ 'initial-disabled-packs': '',
53
+ 'initial-enabled-packs': 'vanilla',
54
+ 'level-name': config.world.levelName,
55
+ 'level-seed': config.world.seed || '',
56
+ 'level-type': 'minecraft\\:normal',
57
+ 'max-chained-neighbor-updates': 1000000,
58
+ 'max-players': config.world.maxPlayers,
59
+ 'max-tick-time': 60000,
60
+ 'max-world-size': 29999984,
61
+ 'motd': config.network.motd,
62
+ 'network-compression-threshold': 256,
63
+ 'online-mode': config.network.onlineMode,
64
+ 'op-permission-level': 4,
65
+ 'player-idle-timeout': 0,
66
+ 'prevent-proxy-connections': false,
67
+ 'pvp': true,
68
+ 'query.port': 25565,
69
+ 'rate-limit': 0,
70
+ 'rcon.password': '',
71
+ 'rcon.port': 25575,
72
+ 'require-resource-pack': false,
73
+ 'resource-pack': '',
74
+ 'resource-pack-id': '',
75
+ 'resource-pack-prompt': '',
76
+ 'resource-pack-sha1': '',
77
+ 'server-ip': config.network.ip,
78
+ 'server-port': config.network.port,
79
+ 'simulation-distance': config.world.viewDistance,
80
+ 'spawn-animals': true,
81
+ 'spawn-monsters': true,
82
+ 'spawn-npcs': true,
83
+ 'spawn-protection': 16,
84
+ 'sync-chunk-writes': true,
85
+ 'text-filtering-config': '',
86
+ 'use-native-transport': true,
87
+ 'view-distance': config.world.viewDistance,
88
+ 'white-list': false
89
+ };
90
+ }
91
+ static generateBedrockProperties(config) {
92
+ return {
93
+ 'server-name': config.network.motd.replace(/§./g, ''),
94
+ 'gamemode': config.world.gamemode,
95
+ 'difficulty': config.world.difficulty,
96
+ 'allow-cheats': false,
97
+ 'max-players': config.world.maxPlayers,
98
+ 'online-mode': config.network.onlineMode,
99
+ 'white-list': false,
100
+ 'server-port': config.network.bedrockPort || 19132,
101
+ 'server-portv6': 19133,
102
+ 'level-name': config.world.levelName,
103
+ 'level-seed': config.world.seed || '',
104
+ 'level-type': 'DEFAULT',
105
+ 'enable-query': true,
106
+ 'enable-rcon': false,
107
+ 'rcon-port': 25575,
108
+ 'rcon-password': '',
109
+ 'max-threads': 8,
110
+ 'tick-distance': 4,
111
+ 'default-player-permission-level': 'member',
112
+ 'texturepack-required': false,
113
+ 'content-log-file-enabled': false,
114
+ 'compression-threshold': 1,
115
+ 'server-authoritative-movement': 'server-auth',
116
+ 'player-movement-score-threshold': 20,
117
+ 'player-movement-distance-threshold': 0.3,
118
+ 'player-movement-duration-threshold-in-ms': 500,
119
+ 'correct-player-movement': false
120
+ };
121
+ }
122
+ }
123
+ exports.PropertiesParser = PropertiesParser;
124
+ //# sourceMappingURL=PropertiesParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PropertiesParser.js","sourceRoot":"","sources":["../../src/utils/PropertiesParser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ export type OSType = 'linux' | 'darwin' | 'windows' | 'android' | 'unknown';
2
+ export type DistroType = 'ubuntu' | 'debian' | 'centos' | 'fedora' | 'arch' | 'termux' | 'unknown';
3
+ export declare class SystemDetector {
4
+ static getOS(): OSType;
5
+ static getDistro(): DistroType;
6
+ static hasJava(): boolean;
7
+ static getJavaVersion(): string | null;
8
+ static getArch(): string;
9
+ static getTotalMemory(): number;
10
+ static getCPUCores(): number;
11
+ static getSystemInfo(): any;
12
+ static getJavaInstallCommand(): string;
13
+ }
14
+ //# sourceMappingURL=SystemDetector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SystemDetector.d.ts","sourceRoot":"","sources":["../../src/utils/SystemDetector.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;AAC5E,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEnG,qBAAa,cAAc;WACT,KAAK,IAAI,MAAM;WAiBf,SAAS,IAAI,UAAU;WAsBvB,OAAO,IAAI,OAAO;WASlB,cAAc,IAAI,MAAM,GAAG,IAAI;WAU/B,OAAO,IAAI,MAAM;WAIjB,cAAc,IAAI,MAAM;WAIxB,WAAW,IAAI,MAAM;WAIrB,aAAa,IAAI,GAAG;WAepB,qBAAqB,IAAI,MAAM;CAkChD"}
@@ -0,0 +1,152 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.SystemDetector = void 0;
37
+ const child_process_1 = require("child_process");
38
+ const os = __importStar(require("os"));
39
+ class SystemDetector {
40
+ static getOS() {
41
+ const platform = os.platform();
42
+ if (platform === 'linux') {
43
+ if (process.env.TERMUX_VERSION || process.env.PREFIX === '/data/data/com.termux/files/usr') {
44
+ return 'android';
45
+ }
46
+ return 'linux';
47
+ }
48
+ else if (platform === 'darwin') {
49
+ return 'darwin';
50
+ }
51
+ else if (platform === 'win32') {
52
+ return 'windows';
53
+ }
54
+ return 'unknown';
55
+ }
56
+ static getDistro() {
57
+ const osType = this.getOS();
58
+ if (osType === 'android') {
59
+ return 'termux';
60
+ }
61
+ if (osType === 'linux') {
62
+ try {
63
+ const osRelease = (0, child_process_1.execSync)('cat /etc/os-release').toString();
64
+ if (osRelease.includes('Ubuntu'))
65
+ return 'ubuntu';
66
+ if (osRelease.includes('Debian'))
67
+ return 'debian';
68
+ if (osRelease.includes('CentOS'))
69
+ return 'centos';
70
+ if (osRelease.includes('Fedora'))
71
+ return 'fedora';
72
+ if (osRelease.includes('Arch'))
73
+ return 'arch';
74
+ }
75
+ catch { }
76
+ }
77
+ return 'unknown';
78
+ }
79
+ static hasJava() {
80
+ try {
81
+ (0, child_process_1.execSync)('java -version', { stdio: 'ignore' });
82
+ return true;
83
+ }
84
+ catch {
85
+ return false;
86
+ }
87
+ }
88
+ static getJavaVersion() {
89
+ try {
90
+ const output = (0, child_process_1.execSync)('java -version 2>&1').toString();
91
+ const match = output.match(/version "([^"]+)"/);
92
+ return match ? match[1] : null;
93
+ }
94
+ catch {
95
+ return null;
96
+ }
97
+ }
98
+ static getArch() {
99
+ return os.arch();
100
+ }
101
+ static getTotalMemory() {
102
+ return os.totalmem() / (1024 * 1024 * 1024);
103
+ }
104
+ static getCPUCores() {
105
+ return os.cpus().length;
106
+ }
107
+ static getSystemInfo() {
108
+ return {
109
+ os: this.getOS(),
110
+ distro: this.getDistro(),
111
+ arch: this.getArch(),
112
+ memoryGB: this.getTotalMemory(),
113
+ cpuCores: this.getCPUCores(),
114
+ hostname: os.hostname(),
115
+ platform: os.platform(),
116
+ release: os.release(),
117
+ hasJava: this.hasJava(),
118
+ javaVersion: this.getJavaVersion()
119
+ };
120
+ }
121
+ static getJavaInstallCommand() {
122
+ const osType = this.getOS();
123
+ const distro = this.getDistro();
124
+ if (osType === 'android') {
125
+ return 'pkg install openjdk-17 -y';
126
+ }
127
+ if (osType === 'linux') {
128
+ switch (distro) {
129
+ case 'ubuntu':
130
+ case 'debian':
131
+ return 'apt update && apt install openjdk-17-jre-headless -y';
132
+ case 'centos':
133
+ return 'yum install java-17-openjdk-headless -y';
134
+ case 'fedora':
135
+ return 'dnf install java-17-openjdk-headless -y';
136
+ case 'arch':
137
+ return 'pacman -S jre17-openjdk-headless --noconfirm';
138
+ default:
139
+ return 'echo "Please install Java 17 manually"';
140
+ }
141
+ }
142
+ if (osType === 'darwin') {
143
+ return 'brew install openjdk@17';
144
+ }
145
+ if (osType === 'windows') {
146
+ return 'Please download Java 17 from https://adoptium.net';
147
+ }
148
+ return 'echo "Unable to determine Java installation command"';
149
+ }
150
+ }
151
+ exports.SystemDetector = SystemDetector;
152
+ //# sourceMappingURL=SystemDetector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SystemDetector.js","sourceRoot":"","sources":["../../src/utils/SystemDetector.ts"],"names":[],"mappings":"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"}