64 lines
1.7 KiB
JavaScript
64 lines
1.7 KiB
JavaScript
const DataBase = require("better-sqlite3")
|
|
const logger = require("../modules/logger")
|
|
const path = require("node:path")
|
|
|
|
const db = new DataBase(path.join(__dirname, "..", "data", "main.db"))
|
|
|
|
function initDB() {
|
|
db.exec(`
|
|
CREATE TABLE IF NOT EXISTS banned (
|
|
banned_at TEXT DEFAULT CURRENT_TIMESTAMP,
|
|
last_minecraft_uuid TEXT,
|
|
hardware_id TEXT,
|
|
banned_by TEXT,
|
|
remote_ip TEXT,
|
|
reason TEXT
|
|
)`)
|
|
}
|
|
|
|
function banLauncher(last_minecraft_uuid, hardware_id, banned_by, remote_ip, reason) {
|
|
const query = `
|
|
INSERT INTO banned (last_minecraft_uuid, hardware_id, banned_by, remote_ip, reason)
|
|
VALUES (?, ?, ?, ?, ?)
|
|
`
|
|
try {
|
|
const stmt = db.prepare(query)
|
|
const result = stmt.run(last_minecraft_uuid, hardware_id, banned_by, remote_ip, reason)
|
|
return true
|
|
} catch (error) {
|
|
logger.error("[DATABASE] <Ban:Error>")
|
|
logger.error(error)
|
|
return false
|
|
}
|
|
}
|
|
|
|
function unbanLauncher(hardware_id) {
|
|
const sql = `DELETE FROM banned WHERE hardware_id = ?`
|
|
|
|
try {
|
|
const stmt = db.prepare(sql)
|
|
const result = stmt.run(hardware_id)
|
|
|
|
if (result.changes === 0) {
|
|
logger.log("[DATABASE] <Unban:Warn>")
|
|
logger.log(`No launcher with this hwid<${hardware_id}> is banned`)
|
|
}
|
|
return true
|
|
} catch (err) {
|
|
logger.error("[DATABASE] <Unban:Error>")
|
|
logger.error(error)
|
|
}
|
|
}
|
|
|
|
function getBan(hardware_id) {
|
|
const query = 'SELECT * FROM banned WHERE hardware_id = ?'
|
|
const stmt = db.prepare(query)
|
|
return stmt.get(hardware_id)
|
|
}
|
|
|
|
module.exports = {
|
|
initDB,
|
|
getBan,
|
|
banLauncher,
|
|
unbanLauncher
|
|
} |