@boem312/minecraft-server
Version:
A pure JS library to create Minecraft Java 1.16.3 servers
42 lines (34 loc) • 1.08 kB
JavaScript
const CJSON = JSON;
const fs = require('fs');
const path = require('path');
let data =
fs
.readdirSync(path.resolve(__dirname, '../../data/'))
.filter(a => a.endsWith('.json'))
.map(a => path.resolve(__dirname, '../../data/', a));
let cachedData = {};
let lazyData = {};
const dataConverters = {
'items': items => items.map(item => ({
id: item[0],
displayName: item[1],
name: item[2],
maxStackSize: item[3]
}))
};
for (const datum of data) {
const name = datum.split('.js')[0].split('\\').pop().split('/').pop();
Object.defineProperty(lazyData, name, {
configurable: false,
enumerable: true,
get: () => {
if (cachedData[name])
return cachedData[name];
cachedData[name] = CJSON.parse(fs.readFileSync(datum).toString());
if (dataConverters[name])
cachedData[name] = dataConverters[name](cachedData[name]);
return cachedData[name];
}
})
}
module.exports = Object.freeze(lazyData);