discord-mudlet-map 0.1.2 → 0.3.0

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.3.0
2
+ - drop renderFragmentOption
3
+ - add renderArea option
4
+
5
+ # 0.2.0
6
+ - add message creator configuration
7
+
1
8
  # 0.1.2
2
9
  - fix hash search
3
10
 
@@ -11,15 +18,21 @@
11
18
  # 0.0.7
12
19
  - fix map downloader - should prevent attempts to read map before stream finishes writes, thus failing to read map
13
20
  - move configuration loop into bot-configurator.js
21
+
14
22
  # 0.0.6
15
23
  - remove debug messages
24
+
16
25
  # 0.0.5
17
26
  - Use limitting function for generating area image
27
+
18
28
  # 0.0.4
19
29
  - Update dependencies
30
+
20
31
  # 0.0.3
21
32
  - Add way of customizing map rendering settings
33
+
22
34
  # 0.0.2
23
35
  - Fix README example
36
+
24
37
  # 0.0.1
25
38
  - Initial release
package/README.md CHANGED
@@ -16,7 +16,8 @@ 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
+ messageCreator: (key, area, room) => `${key} - ${area.areaName} (${room.id})`,
20
+ renderArea: false, // if missing or false will render part of map around location (recommended), otherwise will render whole area with locaiton marked
20
21
  settings: {
21
22
  isRound: true
22
23
  } // Reffer to: https://github.com/Delwing/js-mudlet-map-renderer#settings-and-their-default-values
@@ -1,47 +1,59 @@
1
- const { Message, Client } = require("discord.js");
1
+ const { Message } = require("discord.js");
2
2
  const { Renderer } = require("mudlet-map-renderer");
3
3
  const sharp = require("sharp");
4
4
 
5
- /**
6
- *
7
- * @param {Client} client
8
- * @param {Message} message
9
- */
5
+ const defaultMessageCreator = function (key, area, room) {
6
+ return `${key} - ${area.areaName}`;
7
+ };
8
+
10
9
  module.exports = (config) => {
11
- return async (message) => {
10
+ /**
11
+ *
12
+ * @param {Message} message
13
+ */
14
+ return async (message) => {
12
15
  Object.keys(config).forEach((key) => {
13
16
  let element = config[key];
17
+ element.renderArea = element.renderArea ?? false;
14
18
  let reader = element.reader;
15
19
  let roomId = element.locationExtractor(message.content, reader);
16
20
  if (roomId) {
17
21
  if (!reader) {
18
- message.channel.send(`${key} - map not ready`);
19
- return;
22
+ message.channel.send(`${key} - map not ready`);
23
+ return;
20
24
  }
21
25
  let area = reader.getAreaByRoomId(roomId);
22
- if (!area) {
26
+ let room = reader.getRoomById(roomId);
27
+ if (!area || !room) {
23
28
  message.channel.send(`${key} - no location ID`);
24
29
  return;
25
30
  }
26
- if (element.renderFragment) {
27
- area = area.limit(roomId, 15)
28
- if (element.settings == undefined) {
29
- element.settings = {}
30
- }
31
- if (element.settings.areaName == undefined) {
32
- element.settings.areaName = false;
33
- }
31
+ if (!element.renderArea) {
32
+ area = area.limit(roomId, 15);
33
+ if (element.settings == undefined) {
34
+ element.settings = {};
35
+ }
36
+ if (element.settings.areaName == undefined) {
37
+ element.settings.areaName = false;
38
+ }
34
39
  }
35
40
  async function render() {
36
- let renderer = new Renderer(null, reader, area, reader.getColors(), element.settings);
41
+ let renderer = new Renderer(
42
+ null,
43
+ reader,
44
+ area,
45
+ reader.getColors(),
46
+ element.settings
47
+ );
37
48
  renderer.renderPosition(roomId);
38
- sharp(Buffer.from(renderer.exportSvg(roomId, 10)))
49
+ sharp(Buffer.from(element.renderArea ? renderer.exportSvg() : renderer.exportSvg(roomId, 10)))
39
50
  .png()
40
51
  .toBuffer()
41
52
  .then((buffer) => {
42
- message.channel.send({content: `${key} - ${area.areaName}`, files:[
43
- { attachment: buffer, name: `${key} - ${roomId}.png` }
44
- ]})
53
+ message.channel.send({
54
+ content: (element.messageCreator || defaultMessageCreator)(key, area, room),
55
+ files: [{ attachment: buffer, name: `${key} - ${roomId}.png` }],
56
+ });
45
57
  })
46
58
  .catch(function (err) {
47
59
  console.log(err);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "discord-mudlet-map",
3
- "version": "0.1.2",
3
+ "version": "0.3.0",
4
4
  "main": "index.js",
5
5
  "license": "MIT",
6
6
  "keywords": [
@@ -19,7 +19,7 @@
19
19
  "homepage": "https://github.com/Delwing/discord-mudlet-map#readme",
20
20
  "dependencies": {
21
21
  "mudlet-map-binary-reader": "^0.5.2",
22
- "mudlet-map-renderer": "^0.0.19",
22
+ "mudlet-map-renderer": "^0.0.25",
23
23
  "sharp": "^0.30.5"
24
24
  },
25
25
  "peerDependencies": {