init
This commit is contained in:
commit
8c889222ce
10 changed files with 4525 additions and 0 deletions
74
db.js
Normal file
74
db.js
Normal file
|
@ -0,0 +1,74 @@
|
|||
import sqlite3 from 'sqlite3'
|
||||
import { open } from 'sqlite'
|
||||
import { mkdir, access } from 'node:fs/promises';
|
||||
|
||||
let db;
|
||||
|
||||
const FILE_DIRS = [
|
||||
'/db',
|
||||
'/db/pfp'
|
||||
]
|
||||
|
||||
async function newDir(dir) {
|
||||
await access(newDir)
|
||||
.then(() => {})
|
||||
.catch(async () => await mkdir(dir, { recursive: true }));
|
||||
}
|
||||
|
||||
async function initFolders() {
|
||||
for (var i = 0; i < FILE_DIRS.length; i++) {
|
||||
await newDir( `${process.cwd()}/${FILE_DIRS[i]}`);
|
||||
}
|
||||
}
|
||||
|
||||
async function initDb() {
|
||||
if (db) return db;
|
||||
|
||||
await initFolders();
|
||||
|
||||
db = await open({
|
||||
filename: `${process.cwd()}/db/main.db`,
|
||||
driver: sqlite3.Database
|
||||
});
|
||||
|
||||
await db.run('CREATE TABLE IF NOT EXISTS user ( \
|
||||
username TEXT, \
|
||||
roles INTEGER, \
|
||||
nickname TEXT \
|
||||
)');
|
||||
|
||||
await db.run('CREATE TABLE IF NOT EXISTS tile ( \
|
||||
username CHAR(64), \
|
||||
x INTEGER, \
|
||||
y INTEGER \
|
||||
)');
|
||||
|
||||
await db.run('CREATE TABLE IF NOT EXISTS block ( \
|
||||
status INTEGER, \
|
||||
x INTEGER, \
|
||||
y INTEGER \
|
||||
)');
|
||||
|
||||
await db.run('CREATE TABLE IF NOT EXISTS player ( \
|
||||
username CHAR(64), \
|
||||
score INTEGER, \
|
||||
out INTEGER, \
|
||||
color CHAR(64) \
|
||||
)');
|
||||
|
||||
let blocks = await db.all('SELECT * FROM block');
|
||||
|
||||
if (!blocks || blocks.length == 0) {
|
||||
await db.run('INSERT INTO block (status, x, y) VALUES (0,0,0)');
|
||||
await db.run('INSERT INTO block (status, x, y) VALUES (1,1,0)');
|
||||
await db.run('INSERT INTO block (status, x, y) VALUES (1,-1,0)');
|
||||
await db.run('INSERT INTO block (status, x, y) VALUES (1,0,1)');
|
||||
await db.run('INSERT INTO block (status, x, y) VALUES (1,0,-1)');
|
||||
}
|
||||
|
||||
return db;
|
||||
}
|
||||
|
||||
export {
|
||||
initDb
|
||||
};
|
Loading…
Add table
Add a link
Reference in a new issue