- Added game setting parser/stringifier 📝 - Added skin upload using mojang api 👾 - Added server ping using mcsrvstat.us 🖥️ - Added api and endpoints to the config ⚙️ - Added syscalls for modules 🧩
43 lines
1.6 KiB
JavaScript
43 lines
1.6 KiB
JavaScript
const fs = require("node:fs")
|
|
const path = require("node:path")
|
|
|
|
function parseSettings(settingsFile) {
|
|
const settings = fs.readFileSync(settingsFile, "utf-8").toString().split("\n").filter(line => line.trim() !== "")
|
|
const parseSettings = {}
|
|
for (let i = 0; i < settings.length; i++) {
|
|
const line = settings[i].trim()
|
|
const [key, value] = line.split(":")
|
|
if (key && value) {
|
|
const trimmedValue = value.trim().toLowerCase()
|
|
if (trimmedValue === "true" || trimmedValue === "false") {
|
|
parseSettings[key.trim()] = trimmedValue === "true"
|
|
} else {
|
|
parseSettings[key.trim()] = isNaN(value) ? value.trim() : parseInt(value, 10)
|
|
}
|
|
}
|
|
}
|
|
return parseSettings
|
|
}
|
|
|
|
function stringfySettings(settingsFile) {
|
|
const settingsObject = JSON.parse(fs.readFileSync(settingsFile, "utf-8").toString())
|
|
const settingsArray = []
|
|
if (typeof settingsObject !== "object" || settingsObject === null) {
|
|
throw new Error("Invalid settings object")
|
|
}
|
|
for (const settingKey in settingsObject) {
|
|
if (Object.prototype.hasOwnProperty.call(settingsObject, settingKey)) {
|
|
const settingValue = settingsObject[settingKey]
|
|
if (typeof settingValue === "object" || typeof settingValue === "function" || typeof settingValue === "symbol") {
|
|
throw new Error(`Invalid value for setting "${settingKey}": ${settingValue}`)
|
|
}
|
|
settingsArray.push(`${settingKey}:${settingValue}`)
|
|
}
|
|
}
|
|
return settingsArray.join("\n")
|
|
}
|
|
|
|
module.exports = {
|
|
parseSettings,
|
|
stringfySettings
|
|
} |