discord-mudlet-map 0.0.4 → 0.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,10 @@
1
+ # 0.0.7
2
+ - fix map downloader - should prevent attempts to read map before stream finishes writes, thus failing to read map
3
+ - move configuration loop into bot-configurator.js
4
+ # 0.0.6
5
+ - remove debug messages
6
+ # 0.0.5
7
+ - Use limitting function for generating area image
1
8
  # 0.0.4
2
9
  - Update dependencies
3
10
  # 0.0.3
package/README.md CHANGED
@@ -16,6 +16,7 @@ let config = {
16
16
  Achaea: {
17
17
  locationExtractor: LocationResolvers.plainRegexp("!achaea (\\d+)"),
18
18
  provider: MapProviders.retryingDownloader("https://raw.githubusercontent.com/IRE-Mudlet-Mapping/AchaeaCrowdmap/gh-pages/Map/map", { retries: 5, delay : 10000 }) },
19
+ renderFragment: true, // renders just area around location, should improve generation times for bigger areas
19
20
  settings: {
20
21
  isRound: true
21
22
  } // Reffer to: https://github.com/Delwing/js-mudlet-map-renderer#settings-and-their-default-values
@@ -1,5 +1,4 @@
1
1
  const { Message, Client } = require("discord.js");
2
- const MapResolver = require("../maps/prepare-map");
3
2
  const { Renderer } = require("mudlet-map-renderer");
4
3
  const sharp = require("sharp");
5
4
 
@@ -9,16 +8,7 @@ const sharp = require("sharp");
9
8
  * @param {Message} message
10
9
  */
11
10
  module.exports = (config) => {
12
- Object.keys(config).map(async (key) => {
13
- MapResolver.prepareMap(key, config[key].provider)
14
- .then((reader) => {
15
- config[key].reader = reader;
16
- console.log(`${key} map ready!`);
17
- })
18
- .catch((err) => console.log(err));
19
- });
20
-
21
- return async (message) => {
11
+ return async (message) => {
22
12
  Object.keys(config).forEach((key) => {
23
13
  let element = config[key];
24
14
  let roomId = element.locationExtractor(message.content);
@@ -29,6 +19,15 @@ module.exports = (config) => {
29
19
  return;
30
20
  }
31
21
  let area = reader.getAreaByRoomId(roomId);
22
+ if (element.renderFragment) {
23
+ area = area.limit(roomId, 15)
24
+ if (element.settings == undefined) {
25
+ element.settings = {}
26
+ }
27
+ if (element.settings.areaName == undefined) {
28
+ element.settings.areaName = false;
29
+ }
30
+ }
32
31
  if (!area) {
33
32
  message.channel.send(`${key} - no location ID`);
34
33
  return;
@@ -1,6 +1,6 @@
1
1
  const { Client, version } = require("discord.js");
2
2
  const mapCommand = require("../events/messageCreate");
3
-
3
+ const MapResolver = require("../maps/prepare-map");
4
4
  const major = parseInt(version.substring(0, version.indexOf(".")));
5
5
  const eventName = major >= 13 ? "messageCreate" : "message";
6
6
 
@@ -9,12 +9,23 @@ const eventName = major >= 13 ? "messageCreate" : "message";
9
9
  * @param {Client} client
10
10
  */
11
11
  module.exports = (client, config) => {
12
- client.on(
13
- eventName,
14
- mapCommand(config)
15
- );
12
+ const configurator = () => {
13
+ Object.keys(config).map(async (key) => {
14
+ MapResolver.prepareMap(key, config[key].provider)
15
+ .then((reader) => {
16
+ config[key].reader = reader;
17
+ console.log(`${key} map ready!`);
18
+ })
19
+ .catch((err) => console.log(err));
20
+ });
21
+ };
22
+ configurator();
23
+
24
+ client.on(eventName, mapCommand(config));
25
+
26
+ client.on("ready", () => {
27
+ console.log("Bot enhanced with Mudlet maps ready.");
28
+ });
16
29
 
17
- client.on('ready', () => {
18
- console.log("Bot enhanced with Mudlet maps ready.")
19
- })
30
+ return configurator
20
31
  };
@@ -7,7 +7,10 @@ let downloader = (url) => (writeStream) => {
7
7
  protocol.get(url, function (response) {
8
8
  if (response.statusCode < 400) {
9
9
  response.pipe(writeStream);
10
- response.on("end", () => resolve());
10
+ writeStream.on("finish", () => {
11
+ writeStream.close()
12
+ resolve()
13
+ })
11
14
  response.on("error", (err) => reject(err));
12
15
  } else {
13
16
  reject(new Error(`Can't download map: ${response.statusCode} ${response.statusMessage}`));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "discord-mudlet-map",
3
- "version": "0.0.4",
3
+ "version": "0.0.7",
4
4
  "main": "index.js",
5
5
  "license": "MIT",
6
6
  "keywords": [
@@ -18,16 +18,16 @@
18
18
  },
19
19
  "homepage": "https://github.com/Delwing/discord-mudlet-map#readme",
20
20
  "dependencies": {
21
- "mudlet-map-binary-reader": "^0.0.3",
22
- "mudlet-map-renderer": "^0.0.2",
23
- "sharp": "^0.29.1"
21
+ "mudlet-map-binary-reader": "^0.1.2",
22
+ "mudlet-map-renderer": "^0.0.5",
23
+ "sharp": "^0.30.3"
24
24
  },
25
25
  "peerDependencies": {
26
26
  "discord.js": ">12"
27
27
  },
28
28
  "exports": "./exports.js",
29
29
  "devDependencies": {
30
- "discord.js": "^13.2.0",
31
- "dotenv": "^10.0.0"
30
+ "discord.js": "^13.6.0",
31
+ "dotenv": "^16.0.0"
32
32
  }
33
33
  }