discord-mudlet-map
Version:
This little library helps with Discord bot configuration to provide small Mudlet map fragment images with given location.
45 lines (39 loc) • 1.32 kB
JavaScript
const fs = require("fs");
const { MudletMapReader } = require("mudlet-map-binary-reader");
const { MapReader } = require("mudlet-map-renderer");
const downloadDir = "downloads";
function ensureDirectoryExists(key) {
return new Promise((resolve, reject) => {
fs.access(key, (err) => {
if (err) {
fs.mkdir(key, { recursive: true }, (err) => {
if (!err) {
resolve();
} else {
reject(err);
}
});
} else {
resolve();
}
});
});
}
async function prepareMap(key, provider) {
return ensureDirectoryExists(`./${downloadDir}/${key}`)
.then(() => provider(fs.createWriteStream(`./${downloadDir}/${key}/map.dat`)))
.then(
() =>
new Promise((resolve, reject) => {
let map = MudletMapReader.read(`./${downloadDir}/${key}/map.dat`);
MudletMapReader.export(map, `./${downloadDir}/${key}/`);
let mapData = JSON.parse(fs.readFileSync(`./${downloadDir}/${key}/mapExport.json`));
let mapColors = JSON.parse(fs.readFileSync(`./${downloadDir}/${key}/colors.json`));
let reader = new MapReader(mapData, mapColors);
resolve(reader);
})
);
}
module.exports = {
prepareMap: prepareMap,
};