UNPKG

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
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, };