blob: 0446559eaf55480a516d44206c389f64ddb3e13a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
import * as fs from 'fs';
import {LogManager} from "./core/LogManager";
import {CoolerPony} from "./core/CoolerPony";
global.data = {};
let lastSaveData = "{}";
if (fs.existsSync("./data/database.json")) {
global.data = JSON.parse(fs.readFileSync("./data/database.json").toString());
lastSaveData = fs.readFileSync("./data/database.json").toString();
}
setInterval(() => {
if (lastSaveData !== JSON.stringify(global.data)) {
fs.writeFileSync("./data/database.json", JSON.stringify(global.data));
lastSaveData = JSON.stringify(global.data);
}
});
if (!global.data.managedChannels) {
global.data.managedChannels = [];
}
global.version = (fs.existsSync("./.git/refs/heads/mane") ? fs.readFileSync("./.git/refs/heads/mane").toString().trim().substring(0, 8) : (fs.existsSync("../.git/refs/heads/mane") ? fs.readFileSync("../.git/refs/heads/mane").toString().trim().substring(0, 8) : (fs.existsSync("./version.txt") ? fs.readFileSync("./version.txt").toString().trim() : (fs.existsSync("../version.txt") ? fs.readFileSync("../version.txt").toString().trim() : "live"))));
global.build = (fs.existsSync("./build.txt") ? fs.readFileSync("./build.txt").toString().trim() : (fs.existsSync("../build.txt") ? fs.readFileSync("../build.txt").toString().trim() : "dev"));
function restart() {
if (fs.existsSync("./data/lastRestart") && new Date().getTime() - new Date(fs.readFileSync("./data/lastRestart").toString()).getTime() < 60000) {
LogManager.error("Restart cancelled: too close to another restart, try again in a few seconds.");
fs.rmSync("./RESTART", {recursive: true});
} else {
fs.rmSync("./RESTART", {recursive: true});
fs.writeFileSync("./data/lastRestart", new Date().toISOString());
LogManager.warn("Restart requested.");
process.exit(14);
}
}
async function restartManager() {
if (fs.existsSync("./RESTART-FORCE")) {
fs.rmSync("./RESTART-FORCE", {recursive: true});
LogManager.warn("Force restart requested.");
process.exit(14);
}
if (fs.existsSync("./RESTART")) {
restart();
}
}
setInterval(restartManager, 500);
global.systemRoot = __dirname;
if (!fs.existsSync("data")) fs.mkdirSync("data");
let token = "";
if (fs.existsSync("token.txt")) token = fs.readFileSync("token.txt").toString().trim();
else if (fs.existsSync("../token.txt")) token = fs.readFileSync("../token.txt").toString().trim();
else {
LogManager.error("Cannot find token in the expected places (" + __dirname + "/token.txt or " + __dirname.split("/").splice(__dirname.split("/").length - 1, 1).join("/") + "/token.txt");
process.exit(1);
}
LogManager.verbose("Starting Discord bot...");
new CoolerPony(token);
|