From 6f22942cc5197d0d8b14dd227b63615be4f1bcaa Mon Sep 17 00:00:00 2001 From: Hornwitser Date: Fri, 13 Mar 2020 21:37:46 +0100 Subject: [PATCH] Fix incorrect instance lookups in plugins Fix mistaken lookups missing the instance part, or trying to get the id from the removed instance.id property. --- docs/writing-plugins.md | 4 ++-- plugins/statistics_exporter/instance.js | 2 +- test/mock.js | 5 ++++- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/docs/writing-plugins.md b/docs/writing-plugins.md index e5be14cb..e955503e 100644 --- a/docs/writing-plugins.md +++ b/docs/writing-plugins.md @@ -226,7 +226,7 @@ plugin you listen for an event named ipc-channel_name in order to get data sent by `send_json`. For example in the plugin code: async init() { - this.server.on('ipc-my_plugin_foo', content => + this.instance.server.on('ipc-my_plugin_foo', content => this.handleFoo(content).catch(err => console.log( "Error handling foo:", foo )) @@ -478,7 +478,7 @@ accordingly, for example: ); // Somewhere in the instance plugin code - barMetric.labels(String(this.config.id)).set(someValue); + barMetric.labels(String(this.instance.config.get("instance.id"))).set(someValue); Metrics are automatically registered to the default registry, and this default registry is automatically polled by the master server on slaves. diff --git a/plugins/statistics_exporter/instance.js b/plugins/statistics_exporter/instance.js index aa158231..eee2e0ab 100644 --- a/plugins/statistics_exporter/instance.js +++ b/plugins/statistics_exporter/instance.js @@ -30,7 +30,7 @@ class InstancePlugin extends plugin.BaseInstancePlugin { throw new Error(`Error parsing statistics JSON: ${err.message}, content "${string}"`); } - let instanceId = this.instance.config.id; + let instanceId = this.instance.config.get("instance.id"); instanceGameTicksTotal.labels(String(instanceId)).set(stats.game_tick); instancePlayerCount.labels(String(instanceId)).set(stats.player_count); diff --git a/test/mock.js b/test/mock.js index 33b50f9f..9410bd4c 100644 --- a/test/mock.js +++ b/test/mock.js @@ -72,7 +72,10 @@ class MockInstance extends link.Link { this.server = new MockServer(); this.name = "test"; this.config = { - id: 7357, + get: (name) => { + if (name === "instance.id") { return 7357 } + throw Error("Not implemented"); + } } } }