wachan
Version:
Simpler way to code baileys.
50 lines (43 loc) • 1.65 kB
JavaScript
const PATH = "./wachan/settings.json";
const fs = require("fs");
const defaultSettings = {
receiveOfflineMessages: true,
defaultBotName: "Wachan",
messageStoreSize: 1000
};
const toolSettings = ["commandPrefixes"]
const settings = {}
loadSettings()
settings.save = saveSettings
function loadSettings() {
if (!fs.existsSync(PATH)) {
console.log(`${PATH} not found. Creating default settings file.`.blue);
fs.mkdirSync("./wachan", { recursive: true });
fs.writeFileSync(PATH, JSON.stringify(defaultSettings, null, 2), { });
}
try {
const data = JSON.parse(fs.readFileSync(PATH).toString())
Object.assign(settings, data);
for (const key in defaultSettings) {
if (settings[key] === undefined) settings[key] = defaultSettings[key]
}
let save = false
for (const key in settings) {
if ((!key in defaultSettings) && (!toolSettings.includes(key))) {
save = true
console.warn(`Warning: Unknown setting "${key}" in ${PATH}. It will be removed.`.yellow);
delete settings[key]
}
}
if (save) settings.saveSettings
} catch {
console.log(`Error reading ${PATH}, creating a new default settings file.`.red);
fs.writeFileSync(PATH, JSON.stringify(defaultSettings, null, 2));
Object.assign(settings, JSON.parse(JSON.stringify(defaultSettings)));
}
return settings;
}
function saveSettings() {
return fs.writeFileSync(PATH, JSON.stringify(settings, null, 2))
}
module.exports = { settings }