Merge #20
26
API/gdrive_save.js
Normal file
26
API/gdrive_save.js
Normal file
@ -0,0 +1,26 @@
|
||||
module.exports = () => {
|
||||
global.bds_api_start = true
|
||||
const express = require("express");
|
||||
const app = express();
|
||||
var cors = require('cors');
|
||||
app.use(cors());
|
||||
app.use(require("body-parser").json()); /* https://github.com/github/fetch/issues/323#issuecomment-331477498 */
|
||||
const bodyParser = require("body-parser");
|
||||
app.use(bodyParser.urlencoded({ extended: true }));
|
||||
app.get("/:DI", (req, res) => {
|
||||
return res.send(`
|
||||
<html>
|
||||
<head></head>
|
||||
<body>
|
||||
<a>token Save</a>
|
||||
<p>
|
||||
<textarea disabled>
|
||||
${req.params.DI}
|
||||
</textarea>
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
`);
|
||||
});
|
||||
app.listen(2212);
|
||||
}
|
@ -1,5 +1,3 @@
|
||||
const { bds_detect } = require("../bedrock/detect_bds");
|
||||
|
||||
module.exports = () => {
|
||||
global.bds_api_post_start = true
|
||||
const express = require("express");
|
||||
|
0
CHANGELOG.md
Normal file
0
CHANGELOG.md
Normal file
@ -1,32 +0,0 @@
|
||||
module.exports.World_BAckup = () => {
|
||||
if (require("./detect_bds").bds_detect()){require("../global/stop").Server_stop()}
|
||||
const bds = require('../index')
|
||||
if (process.platform == "win32") {
|
||||
var today = bds.date()
|
||||
var name = `${process.env.USERPROFILE}/Desktop/bds_backup_World_${today}.zip`
|
||||
var dir_zip = `${require("../index").bds_dir}/worlds/`
|
||||
} else if (process.platform == "linux") {
|
||||
var today = bds.date()
|
||||
var name = `${process.env.HOME}/bds_backup_World_${today}.zip`
|
||||
var dir_zip = `${require("../index").bds_dir_bedrock}/worlds/`
|
||||
};
|
||||
var AdmZip = require("adm-zip");var zip = new AdmZip();zip.addLocalFolder(dir_zip);zip.addZipComment(`Backup zip file in ${today}. \nBackup made to ${process.platform}, Free and open content for all\n\nSirherobrine23© By Bds Maneger.`);var zipEntries = zip.getEntries();zipEntries.forEach(function (zipEntry) {console.log(zipEntry.entryName.toString());});zip.writeZip(name);console.log("Backup Sucess")
|
||||
};
|
||||
|
||||
module.exports.Drive_backup = () => {
|
||||
if (require("./detect_bds").bds_detect()){require("../global/stop").Server_stop()}
|
||||
const bds = require("../index");
|
||||
const path = require("path");
|
||||
var dir_zip = path.join(bds.bds_dir_bedrock, "worlds");
|
||||
const today = bds.date();
|
||||
const file_name = `bds_backup_World_${today}.zip`
|
||||
const name = path.join(bds.tmp_dir, file_name)
|
||||
/* Compress the folders */
|
||||
var AdmZip = require("adm-zip");var zip = new AdmZip();zip.addLocalFolder(dir_zip);zip.addZipComment(`Backup zip file in ${today}. \nBackup made to ${process.platform}, Free and open content for all\n\nSirherobrine23© By Bds Maneger.`);var zipEntries = zip.getEntries();zip.writeZip(name);console.log("Backup Sucess")
|
||||
var json_return = {
|
||||
file_dir: name.replaceAll("\\", "/"),
|
||||
file_name: file_name
|
||||
}
|
||||
return json_return
|
||||
};
|
||||
|
@ -1,159 +0,0 @@
|
||||
function bds_config(json_config){
|
||||
var Server_Config = `${require("../index").bds_dir_bedrock}/server.properties`
|
||||
const cpuCount = require("os").cpus().length;
|
||||
var fs = require("fs")
|
||||
if (2 < cpuCount - 2) var CPU = cpuCount - 2; else var CPU = cpuCount;
|
||||
if (json_config.includes(".json")){var config = JSON.parse(fs.readFileSync(json_config, "utf8"))} else var config = JSON.parse(json_config)
|
||||
if (config.description == undefined){var description_name = `Dedicated Server`;} else {var description_name = config.description;};
|
||||
|
||||
// Level Name
|
||||
if (config.name == undefined){var level_name = `Bedrock level`;} else {var level_name = config.name;};
|
||||
|
||||
// gamemode
|
||||
if (config.gamemode == undefined){var gamemode = `survival`;} else {var gamemode = config.gamemode;};
|
||||
|
||||
// Difficulty
|
||||
if (config.difficulty == undefined){var difficulty = `easy`;} else {var difficulty = config.difficulty;};
|
||||
|
||||
// cheats
|
||||
if (config.cheats == undefined){var allow_cheats = false;} else {var allow_cheats = config.cheats;};
|
||||
|
||||
// Maximo de Jogadores
|
||||
if (config.players == undefined){var max_players = 10;} else {var max_players = config.players;};
|
||||
|
||||
// Xbox authentication outside the internal network
|
||||
if (config.xbox == undefined){var online_mode = true;} else {var online_mode = config.xbox;};
|
||||
|
||||
// Whitelist
|
||||
if (config.white_list == undefined){var white_list = false;} else {var white_list = config.white_list;};
|
||||
|
||||
// Server Port IPv4
|
||||
if (config.port == undefined){var server_port = 19132;} else {var server_port = config.port;};
|
||||
|
||||
// Server Port IPv6
|
||||
if (config.port6 == undefined){var server_portv6 = 19133;} else {var server_portv6 = config.port6;};
|
||||
|
||||
// Default player permission
|
||||
if (config.player_permission == undefined){var player_permission = `member`;} else {var player_permission = config.player_permission;};
|
||||
const cpuCountTick = require("os").cpus().length;
|
||||
if (2 >= cpuCountTick) var tick = 2 ;else if (4 >= cpuCountTick) var tick = 4;else if (6 >= cpuCountTick) var tick = 6;else if (8 >= cpuCountTick) var tick = 8;else if (10 >= cpuCountTick) var tick = 10;else var tick = 12
|
||||
|
||||
/*Save Files*/
|
||||
if (localStorage.getItem("bds_edititon") === 'java'){
|
||||
var config_file_content = `
|
||||
enable-jmx-monitoring=false
|
||||
rcon.port=25575
|
||||
level-seed=
|
||||
gamemode=${gamemode}
|
||||
enable-command-block=false
|
||||
enable-query=false
|
||||
generator-settings=
|
||||
level-name=${level_name}
|
||||
motd=${description_name}
|
||||
query.port=${server_port}
|
||||
pvp=true
|
||||
generate-structures=true
|
||||
difficulty=${difficulty}
|
||||
network-compression-threshold=256
|
||||
max-tick-time=60000
|
||||
max-players=${max_players}
|
||||
use-native-transport=true
|
||||
online-mode=${online_mode}
|
||||
enable-status=true
|
||||
allow-flight=false
|
||||
broadcast-rcon-to-ops=true
|
||||
view-distance=32
|
||||
max-build-height=256
|
||||
server-ip=
|
||||
allow-nether=true
|
||||
server-port=${server_port}
|
||||
enable-rcon=${allow_cheats}
|
||||
sync-chunk-writes=true
|
||||
op-permission-level=4
|
||||
prevent-proxy-connections=false
|
||||
resource-pack=
|
||||
entity-broadcast-range-percentage=100
|
||||
rcon.password=25as65d3
|
||||
player-idle-timeout=0
|
||||
force-gamemode=false
|
||||
rate-limit=0
|
||||
hardcore=false
|
||||
white-list=${white_list}
|
||||
broadcast-console-to-ops=true
|
||||
spawn-npcs=true
|
||||
spawn-animals=true
|
||||
snooper-enabled=true
|
||||
function-permission-level=2
|
||||
level-type=default
|
||||
text-filtering-config=
|
||||
spawn-monsters=true
|
||||
enforce-whitelist=false
|
||||
resource-pack-sha1=
|
||||
spawn-protection=16
|
||||
max-world-size=29999984
|
||||
#
|
||||
# Created on Bds-Manager by Sirherobrine23
|
||||
`
|
||||
} else {
|
||||
var config_file_content = `
|
||||
server-name=${description_name}
|
||||
gamemode=${gamemode}
|
||||
difficulty=${difficulty}
|
||||
allow-cheats=${allow_cheats}
|
||||
max-players=${max_players}
|
||||
online-mode=${online_mode}
|
||||
white-list=${white_list}
|
||||
server-port=${server_port}
|
||||
server-portv6=${server_portv6}
|
||||
view-distance=32
|
||||
tick-distance=${tick}
|
||||
player-idle-timeout=0
|
||||
max-threads=${CPU}
|
||||
level-name=${level_name}
|
||||
level-seed=
|
||||
default-player-permission-level=${player_permission}
|
||||
texturepack-required=true
|
||||
content-log-file-enabled=false
|
||||
compression-threshold=1
|
||||
server-authoritative-movement=server-auth
|
||||
player-movement-score-threshold=20
|
||||
player-movement-distance-threshold=0.3
|
||||
player-movement-duration-threshold-in-ms=500
|
||||
correct-player-movement=false
|
||||
|
||||
# Created on Bds-Manager by Sirherobrine23
|
||||
`
|
||||
}
|
||||
|
||||
// console.log(config_file_content);
|
||||
fs.writeFileSync(Server_Config, config_file_content);
|
||||
return config_file_content
|
||||
};
|
||||
function bds_get_config(){
|
||||
var fs = require("fs");
|
||||
const propertiesToJSON = require("properties-to-json");
|
||||
if (localStorage.getItem("bds_edititon") === 'java')
|
||||
var Server_Config = `${require("../index").bds_dir_java}/server.properties`
|
||||
else
|
||||
var Server_Config = `${require("../index").bds_dir_bedrock}/server.properties`
|
||||
const inGET = fs.readFileSync(Server_Config, "utf8").replaceAll("-","_");
|
||||
return propertiesToJSON(inGET);
|
||||
};
|
||||
module.exports.config_example = () =>{
|
||||
const example = `{
|
||||
"name": "Bedrock"
|
||||
"description": "Hello Works"
|
||||
"gamemode": "survival"
|
||||
"difficulty": "hard"
|
||||
"cheats": false
|
||||
"players": 100
|
||||
"xbox": true
|
||||
"white_list": false
|
||||
"port": 19132
|
||||
"port6": 19133
|
||||
"player_permission": "member"
|
||||
}`
|
||||
return example
|
||||
}
|
||||
module.exports.config = bds_config
|
||||
module.exports.get_config = bds_get_config
|
@ -1,9 +0,0 @@
|
||||
module.exports.bds_detect = () => {
|
||||
var spawn = require("child_process").execSync;
|
||||
if (process.platform == "win32") {
|
||||
var killbds = spawn(`tasklist /fi "imagename eq bedrock_server.exe" | find /i "bedrock_server.exe" > nul & if not errorlevel 1 (echo 0) else (echo 1)`);
|
||||
} else if (process.platform == "linux") {
|
||||
var killbds = spawn(`ps aux|grep -v "grep"|grep "bedrock_server"|grep -q "bedrock_server";echo $?`, {shell: true});
|
||||
};
|
||||
if (killbds == 0){return true} else {return false};
|
||||
}
|
@ -1,62 +0,0 @@
|
||||
module.exports = (Vdown) => {
|
||||
console.warn("Do not exit BDS Manager")
|
||||
const bds = require('../index')
|
||||
fetch("https://raw.githubusercontent.com/Bds-Maneger/Raw_files/main/Server.json").then(response => response.json()).then(versions => {
|
||||
const system = bds.system
|
||||
var mine_name = `bedrock.zip`
|
||||
var server_DIR = bds.bds_dir_bedrock;
|
||||
if (system === 'linux'){
|
||||
var versions_get = versions.bedrock[Vdown].url_linux;
|
||||
} else {
|
||||
var versions_get = versions.bedrock[Vdown].url_windows;
|
||||
}
|
||||
|
||||
console.log("Starting download")
|
||||
const exec = require("child_process").exec
|
||||
localStorage.setItem("bds_server_version", Vdown);
|
||||
var downloadBDSchild = exec(`curl ${versions_get} --output ${mine_name}`, {
|
||||
cwd: `${bds.tmp_dir}`
|
||||
});
|
||||
var ZIP_FILE_PATH = `${bds.tmp_dir}/${mine_name}`;
|
||||
downloadBDSchild.stdout.on("data", function(data){
|
||||
console.log(data)
|
||||
})
|
||||
downloadBDSchild.on("exit", function (code) {
|
||||
if (code === 0) {
|
||||
console.log(`Download zip file success`);
|
||||
|
||||
var AdmZip = require("adm-zip");
|
||||
const fs = require("fs")
|
||||
if (fs.existsSync(`${server_DIR}/server.properties`)){var _old = true;var old1 = fs.readFileSync(`${server_DIR}/server.properties`, "utf-8");}
|
||||
if (fs.existsSync(`${server_DIR}/permissions.json`)){var _old2 = true;var old2 = fs.readFileSync(`${server_DIR}/permissions.json`, "utf-8");}
|
||||
if (fs.existsSync(`${server_DIR}/whitelist.json`)) {var _old3 = true;var old3 = fs.readFileSync(`${server_DIR}/whitelist.json`, "utf-8");}
|
||||
if (fs.existsSync(`${server_DIR}/valid_known_packs.json`)){var _old4 = true;var old4 = fs.readFileSync(`${server_DIR}/valid_known_packs.json`, "utf-8");};
|
||||
// Unzip
|
||||
var zip = new AdmZip(ZIP_FILE_PATH);
|
||||
var zipEntries = zip.getEntries();
|
||||
var totalfiles = zipEntries.length
|
||||
zipEntries.forEach(function(zipEntry) {
|
||||
totalfiles--
|
||||
if (totalfiles === 0){
|
||||
if (_old){fs.writeFileSync(`${server_DIR}/server.properties`, old1);}
|
||||
if (_old2){fs.writeFileSync(`${server_DIR}/permissions.json`, old2);}
|
||||
if (_old3){fs.writeFileSync(`${server_DIR}/whitelist.json`, old3);}
|
||||
if (_old4){fs.writeFileSync(`${server_DIR}/valid_known_packs.json`, old4);};
|
||||
const docker_exit = process.env.BDS_DOCKER_IMAGE
|
||||
console.log(docker_exit)
|
||||
if (docker_exit == "true"){
|
||||
console.log(`going out`)
|
||||
process.exit(0)
|
||||
}
|
||||
}
|
||||
});
|
||||
zip.extractAllTo(server_DIR, true);
|
||||
console.log("Downlod Sucess"); // End Unzip
|
||||
localStorage.setItem("Downlaod_sucess", "yes")
|
||||
} else {
|
||||
localStorage.setItem("Download_sucess", "no")
|
||||
throw new error(`Could not download`);
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
@ -1,17 +0,0 @@
|
||||
module.exports.bds_kill = () => {
|
||||
var spawn = require("child_process").exec;
|
||||
const Storage = localStorage
|
||||
if (require("./detect_bds").bds_detect()){
|
||||
if (process.platform == "win32") {
|
||||
var killbds = spawn(`tasklist /fi "imagename eq bedrock_server.exe" | find /i "bedrock_server.exe" > nul & if not errorlevel 1 (taskkill /f /im "bedrock_server.exe" > nul && exit 0) else (exit 1)`);
|
||||
} else if (process.platform == "linux") {
|
||||
var killbds = spawn(`kill $(ps aux|grep -v "grep"|grep "bedrock_server"|awk '{print $2}')`, {shell: true});
|
||||
};
|
||||
killbds.on("exit", function () {killbds.stdin.end();});
|
||||
Storage.setItem("bds_status", false);
|
||||
return true
|
||||
} else {
|
||||
Storage.setItem("bds_status", false);
|
||||
return false
|
||||
};
|
||||
}
|
@ -1,24 +0,0 @@
|
||||
module.exports.Server_start = () => {
|
||||
const bds = require("../index")
|
||||
const Storage = localStorage;
|
||||
var exec = require("child_process").exec;
|
||||
const mine = localStorage.getItem('bds_edititon')
|
||||
if (!(bds.detect())){
|
||||
if (process.platform == "win32"){
|
||||
var serverstated = exec(`bedrock_server.exe`, {cwd: bds.bds_dir_bedrock});
|
||||
} else if (process.platform == "linux"){
|
||||
var serverstated = exec(`chmod 777 bedrock_server && ./bedrock_server`, {env: {PATH: process.env.PATH, LD_LIBRARY_PATH: bds.bds_dir_bedrock}, cwd: bds.bds_dir_bedrock});
|
||||
};
|
||||
var logConsoleStream = require("fs").createWriteStream(bds.log_file, {flags: "a"});
|
||||
Storage.setItem("old_log_file", bds.log_file)
|
||||
serverstated.stdout.pipe(logConsoleStream);
|
||||
if (typeof bds_log_string !== "undefined"){delete(bds_log_string)}
|
||||
serverstated.stdout.on("data", function(data){global.bds_log_string += data})
|
||||
Storage.setItem("bds_status", true);
|
||||
global.bds_server_string = serverstated;
|
||||
return serverstated;
|
||||
} else {
|
||||
console.warn(`You already have a server running`)
|
||||
return `You already have a server running`
|
||||
}
|
||||
}
|
@ -3,14 +3,16 @@ const path = require("path")
|
||||
const readline = require("readline");
|
||||
const {google} = require("googleapis");
|
||||
const bds = require("../index");
|
||||
const SCOPES = ["https://www.googleapis.com/auth/drive"];
|
||||
const open = require("open")
|
||||
const TOKEN_PATH = path.join(bds.bds_dir, "google_token.json");
|
||||
|
||||
|
||||
function authorize(credentials, callback) {
|
||||
const {client_secret, client_id, redirect_uris} = credentials.installed;
|
||||
const oAuth2Client = new google.auth.OAuth2(
|
||||
client_id, client_secret, redirect_uris[0]);
|
||||
const gd = JSON.parse(require("../index").google_drive_credential);
|
||||
const client_secret = gd.installed.client_secret;
|
||||
const client_id = gd.installed.client_id;
|
||||
const redirect_uris = gd.installed.redirect_uris;
|
||||
const oAuth2Client = new google.auth.OAuth2(client_id, client_secret, redirect_uris[0]);
|
||||
|
||||
fs.readFile(TOKEN_PATH, (err, token) => {
|
||||
if (err) return getAccessToken(oAuth2Client, callback);
|
||||
@ -20,9 +22,10 @@ function authorize(credentials, callback) {
|
||||
function getAccessToken(oAuth2Client, callback) {
|
||||
const authUrl = oAuth2Client.generateAuthUrl({
|
||||
access_type: "offline",
|
||||
scope: SCOPES,
|
||||
scope: ["https://www.googleapis.com/auth/drive"],
|
||||
});
|
||||
console.log("Authorize this app by visiting this url:", authUrl);
|
||||
open(authUrl)
|
||||
const rl = readline.createInterface({
|
||||
input: process.stdin,
|
||||
output: process.stdout,
|
||||
@ -41,24 +44,47 @@ function getAccessToken(oAuth2Client, callback) {
|
||||
});
|
||||
};
|
||||
|
||||
const CREDENTIAL = require("../index").google_drive_credential
|
||||
module.exports.drive_backup = (parent_id) => {
|
||||
module.exports.drive_backup = () => {
|
||||
const file_json = require("../new_script/backups").Drive_backup()
|
||||
console.log(file_json)
|
||||
const parent_id = file_json.id
|
||||
const path_file = file_json.file_path
|
||||
const name_d = file_json.file_name;
|
||||
|
||||
const gd_secret = '';
|
||||
console.log(gd_secret)
|
||||
function upload_backup(auth) {
|
||||
const bds_backup = require("../backup").Drive_backup();
|
||||
const drive = google.drive({version: "v3", auth});
|
||||
if (parent_id == undefined){var fileMetadata = {"name": bds_backup.file_name,};console.log("Your backup will be saved to My Drive")} else {var fileMetadata = {"name": bds_backup.file_name,parents: [parent_id]};};
|
||||
var media = {mimeType: "application/octet-stream",body: fs.createReadStream(bds_backup.file_dir)};
|
||||
drive.files.create({resource: fileMetadata, media: media, fields: "id"}, function (err, file) {
|
||||
if (err) {console.error(err);} else {
|
||||
global.backup_id = file.data.id;
|
||||
console.log("File: ", file.data.id);}
|
||||
if (parent_id === undefined){
|
||||
var fileMetadata = {
|
||||
name: name_d
|
||||
}
|
||||
console.log("Your backup will be saved to My Drive")
|
||||
} else {
|
||||
var fileMetadata = {
|
||||
name: name_d,
|
||||
parents: [parent_id]
|
||||
}
|
||||
};
|
||||
var media = {
|
||||
mimeType: "application/octet-stream",
|
||||
body: fs.createReadStream(path_file)
|
||||
}
|
||||
drive.files.create({
|
||||
resource: fileMetadata,
|
||||
media: media,
|
||||
fields: "id"
|
||||
}, function (err, file) {
|
||||
if (err) console.error(err)
|
||||
else {global.backup_id = file.data.id;console.log("File: ", file.data.id);}
|
||||
});
|
||||
}
|
||||
return authorize(JSON.parse(CREDENTIAL), upload_backup);
|
||||
return authorize(gd_secret, upload_backup);
|
||||
// End Upload Backup
|
||||
};
|
||||
|
||||
module.exports.mcpe = () => {
|
||||
const gd_secret = JSON.parse(require("../index").google_drive_credential)
|
||||
global.mcpe_file_end = false;
|
||||
function download_mcpe(auth) {
|
||||
const drive = google.drive({version: "v3", auth});
|
||||
@ -76,5 +102,5 @@ module.exports.mcpe = () => {
|
||||
if (process.stdout.isTTY) {process.stdout.clearLine();process.stdout.cursorTo(0);process.stdout.write(`Downloaded ${Math.trunc(progress)} Mbytes`);}
|
||||
}).pipe(dest)});
|
||||
};
|
||||
return authorize(JSON.parse(CREDENTIAL), download_mcpe);
|
||||
return authorize(gd_secret, download_mcpe);
|
||||
}
|
||||
|
@ -1,14 +0,0 @@
|
||||
module.exports.Server_stop = () => {
|
||||
if (typeof bds_server_string == "undefined")
|
||||
console.log("The server is stopped!");
|
||||
else {
|
||||
const Storage = localStorage;
|
||||
bds_server_string.stdin.write("stop\n");
|
||||
bds_server_string.stdout.on("data", function (data){
|
||||
if (data.includes("Quit correctly")){
|
||||
Storage.setItem("bds_status", false)
|
||||
};
|
||||
});
|
||||
};
|
||||
return
|
||||
}
|
162
index.js
162
index.js
@ -44,9 +44,6 @@ const package_root = path.join(process.cwd(), "package.json")
|
||||
if (process.platform == "win32") {
|
||||
var home = process.env.USERPROFILE;
|
||||
var desktop = path.join(home, "Desktop")
|
||||
var bds_dir = path.join(home, `bds_Server`);
|
||||
var bds_dir_bedrock = path.join(home, `bds_Server`, 'bedrock');
|
||||
var bds_dir_java = path.join(home, `bds_Server`, 'java');
|
||||
if (fs.existsSync(package_root)){
|
||||
var cache_dir = path.join(home, "AppData", "Roaming", require(package_root).name)
|
||||
} else {
|
||||
@ -57,9 +54,6 @@ if (process.platform == "win32") {
|
||||
var system = `windows`;
|
||||
} else if (process.platform == "linux") {
|
||||
var home = process.env.HOME;
|
||||
var bds_dir = path.join(home, "bds_Server");
|
||||
var bds_dir_bedrock = path.join(home, `bds_Server`, 'bedrock');
|
||||
var bds_dir_java = path.join(home, `bds_Server`, 'java');
|
||||
if (fs.existsSync(package_root)){
|
||||
var cache_dir = path.join(home, ".config", require(package_root).name);
|
||||
} else {
|
||||
@ -81,27 +75,57 @@ if (process.platform == "win32") {
|
||||
};
|
||||
// ---------
|
||||
// ---------
|
||||
var bds_dir = path.join(home, "bds_Server");
|
||||
var bds_dir_bedrock = path.join(bds_dir, 'bedrock');
|
||||
var bds_dir_java = path.join(bds_dir, 'java');
|
||||
var bds_dir_backup = path.join(bds_dir, 'backups');
|
||||
module.exports.backup_folder = bds_dir_backup
|
||||
|
||||
// Configs
|
||||
const bds_config_file = path.join(bds_dir, "bds_config.json")
|
||||
if (fs.existsSync(bds_config_file)){
|
||||
var bds_config = JSON.parse(fs.readFileSync(bds_config_file, "utf-8"))
|
||||
} else {
|
||||
const _config = `{
|
||||
"bds_platform": "bedrock",
|
||||
"telegram_token": null
|
||||
}`
|
||||
var bds_config = JSON.parse(_config)
|
||||
fs.writeFileSync(bds_config_file, _config)
|
||||
}
|
||||
module.exports.platform = bds_config.bds_platform
|
||||
console.log(`Running on the \"${bds_config.bds_platform}\" platform`)
|
||||
// Configs
|
||||
|
||||
var log_dir = path.join(bds_dir, "log");
|
||||
var log_file = path.join(log_dir, `${date()}_Bds_log.log`);
|
||||
var log_date = `${date()}`;
|
||||
var shell = require("shelljs");
|
||||
var log_file = path.join(log_dir, `${date()}_${bds_config.bds_platform}_Bds_log.log`);
|
||||
var log_date = date();
|
||||
|
||||
// ---------
|
||||
// ---------
|
||||
|
||||
// var shell = require("shelljs");
|
||||
|
||||
if (!(fs.existsSync(cache_dir))){
|
||||
console.log(`Creating a folder for Storage in ${cache_dir}`);
|
||||
shell.mkdir("-p", cache_dir);
|
||||
// shell.mkdir("-p", cache_dir);
|
||||
fs.mkdirSync(cache_dir)
|
||||
}
|
||||
// e
|
||||
if (!(fs.existsSync(bds_dir))){
|
||||
console.log("Creating the bds directory")
|
||||
shell.mkdir("-p", bds_dir);
|
||||
// shell.mkdir("-p", bds_dir);
|
||||
fs.mkdirSync(bds_dir)
|
||||
}
|
||||
if (!(fs.existsSync(bds_dir_java))){
|
||||
console.log("Creating the bds directory to Java")
|
||||
shell.mkdir("-p", bds_dir_java);
|
||||
// shell.mkdir("-p", bds_dir_java);
|
||||
fs.mkdirSync(bds_dir_java)
|
||||
}
|
||||
if (!(fs.existsSync(bds_dir_bedrock))){
|
||||
console.log("Creating the bds directory to Bedrock")
|
||||
shell.mkdir("-p", bds_dir_bedrock);
|
||||
// shell.mkdir("-p", bds_dir_bedrock);
|
||||
fs.mkdirSync(bds_dir_bedrock)
|
||||
}
|
||||
// e
|
||||
if (!fs.existsSync(log_dir)){
|
||||
@ -112,18 +136,29 @@ if (!fs.existsSync(log_dir)){
|
||||
};
|
||||
};
|
||||
// e
|
||||
if (require("fs").existsSync(`${bds_dir}/telegram_token.txt`)){module.exports.token = require("fs").readFileSync(`${bds_dir}/telegram_token.txt`, "utf8").replaceAll("\n", "");} else {module.exports.token = undefined;}
|
||||
if (require("fs").existsSync(`${bds_dir}/telegram_token.txt`)){
|
||||
module.exports.token = fs.readFileSync(`${bds_dir}/telegram_token.txt`, "utf8").replaceAll("\n", "");
|
||||
} else {
|
||||
module.exports.token = undefined;
|
||||
}
|
||||
|
||||
// Depacretd function
|
||||
// module.exports.Storage = () => {
|
||||
// return new require("node-localstorage").localStorage(`${cache_dir}/Local_Storage`)();
|
||||
// }
|
||||
|
||||
module.exports.telegram_token_save = (token) =>{fs.writeFileSync(`${bds_dir}/telegram_token.txt`, token);return "OK"}
|
||||
module.exports.telegram_token_save = (token) =>{
|
||||
fs.writeFileSync(`${bds_dir}/telegram_token.txt`, token);
|
||||
return "OK"
|
||||
}
|
||||
if (typeof fetch === "undefined"){global.fetch = require("node-fetch")}
|
||||
|
||||
if (typeof localStorage === "undefined"){var localStorageS = require("node-localstorage").LocalStorage;global.localStorage = new localStorageS(`${cache_dir}/Local_Storage`);}
|
||||
if (process.env.JAVA_ENABLE !== undefined){localStorage.setItem('bds_edititon', 'java');}else{localStorage.setItem('bds_edititon', 'bedrock');}
|
||||
if (typeof localStorage === "undefined"){
|
||||
var localStorageS = require("node-localstorage").LocalStorage;
|
||||
global.localStorage = new localStorageS(`${cache_dir}/Local_Storage`);
|
||||
}
|
||||
|
||||
// Java or Bedrock
|
||||
if (process.env.JAVA_ENABLE !== undefined){
|
||||
localStorage.setItem('bds_edititon', 'java');
|
||||
}else{
|
||||
localStorage.setItem('bds_edititon', 'bedrock');
|
||||
}
|
||||
|
||||
if (process.env.BDS_MONI == blanks){process.env.BDS_MONI = "false"}
|
||||
if (process.env.ENABLE_BDS_API == blanks){process.env.ENABLE_BDS_API = "false"}
|
||||
@ -132,13 +167,37 @@ if (process.env.ENABLE_BDS_API == blanks){process.env.ENABLE_BDS_API = "false"}
|
||||
// Fetchs
|
||||
fetch("https://raw.githubusercontent.com/Bds-Maneger/Raw_files/main/credentials.json").then(response => response.text()).then(gd_cre => {
|
||||
module.exports.google_drive_credential = gd_cre
|
||||
module.exports.drive_backup = require("./global/auth").drive_backup
|
||||
module.exports.mcpe_file = require("./global/auth").mcpe
|
||||
module.exports.drive_backup= require("./global/auth").drive_backup
|
||||
});
|
||||
fetch("https://raw.githubusercontent.com/Bds-Maneger/Raw_files/main/Server.json").then(response => response.json()).then(rawOUT => {const versions = Object.getOwnPropertyNames(rawOUT.bedrock);for (let v in versions){var html = `${versions[v]}`;var out = `${out}\n <option value=\"${html}\">${html}</option>`;v++;};
|
||||
module.exports.version_select = out.replaceAll(undefined, "");module.exports.version_raw = Object.getOwnPropertyNames(rawOUT.bedrock);module.exports.bds_latest = rawOUT.bedrock_lateste;
|
||||
const enable_api = process.env.ENABLE_BDS_API.includes("true");if (enable_api){if (typeof bds_api_start === "undefined"){require("./API/api")();require("./API/log")();require("./API/remote_access")()} else {console.log(`API already started`)}} else {console.warn(`The API via http is disabled, for more information, visit https://docs.srherobrine23.com/enable_bds_requests.html`)}
|
||||
module.exports.get_version = (type) => {if (type == "raw")return rawOUT.Versions; else return out.replaceAll(undefined, "");}
|
||||
fetch("https://raw.githubusercontent.com/Bds-Maneger/Raw_files/main/Server.json").then(response => response.json()).then(rawOUT => {
|
||||
const versions = Object.getOwnPropertyNames(rawOUT.bedrock);
|
||||
for (let v in versions){
|
||||
var html = `${versions[v]}`;
|
||||
module.exports.version_select += `<option value=\"${html}\">${html}</option>\n`;
|
||||
v++;
|
||||
};
|
||||
module.exports.bedrock_all_versions = Object.getOwnPropertyNames(rawOUT.bedrock);
|
||||
module.exports.java_all_versions = Object.getOwnPropertyNames(rawOUT.java);
|
||||
module.exports.bds_latest = rawOUT.bedrock_lateste;
|
||||
module.exports.bedrock_latest = rawOUT.bedrock_lateste;
|
||||
module.exports.java_latest = rawOUT.java_lateste;
|
||||
|
||||
if (process.env.ENABLE_BDS_API.includes("true")){
|
||||
if (typeof bds_api_start === "undefined"){
|
||||
require("./API/api")();
|
||||
require("./API/log")();
|
||||
require("./API/remote_access")();
|
||||
}
|
||||
} else {
|
||||
console.warn(`The API via http is disabled, for more information, visit https://docs.srherobrine23.com/enable_bds_requests.html`)
|
||||
}
|
||||
module.exports.get_version = (type) => {
|
||||
if (type == "raw")
|
||||
return rawOUT.Versions;
|
||||
else
|
||||
return require("./").version_select;
|
||||
}
|
||||
})
|
||||
// Fetchs
|
||||
|
||||
@ -165,40 +224,17 @@ module.exports.telegram = require("./global/telegram_bot")
|
||||
module.exports.token_register = () => {if (!(fs.existsSync(path.join(bds_dir, "bds_tokens.json")))){fs.writeFileSync(path.join(bds_dir, "bds_tokens.json"), "[]")};require("crypto").randomBytes(10, function(err, buffer) {var token = buffer.toString("hex");console.log(token);var QRCode = require("qrcode");QRCode.toString(token, function (err, url) {fs.readFile(path.join(bds_dir, "bds_tokens.json"), "utf8", function (err, data){if (err){console.log(err);} else {obj = JSON.parse(data);var count = Object.keys(obj).length;var teste = {count, token};obj.push(teste);json = JSON.stringify(obj);fs.writeFileSync(path.join(bds_dir, "bds_tokens.json"), json, "utf8");}});})});}
|
||||
module.exports.date = date
|
||||
module.exports.command = require("./global/command").command
|
||||
module.exports.stop = require("./global/stop").Server_stop
|
||||
// module.exports.stop = require("./global/stop").Server_stop
|
||||
|
||||
const bds_config_file = path.join(bds_dir, "bds_config.json")
|
||||
if (fs.existsSync(bds_config_file)){
|
||||
var bds_config = JSON.parse(fs.readFileSync(bds_config_file, "utf-8"))
|
||||
} else {
|
||||
const _config = `{"bds_platform": "bedrock"}`
|
||||
// fs.writeFileSync(_config, bds_config_file)
|
||||
fs.writeFileSync(bds_config_file,_config)
|
||||
var bds_config = JSON.parse(_config)
|
||||
}
|
||||
|
||||
// Platform selection in the most primitive way
|
||||
const plataforma = bds_config.bds_platform;
|
||||
if (plataforma === 'bedrock'){
|
||||
module.exports.bds_plataform = `bedrock`
|
||||
module.exports.detect = require("./bedrock/detect_bds").bds_detect
|
||||
module.exports.start = require("./bedrock/start").Server_start
|
||||
module.exports.backup = require("./bedrock/backup").World_BAckup
|
||||
module.exports.kill = require("./bedrock/kill").bds_kill
|
||||
module.exports.version_Download = require("./bedrock/download")
|
||||
module.exports.set_config = require("./bedrock/bds_settings").config
|
||||
module.exports.get_config = require("./bedrock/bds_settings").get_config
|
||||
module.exports.config_example = require("./bedrock/bds_settings").config_example
|
||||
module.exports.world_dir = path.join(bds_dir, "worlds")
|
||||
} else {
|
||||
module.exports.bds_plataform = `java`
|
||||
module.exports.detect = require("./java/detect_bds").bds_detect
|
||||
module.exports.start = require("./java/start").Server_start
|
||||
module.exports.backup = require("./java/backup").World_BAckup
|
||||
module.exports.kill = require("./java/kill").bds_kill
|
||||
module.exports.version_Download = require("./java/download")
|
||||
module.exports.set_config = require("./java/bds_settings").config
|
||||
module.exports.get_config = require("./java/bds_settings").get_config
|
||||
module.exports.config_example = require("./java/bds_settings").config_example
|
||||
module.exports.world_dir = path.join(bds_dir, "worlds")
|
||||
}
|
||||
// New management method
|
||||
module.exports.start = require("./new_script/basic_server").start
|
||||
module.exports.stop = require("./new_script/basic_server").stop
|
||||
module.exports.backup = require("./new_script/backups").World_BAckup
|
||||
module.exports.detect = require("./new_script/detect")
|
||||
module.exports.bds_detect = require("./new_script/detect")
|
||||
module.exports.version_Download = require("./new_script/bds_download")
|
||||
module.exports.download = require("./new_script/bds_download")
|
||||
module.exports.kill = require("./new_script/kill_server")
|
||||
module.exports.config_example = require("./new_script/bds_settings").config_example
|
||||
module.exports.set_config = require("./new_script/bds_settings").config
|
||||
module.exports.get_config = require("./new_script/bds_settings").get_config
|
||||
|
@ -1,32 +0,0 @@
|
||||
module.exports.World_BAckup = () => {
|
||||
if (require("./detect_bds").bds_detect()){require("../global/stop").Server_stop()}
|
||||
const bds = require('../index')
|
||||
if (process.platform == "win32") {
|
||||
var today = bds.date()
|
||||
var name = `${process.env.USERPROFILE}/Desktop/bds_backup_World_${today}.zip`
|
||||
var dir_zip = `${require("../index").bds_dir}/worlds/`
|
||||
} else if (process.platform == "linux") {
|
||||
var today = bds.date()
|
||||
var name = `${process.env.HOME}/bds_backup_World_${today}.zip`
|
||||
var dir_zip = `${require("../index").bds_dir_java}/world/`
|
||||
};
|
||||
var AdmZip = require("adm-zip");var zip = new AdmZip();zip.addLocalFolder(dir_zip);zip.addZipComment(`Backup zip file in ${today}. \nBackup made to ${process.platform}, Free and open content for all\n\nSirherobrine23© By Bds Maneger.`);var zipEntries = zip.getEntries();zipEntries.forEach(function (zipEntry) {console.log(zipEntry.entryName.toString());});zip.writeZip(name);console.log("Backup Sucess")
|
||||
};
|
||||
|
||||
module.exports.Drive_backup = () => {
|
||||
if (require("./detect_bds").bds_detect()){require("../global/stop").Server_stop()}
|
||||
const bds = require("../index");
|
||||
const path = require("path");
|
||||
var dir_zip = path.join(bds.bds_dir_java, "world");
|
||||
const today = bds.date();
|
||||
const file_name = `bds_backup_World_${today}.zip`
|
||||
const name = path.join(bds.tmp_dir, file_name)
|
||||
/* Compress the folders */
|
||||
var AdmZip = require("adm-zip");var zip = new AdmZip();zip.addLocalFolder(dir_zip);zip.addZipComment(`Backup zip file in ${today}. \nBackup made to ${process.platform}, Free and open content for all\n\nSirherobrine23© By Bds Maneger.`);var zipEntries = zip.getEntries();zip.writeZip(name);console.log("Backup Sucess")
|
||||
var json_return = {
|
||||
file_dir: name.replaceAll("\\", "/"),
|
||||
file_name: file_name
|
||||
}
|
||||
return json_return
|
||||
};
|
||||
|
@ -1,129 +0,0 @@
|
||||
function bds_config(json_config){
|
||||
var Server_Config = `${require("../index").bds_dir_java}/server.properties`
|
||||
const cpuCount = require("os").cpus().length;
|
||||
var fs = require("fs")
|
||||
if (2 < cpuCount - 2) var CPU = cpuCount - 2; else var CPU = cpuCount;
|
||||
if (json_config.includes(".json")){var config = JSON.parse(fs.readFileSync(json_config, "utf8"))} else var config = JSON.parse(json_config)
|
||||
|
||||
// description
|
||||
if (config.description == undefined){var description_name = `Dedicated Server`;} else {var description_name = config.description;};
|
||||
|
||||
// Level Name
|
||||
if (config.name == undefined){var level_name = `Bedrock level`;} else {var level_name = config.name;};
|
||||
|
||||
// gamemode
|
||||
if (config.gamemode == undefined){var gamemode = `survival`;} else {var gamemode = config.gamemode;};
|
||||
|
||||
// Difficulty
|
||||
if (config.difficulty == undefined){var difficulty = `easy`;} else {var difficulty = config.difficulty;};
|
||||
|
||||
// cheats
|
||||
if (config.cheats == undefined){var allow_cheats = false;} else {var allow_cheats = config.cheats;};
|
||||
|
||||
// Maximo de Jogadores
|
||||
if (config.players == undefined){var max_players = 10;} else {var max_players = config.players;};
|
||||
|
||||
// Xbox authentication outside the internal network
|
||||
if (config.xbox == undefined){var online_mode = true;} else {var online_mode = config.xbox;};
|
||||
|
||||
// Whitelist
|
||||
if (config.white_list == undefined){var white_list = false;} else {var white_list = config.white_list;};
|
||||
|
||||
// Server Port IPv4
|
||||
if (config.port == undefined){var server_port = 19132;} else {var server_port = config.port;};
|
||||
|
||||
// Server Port IPv6
|
||||
if (config.port6 == undefined){var server_portv6 = 19133;} else {var server_portv6 = config.port6;};
|
||||
|
||||
// Default player permission
|
||||
if (config.player_permission == undefined){var player_permission = `member`;} else {var player_permission = config.player_permission;};
|
||||
const cpuCountTick = require("os").cpus().length;
|
||||
if (2 >= cpuCountTick) var tick = 2;else if (4 >= cpuCountTick) var tick = 4;else if (6 >= cpuCountTick) var tick = 6;else if (8 >= cpuCountTick) var tick = 8; else if (10 >= cpuCountTick) var tick = 10;else var tick = 12
|
||||
|
||||
/*Save Files*/
|
||||
var config_file_content = `
|
||||
enable-jmx-monitoring=false
|
||||
rcon.port=25575
|
||||
level-seed=
|
||||
gamemode=${gamemode}
|
||||
enable-command-block=false
|
||||
enable-query=false
|
||||
generator-settings=
|
||||
level-name=${level_name}
|
||||
motd=${description_name}
|
||||
query.port=${server_port}
|
||||
pvp=true
|
||||
generate-structures=true
|
||||
difficulty=${difficulty}
|
||||
network-compression-threshold=256
|
||||
max-tick-time=60000
|
||||
max-players=${max_players}
|
||||
use-native-transport=true
|
||||
online-mode=${online_mode}
|
||||
enable-status=true
|
||||
allow-flight=false
|
||||
broadcast-rcon-to-ops=true
|
||||
view-distance=32
|
||||
max-build-height=256
|
||||
server-ip=
|
||||
allow-nether=true
|
||||
server-port=${server_port}
|
||||
enable-rcon=${allow_cheats}
|
||||
sync-chunk-writes=true
|
||||
op-permission-level=4
|
||||
prevent-proxy-connections=false
|
||||
resource-pack=
|
||||
entity-broadcast-range-percentage=100
|
||||
rcon.password=25as65d3
|
||||
player-idle-timeout=0
|
||||
force-gamemode=false
|
||||
rate-limit=0
|
||||
hardcore=false
|
||||
white-list=${white_list}
|
||||
broadcast-console-to-ops=true
|
||||
spawn-npcs=true
|
||||
spawn-animals=true
|
||||
snooper-enabled=true
|
||||
function-permission-level=2
|
||||
level-type=default
|
||||
text-filtering-config=
|
||||
spawn-monsters=true
|
||||
enforce-whitelist=false
|
||||
resource-pack-sha1=
|
||||
spawn-protection=16
|
||||
max-world-size=29999984
|
||||
#
|
||||
# Created on Bds-Manager by Sirherobrine23`
|
||||
|
||||
// console.log(config_file_content);
|
||||
fs.writeFileSync(Server_Config, config_file_content);
|
||||
return config_file_content};
|
||||
|
||||
function bds_get_config(){
|
||||
var fs = require("fs");
|
||||
const propertiesToJSON = require("properties-to-json");
|
||||
if (localStorage.getItem("bds_edititon") === 'java')
|
||||
var Server_Config = `${require("../index").bds_dir_java}/server.properties`
|
||||
else
|
||||
var Server_Config = `${require("../index").bds_dir_bedrock}/server.properties`
|
||||
const inGET = fs.readFileSync(Server_Config, "utf8").replaceAll("-","_");
|
||||
return propertiesToJSON(inGET);
|
||||
};
|
||||
module.exports.config_example = () =>{
|
||||
const example = `{
|
||||
"name": "java"
|
||||
"description": "Hello Works"
|
||||
"gamemode": "survival"
|
||||
"difficulty": "hard"
|
||||
"cheats": false
|
||||
"players": 100
|
||||
"xbox": true
|
||||
"white_list": false
|
||||
"port": 19132
|
||||
"port6": 19133
|
||||
"player_permission": "member"
|
||||
}`
|
||||
return example
|
||||
}
|
||||
module.exports.config = bds_config
|
||||
module.exports.get_config = bds_get_config
|
@ -1,10 +0,0 @@
|
||||
module.exports.bds_detect = () => {
|
||||
var spawn = require("child_process").execSync;
|
||||
if (process.platform == "win32") {
|
||||
var killbds = spawn(`tasklist /fi "imagename eq server.jar" | find /i "server.jar" > nul & if not errorlevel 1 (echo 0) else (echo 1)`);
|
||||
} else if (process.platform == "linux") {
|
||||
var killbds = spawn(`ps aux|grep "jar server.jar"|grep -v 'grep'|grep -q "jar server.jar";echo $?`, {shell: true});
|
||||
}
|
||||
//
|
||||
if (killbds == 0){return true} else {return false};
|
||||
};
|
@ -1,27 +0,0 @@
|
||||
module.exports = (Vdown) => {
|
||||
console.warn("Do not exit BDS Manager")
|
||||
const bds = require('../index')
|
||||
fetch("https://raw.githubusercontent.com/Bds-Maneger/Raw_files/main/Server.json").then(response => response.json()).then(versions => {
|
||||
var versions_get = versions.java[Vdown].url
|
||||
var mine_name = `server.jar`
|
||||
|
||||
console.log("Starting download")
|
||||
const exec = require("child_process").exec
|
||||
localStorage.setItem("bds_server_version", Vdown);
|
||||
var downloadBDSchild = exec(`curl ${versions_get} --output ${mine_name}`, {
|
||||
cwd: `${bds.bds_dir_java}`
|
||||
});
|
||||
downloadBDSchild.stdout.on("data", function(data){
|
||||
console.log(data)
|
||||
})
|
||||
downloadBDSchild.on("exit", function (code) {
|
||||
if (code === 0) {
|
||||
console.log(`Download zip file success`);
|
||||
localStorage.setItem("Downlaod_sucess", "yes")
|
||||
} else {
|
||||
localStorage.setItem("Download_sucess", "no")
|
||||
throw new error(`Could not download`);
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
25
java/kill.js
25
java/kill.js
@ -1,25 +0,0 @@
|
||||
function bds_kill() {
|
||||
var spawn = require("child_process").exec;
|
||||
const Storage = localStorage
|
||||
if (require("./detect_bds").bds_detect()){
|
||||
|
||||
if (process.platform == "win32") {
|
||||
var killbds = spawn(`tasklist /fi "imagename eq server.jar" | find /i "server.jar" > nul & if not errorlevel 1 (taskkill /f /im "server.jar" > nul && exit 0) else (exit 1)`);
|
||||
} else if (process.platform == "linux") {
|
||||
var killbds = spawn(`kill $(ps aux|grep -v "grep"|grep "server.jar"|awk '{print $2}')`, {shell: true});
|
||||
};
|
||||
|
||||
killbds.on("exit", function () {
|
||||
killbds.stdin.end();
|
||||
});
|
||||
Storage.setItem("bds_status", false);
|
||||
return true
|
||||
} else {
|
||||
Storage.setItem("bds_status", false);
|
||||
return false
|
||||
};
|
||||
};
|
||||
|
||||
module.exports = {
|
||||
bds_kill: bds_kill
|
||||
};
|
@ -1,33 +0,0 @@
|
||||
module.exports.Server_start = () => {
|
||||
const bds = require("../index")
|
||||
const Storage = localStorage;
|
||||
var exec = require("child_process").exec;
|
||||
if (!(bds.detect())){
|
||||
if (require('command-exists').sync('java')){
|
||||
var serverstated = exec(`java -jar server.jar nogui`, {cwd: bds.bds_dir_java});
|
||||
} else {
|
||||
if (bds.system == 'windows'){require('open')("http://docs.sirherobrine23.com/bds_maneger_api_java#Windows");console.log("http://docs.sirherobrine23.com/bds_maneger_api_java#Windows")}else if (bds.system === 'linux'){require('open')("http://docs.sirherobrine23.com/bds_maneger_api_java#Linux");console.log("http://docs.sirherobrine23.com/bds_maneger_api_java#Linux")} else {require('open')("http://docs.sirherobrine23.com/bds_maneger_api_java");console.log("http://docs.sirherobrine23.com/bds_maneger_api_java")}
|
||||
}
|
||||
var logConsoleStream = require("fs").createWriteStream(bds.log_file, {flags: "a"});
|
||||
Storage.setItem("old_log_file", bds.log_file)
|
||||
serverstated.stdout.pipe(logConsoleStream);
|
||||
serverstated.stdout.on("data", function(data){
|
||||
if (data.includes("agree", "EULA")){
|
||||
const path = require('path');
|
||||
require('open')("https://account.mojang.com/documents/minecraft_eula");
|
||||
require('fs').writeFileSync(path.join(bds.bds_dir_java, "eula.txt"), "eula=true")
|
||||
setTimeout(() => {
|
||||
process.exit(0)
|
||||
}, 1000);
|
||||
}
|
||||
})
|
||||
if (typeof bds_log_string !== "undefined"){delete(bds_log_string)}
|
||||
serverstated.stdout.on("data", function(data){global.bds_log_string += data})
|
||||
Storage.setItem("bds_status", true);
|
||||
global.bds_server_string = serverstated;
|
||||
return serverstated;
|
||||
} else {
|
||||
console.warn(`You already have a server running`);
|
||||
return `You already have a server running`;
|
||||
}
|
||||
}
|
81
new_script/backups.js
Normal file
81
new_script/backups.js
Normal file
@ -0,0 +1,81 @@
|
||||
module.exports.World_BAckup = () => {
|
||||
const bds = require('../index')
|
||||
const path = require("path")
|
||||
const java_pro = require("properties-to-json")
|
||||
const fs = require("fs")
|
||||
var AdmZip = require("adm-zip");
|
||||
|
||||
var today = bds.date()
|
||||
const name = path.join(bds.backup_folder ,`bds_backup_World_${today}.zip`)
|
||||
if (bds.platform === "bedrock"){
|
||||
var dir_zip = path.join(bds_dir_bedrock, "worlds") //`${require("../index").}/worlds/`
|
||||
} else {
|
||||
const world_name = JSON.parse(java_pro(fs.readFileSync(path.join(bds.bds_dir_java, "server.properties"), "utf-8").replaceAll("-", "_"))).level_name
|
||||
var dir_zip = path.join(bds.bds_dir_java, world_name) //`${require("../index").bds_dir_bedrock}/${world_name}/`
|
||||
}
|
||||
/**
|
||||
* Before we can start it is good for the server not to have a Corrupted Backup
|
||||
* this is only necessary once after the server has started manually
|
||||
*/
|
||||
if (bds.bds_detect()){bds.stop()}
|
||||
var zip = new AdmZip();
|
||||
zip.addLocalFolder(dir_zip);
|
||||
zip.addZipComment(`Backup zip file in ${today}. \nBackup made to ${process.platform}, Free and open content for all\n\nSirherobrine23© By Bds Maneger.`);
|
||||
var zipEntries = zip.getEntries();
|
||||
zipEntries.forEach(function (zipEntry) {
|
||||
console.log(zipEntry.entryName.toString());
|
||||
});
|
||||
zip.writeZip(name);
|
||||
return {
|
||||
path: name,
|
||||
world_path: dir_zip
|
||||
}
|
||||
};
|
||||
|
||||
module.exports.Drive_backup = () => {
|
||||
const bds = require('../index')
|
||||
const path = require("path")
|
||||
const java_pro = require("properties-to-json")
|
||||
const fs = require("fs")
|
||||
var AdmZip = require("adm-zip");
|
||||
|
||||
var today = bds.date()
|
||||
const name = path.join(bds.backup_folder ,`bds_backup_World_${today}.zip`)
|
||||
if (bds.platform === "bedrock"){
|
||||
var dir_zip = path.join(bds.bds_dir_bedrock, "worlds") //`${require("../index").}/worlds/`
|
||||
} else {
|
||||
const world_name = JSON.parse(java_pro(fs.readFileSync(path.join(bds.bds_dir_java, "server.properties"), "utf-8").replaceAll("-", "_"))).level_name
|
||||
var dir_zip = path.join(bds.bds_dir_java, world_name) //`${require("../index").bds_dir_bedrock}/${world_name}/`
|
||||
}
|
||||
/**
|
||||
* Before we can start it is good for the server not to have a Corrupted Backup
|
||||
* this is only necessary once after the server has started manually
|
||||
*/
|
||||
if (bds.bds_detect()){bds.stop()}
|
||||
global.status_b = true
|
||||
var zip = new AdmZip();
|
||||
zip.addLocalFolder(dir_zip);
|
||||
zip.addZipComment(`Backup zip file in ${today}. \nBackup made to ${process.platform}, Free and open content for all\n\nSirherobrine23© By Bds Maneger.`);
|
||||
var zipEntries = zip.getEntries();
|
||||
var totalfiles = zipEntries.length
|
||||
zipEntries.forEach(function(zipEntry) {
|
||||
totalfiles--
|
||||
console.log(totalfiles)
|
||||
if (totalfiles === 0){
|
||||
status_b = false
|
||||
}
|
||||
});
|
||||
zip.writeZip(name);
|
||||
let es = 0;
|
||||
for(es == "-0";es++;){
|
||||
if (!(status_b)) break
|
||||
}
|
||||
delete(status_b)
|
||||
const js_ = {
|
||||
"file_path": name,
|
||||
"file_name": `bds_backup_World_${today}.zip`,
|
||||
"id": undefined
|
||||
}
|
||||
return js_
|
||||
};
|
||||
|
78
new_script/basic_server.js
Normal file
78
new_script/basic_server.js
Normal file
@ -0,0 +1,78 @@
|
||||
module.exports.start = () => {
|
||||
const bds = require("../index")
|
||||
const Storage = localStorage;
|
||||
const exec = require("child_process").exec;
|
||||
const fs = require('fs')
|
||||
|
||||
|
||||
if (!(bds.detect())){
|
||||
const plat = bds.platform
|
||||
if (plat === "bedrock"){
|
||||
if (process.platform == "win32"){
|
||||
var start_server = exec(`bedrock_server.exe`, {cwd: bds.bds_dir_bedrock});
|
||||
} else if (process.platform == "linux"){
|
||||
var start_server = exec(`chmod 777 bedrock_server && ./bedrock_server`, {env: {PATH: process.env.PATH, LD_LIBRARY_PATH: bds.bds_dir_bedrock}, cwd: bds.bds_dir_bedrock});
|
||||
} else {
|
||||
process.exit(210)
|
||||
}
|
||||
} else {
|
||||
if (require('command-exists').sync('java')){
|
||||
var start_server = exec(`java -jar server.jar nogui`, {cwd: bds.bds_dir_java});
|
||||
} else {
|
||||
if (bds.system == 'windows'){
|
||||
require('open')("http://docs.sirherobrine23.com/bds_maneger_api_java#Windows");
|
||||
console.log("http://docs.sirherobrine23.com/bds_maneger_api_java#Windows")
|
||||
} else if (bds.system === 'linux'){
|
||||
require('open')("http://docs.sirherobrine23.com/bds_maneger_api_java#Linux");
|
||||
console.log("http://docs.sirherobrine23.com/bds_maneger_api_java#Linux")
|
||||
} else {
|
||||
require('open')("http://docs.sirherobrine23.com/bds_maneger_api_java");
|
||||
console.log("http://docs.sirherobrine23.com/bds_maneger_api_java")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var logConsoleStream = require("fs").createWriteStream(bds.log_file, {flags: "a"});
|
||||
Storage.setItem("old_log_file", bds.log_file)
|
||||
start_server.stdout.pipe(logConsoleStream);
|
||||
start_server.stdout.on("data", function(data){
|
||||
if (data.includes("agree", "EULA")){
|
||||
const path = require('path');
|
||||
require('open')("https://account.mojang.com/documents/minecraft_eula");
|
||||
const eula_file = path.join(bds.bds_dir_java, "eula.txt")
|
||||
const eula_make_true = fs.readFileSync(eula_file, "utf-8").replace("eula=false", "eula=true")
|
||||
fs.writeFileSync(eula_file, eula_make_true)
|
||||
const node_detect = process.argv[0]
|
||||
if (node_detect.includes('node')){
|
||||
console.warn(`Ending the process`)
|
||||
setTimeout(() => {
|
||||
process.exit(0)
|
||||
}, 1000);
|
||||
}
|
||||
}
|
||||
})
|
||||
if (typeof bds_log_string !== "undefined"){delete(bds_log_string)}
|
||||
start_server.stdout.on("data", function(data){global.bds_log_string += data})
|
||||
Storage.setItem("bds_status", true);
|
||||
global.bds_server_string = start_server;
|
||||
return start_server;
|
||||
} else {
|
||||
console.warn(`You already have a server running`);
|
||||
return `You already have a server running`;
|
||||
}
|
||||
}
|
||||
module.exports.stop = () => {
|
||||
if (typeof bds_server_string == "undefined"){
|
||||
const detect = process.argv[0];
|
||||
if (detect.includes('electron')) alert("The server is stopped!");
|
||||
else console.log("The server is stopped!");
|
||||
} else {
|
||||
bds_server_string.stdin.write("stop\n");
|
||||
bds_server_string.stdout.on("data", function (data){
|
||||
if (data.includes("Quit correctly")){
|
||||
localStorage.setItem("bds_status", false)
|
||||
};
|
||||
});
|
||||
};
|
||||
return
|
||||
}
|
88
new_script/bds_download.js
Normal file
88
new_script/bds_download.js
Normal file
@ -0,0 +1,88 @@
|
||||
module.exports = (Vdown) => {
|
||||
console.warn("Do not exit BDS Manager")
|
||||
const bds = require('../index')
|
||||
|
||||
fetch("https://raw.githubusercontent.com/Bds-Maneger/Raw_files/main/Server.json").then(response => response.json()).then(versions => {
|
||||
if (bds.platform === "bedrock"){
|
||||
const system = bds.system
|
||||
var mine_name = `bedrock.zip`
|
||||
var server_DIR = bds.bds_dir_bedrock;
|
||||
if (system === 'linux'){
|
||||
var versions_get = versions.bedrock[Vdown].url_linux;
|
||||
} else {
|
||||
var versions_get = versions.bedrock[Vdown].url_windows;
|
||||
}
|
||||
|
||||
console.log("Starting download")
|
||||
const exec = require("child_process").exec
|
||||
localStorage.setItem("bds_server_version", Vdown);
|
||||
var downloadBDSchild = exec(`curl ${versions_get} --output ${mine_name}`, {
|
||||
cwd: `${bds.tmp_dir}`
|
||||
});
|
||||
var ZIP_FILE_PATH = `${bds.tmp_dir}/${mine_name}`;
|
||||
downloadBDSchild.stdout.on("data", function(data){
|
||||
console.log(data)
|
||||
})
|
||||
downloadBDSchild.on("exit", function (code) {
|
||||
if (code === 0) {
|
||||
console.log(`Download zip file success`);
|
||||
|
||||
var AdmZip = require("adm-zip");
|
||||
const fs = require("fs")
|
||||
if (fs.existsSync(`${server_DIR}/server.properties`)){var _old = true;var old1 = fs.readFileSync(`${server_DIR}/server.properties`, "utf-8");}
|
||||
if (fs.existsSync(`${server_DIR}/permissions.json`)){var _old2 = true;var old2 = fs.readFileSync(`${server_DIR}/permissions.json`, "utf-8");}
|
||||
if (fs.existsSync(`${server_DIR}/whitelist.json`)) {var _old3 = true;var old3 = fs.readFileSync(`${server_DIR}/whitelist.json`, "utf-8");}
|
||||
if (fs.existsSync(`${server_DIR}/valid_known_packs.json`)){var _old4 = true;var old4 = fs.readFileSync(`${server_DIR}/valid_known_packs.json`, "utf-8");};
|
||||
// Unzip
|
||||
var zip = new AdmZip(ZIP_FILE_PATH);
|
||||
var zipEntries = zip.getEntries();
|
||||
var totalfiles = zipEntries.length
|
||||
zipEntries.forEach(function(zipEntry) {
|
||||
totalfiles--
|
||||
if (totalfiles === 0){
|
||||
if (_old){fs.writeFileSync(`${server_DIR}/server.properties`, old1);}
|
||||
if (_old2){fs.writeFileSync(`${server_DIR}/permissions.json`, old2);}
|
||||
if (_old3){fs.writeFileSync(`${server_DIR}/whitelist.json`, old3);}
|
||||
if (_old4){fs.writeFileSync(`${server_DIR}/valid_known_packs.json`, old4);};
|
||||
const docker_exit = process.env.BDS_DOCKER_IMAGE
|
||||
console.log(docker_exit)
|
||||
if (docker_exit == "true"){
|
||||
console.log(`going out`)
|
||||
process.exit(0)
|
||||
}
|
||||
}
|
||||
});
|
||||
zip.extractAllTo(server_DIR, true);
|
||||
console.log("Downlod Sucess"); // End Unzip
|
||||
localStorage.setItem("Downlaod_sucess", "yes")
|
||||
} else {
|
||||
localStorage.setItem("Download_sucess", "no")
|
||||
throw new error(`Could not download`);
|
||||
}
|
||||
})
|
||||
} else {
|
||||
var versions_get = versions.java[Vdown].url
|
||||
var mine_name = `server.jar`
|
||||
|
||||
console.log("Starting download")
|
||||
const exec = require("child_process").exec
|
||||
localStorage.setItem("bds_server_version", Vdown);
|
||||
var downloadBDSchild = exec(`curl ${versions_get} --output ${mine_name}`, {
|
||||
cwd: `${bds.bds_dir_java}`
|
||||
});
|
||||
downloadBDSchild.stdout.on("data", function(data){
|
||||
console.log(data)
|
||||
})
|
||||
downloadBDSchild.on("exit", function (code) {
|
||||
if (code === 0) {
|
||||
console.log(`Download zip file success`);
|
||||
localStorage.setItem("Downlaod_sucess", "yes")
|
||||
} else {
|
||||
localStorage.setItem("Download_sucess", "no")
|
||||
throw new error(`Could not download`);
|
||||
}
|
||||
})
|
||||
}
|
||||
// ---------------------------------------------------------
|
||||
})
|
||||
}
|
178
new_script/bds_settings.js
Normal file
178
new_script/bds_settings.js
Normal file
@ -0,0 +1,178 @@
|
||||
function bds_config(json_config){
|
||||
const bds = require("../index")
|
||||
const path = require("path")
|
||||
var fs = require("fs")
|
||||
|
||||
if (bds.platform === 'java') var Server_Config = path.join(bds.bds_dir_java, "server.properties");
|
||||
else var Server_Config = path.join(bds.bds_dir_bedrock, "server.properties");
|
||||
|
||||
const cpuCount = require("os").cpus().length;
|
||||
|
||||
if (2 < cpuCount - 2) var CPU = cpuCount - 2;
|
||||
else var CPU = cpuCount;
|
||||
|
||||
if (json_config.includes(".json")){
|
||||
var config = JSON.parse(fs.readFileSync(json_config, "utf8"))
|
||||
} else var config = JSON.parse(json_config)
|
||||
|
||||
if (config.description == undefined) var description_name = `Dedicated Server`;
|
||||
else var description_name = config.description;
|
||||
|
||||
// Level Name
|
||||
if (config.name == undefined) var level_name = `Bedrock level`;
|
||||
else var level_name = config.name;
|
||||
|
||||
// gamemode
|
||||
if (config.gamemode == undefined) var gamemode = `survival`;
|
||||
else var gamemode = config.gamemode;
|
||||
|
||||
// Difficulty
|
||||
if (config.difficulty == undefined) var difficulty = `easy`;
|
||||
else var difficulty = config.difficulty;
|
||||
|
||||
// cheats
|
||||
if (config.cheats == undefined) var allow_cheats = false;
|
||||
else var allow_cheats = config.cheats;
|
||||
|
||||
// Maximo de Jogadores
|
||||
if (config.players == undefined) var max_players = 10;
|
||||
else var max_players = config.players;
|
||||
|
||||
// Xbox authentication outside the internal network
|
||||
if (config.xbox == undefined) var online_mode = true;
|
||||
else var online_mode = config.xbox;
|
||||
|
||||
// Whitelist
|
||||
if (config.white_list == undefined){var white_list = false;} else {var white_list = config.white_list;};
|
||||
|
||||
// Server Port IPv4
|
||||
if (config.port == undefined){var server_port = 19132;} else {var server_port = config.port;};
|
||||
|
||||
// Server Port IPv6
|
||||
if (config.port6 == undefined){var server_portv6 = 19133;} else {var server_portv6 = config.port6;};
|
||||
|
||||
// Default player permission
|
||||
if (config.player_permission == undefined) var player_permission = `member`;
|
||||
else var player_permission = config.player_permission;
|
||||
|
||||
if (2 >= cpuCount) var tick = 2 ;
|
||||
else if (4 >= cpuCount) var tick = 4;
|
||||
else if (6 >= cpuCount) var tick = 6;
|
||||
else if (8 >= cpuCount) var tick = 8;
|
||||
else if (10 >= cpuCount) var tick = 10;
|
||||
else var tick = 12
|
||||
|
||||
/*Save Files*/
|
||||
if (bds.platform === 'bedrock'){
|
||||
var config_file_content = `server-name=${description_name}
|
||||
gamemode=${gamemode}
|
||||
difficulty=${difficulty}
|
||||
allow-cheats=${allow_cheats}
|
||||
max-players=${max_players}
|
||||
online-mode=${online_mode}
|
||||
white-list=${white_list}
|
||||
server-port=${server_port}
|
||||
server-portv6=${server_portv6}
|
||||
view-distance=32
|
||||
tick-distance=${tick}
|
||||
player-idle-timeout=0
|
||||
max-threads=${CPU}
|
||||
level-name=${level_name}
|
||||
level-seed=
|
||||
default-player-permission-level=${player_permission}
|
||||
texturepack-required=true
|
||||
content-log-file-enabled=false
|
||||
compression-threshold=1
|
||||
server-authoritative-movement=server-auth
|
||||
player-movement-score-threshold=20
|
||||
player-movement-distance-threshold=0.3
|
||||
player-movement-duration-threshold-in-ms=500
|
||||
correct-player-movement=false
|
||||
|
||||
# Created on Bds-Manager by Sirherobrine23`
|
||||
|
||||
} else {
|
||||
var config_file_content = `enable-jmx-monitoring=false
|
||||
rcon.port=25575
|
||||
level-seed=
|
||||
gamemode=${gamemode}
|
||||
enable-command-block=${allow_cheats}
|
||||
enable-query=true
|
||||
generator-settings=
|
||||
level-name=${level_name}
|
||||
motd=${description_name}
|
||||
query.port=${server_port}
|
||||
pvp=true
|
||||
generate-structures=true
|
||||
difficulty=${difficulty}
|
||||
network-compression-threshold=256
|
||||
max-tick-time=60000
|
||||
max-players=${max_players}
|
||||
use-native-transport=true
|
||||
online-mode=${online_mode}
|
||||
enable-status=true
|
||||
allow-flight=false
|
||||
broadcast-rcon-to-ops=true
|
||||
view-distance=32
|
||||
max-build-height=256
|
||||
server-ip=
|
||||
allow-nether=true
|
||||
server-port=${server_port}
|
||||
enable-rcon=${allow_cheats}
|
||||
sync-chunk-writes=true
|
||||
op-permission-level=4
|
||||
prevent-proxy-connections=false
|
||||
resource-pack=
|
||||
entity-broadcast-range-percentage=100
|
||||
rcon.password=25as65d3
|
||||
player-idle-timeout=0
|
||||
force-gamemode=false
|
||||
rate-limit=0
|
||||
hardcore=false
|
||||
white-list=${white_list}
|
||||
broadcast-console-to-ops=true
|
||||
spawn-npcs=true
|
||||
spawn-animals=true
|
||||
snooper-enabled=true
|
||||
function-permission-level=2
|
||||
level-type=default
|
||||
text-filtering-config=
|
||||
spawn-monsters=true
|
||||
enforce-whitelist=false
|
||||
resource-pack-sha1=
|
||||
spawn-protection=16
|
||||
max-world-size=29999984
|
||||
#
|
||||
# Created on Bds-Manager by Sirherobrine23`
|
||||
}
|
||||
// console.log(config_file_content);
|
||||
fs.writeFileSync(Server_Config, config_file_content);
|
||||
return `success`
|
||||
};
|
||||
function bds_get_config(){
|
||||
var fs = require("fs");
|
||||
const path = require("path")
|
||||
const bds = require("../index")
|
||||
const propertiesToJSON = require("properties-to-json");
|
||||
|
||||
if (bds.platform === "bedrock") var config_path = path.join(bds.bds_dir_bedrock, "server.properties")
|
||||
else var config_path = path.join(bds.bds_dir_java, "server.properties")
|
||||
return propertiesToJSON(fs.readFileSync(config_path, "utf8").replaceAll("-","_"));
|
||||
}
|
||||
module.exports.config_example = () =>{
|
||||
return {
|
||||
name: "Bedrock our Java",
|
||||
description: "BDS Maneger",
|
||||
gamemode: "survival",
|
||||
difficulty: "normal",
|
||||
player_permission: "member",
|
||||
xbox: true,
|
||||
white_list: false,
|
||||
cheats: false,
|
||||
players: 100,
|
||||
port: 19132,
|
||||
port6: 19133
|
||||
}
|
||||
}
|
||||
module.exports.config = bds_config
|
||||
module.exports.get_config = bds_get_config
|
20
new_script/detect.js
Normal file
20
new_script/detect.js
Normal file
@ -0,0 +1,20 @@
|
||||
module.exports = () => {
|
||||
var spawn = require("child_process").execSync;
|
||||
const bds = require("../index")
|
||||
|
||||
if (bds.platform === "bedrock"){
|
||||
if (process.platform == "win32") {
|
||||
var killbds = spawn(`tasklist /fi "imagename eq server.jar" | find /i "server.jar" > nul & if not errorlevel 1 (echo 0) else (echo 1)`);
|
||||
} else if (process.platform == "linux") {
|
||||
var killbds = spawn(`ps aux|grep "jar server.jar"|grep -v 'grep'|grep -q "jar server.jar";echo $?`, {shell: true});
|
||||
}
|
||||
} else {
|
||||
if (process.platform == "win32") {
|
||||
var killbds = spawn(`tasklist /fi "imagename eq bedrock_server.exe" | find /i "bedrock_server.exe" > nul & if not errorlevel 1 (echo 0) else (echo 1)`);
|
||||
} else if (process.platform == "linux") {
|
||||
var killbds = spawn(`ps aux|grep -v "grep"|grep "bedrock_server"|grep -q "bedrock_server";echo $?`, {shell: true});
|
||||
}
|
||||
}
|
||||
//
|
||||
if (killbds == 0){return true} else {return false};
|
||||
};
|
25
new_script/kill_server.js
Normal file
25
new_script/kill_server.js
Normal file
@ -0,0 +1,25 @@
|
||||
module.exports = () => {
|
||||
const bds = require("../index")
|
||||
var spawn = require("child_process").exec;
|
||||
const Storage = localStorage
|
||||
if (bds.bds_detect()){
|
||||
if (bds.platform === "bedrock"){
|
||||
if (process.platform == "win32") var killbds = spawn(`tasklist /fi "imagename eq bedrock_server.exe" | find /i "bedrock_server.exe" > nul & if not errorlevel 1 (taskkill /f /im "bedrock_server.exe" > nul && exit 0) else (exit 1)`);
|
||||
else if (process.platform == "linux") var killbds = spawn(`kill $(ps aux|grep -v "grep"|grep "bedrock_server"|awk '{print $2}')`, {shell: true});
|
||||
} else {
|
||||
if (process.platform == "win32") {
|
||||
var killbds = spawn(`tasklist /fi "imagename eq server.jar" | find /i "server.jar" > nul & if not errorlevel 1 (taskkill /f /im "server.jar" > nul && exit 0) else (exit 1)`);
|
||||
} else if (process.platform == "linux") {
|
||||
var killbds = spawn(`kill $(ps aux|grep -v "grep"|grep "server.jar"|awk '{print $2}')`, {shell: true});
|
||||
}
|
||||
}
|
||||
killbds.on("exit", function () {
|
||||
killbds.stdin.end();
|
||||
});
|
||||
Storage.setItem("bds_status", false);
|
||||
return true
|
||||
} else {
|
||||
Storage.setItem("bds_status", false);
|
||||
return false
|
||||
};
|
||||
};
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "bds_maneger_api",
|
||||
"version": "1.3.0",
|
||||
"version": "1.4.0",
|
||||
"description": "scripts to manage minecraft bedrock server",
|
||||
"private": false,
|
||||
"main": "index.js",
|
||||
|
Reference in New Issue
Block a user