diff --git a/package.json b/package.json
index 16a3e7b..4d9ba9f 100644
--- a/package.json
+++ b/package.json
@@ -2,10 +2,6 @@
"name": "node-red-contrib-gamedig",
"version": "0.1.0",
"description": "Query for the status of any game server using node-red",
- "main": "query-game-server/query-game-server.js",
- "scripts": {
- "test": "echo \"Error: no test specified\" && exit 1"
- },
"repository": {
"type": "git",
"url": "git+https://github.com/skylord123/node-red-contrib-gamedig.git"
@@ -18,10 +14,10 @@
"homepage": "https://github.com/skylord123/node-red-contrib-gamedig#readme",
"node-red": {
"nodes": {
- "query-game-server": "query-game-server/query-game-server.js"
+ "query-game-server": "query-game-server.js"
}
},
"dependencies": {
- "gamedig": "^2.0.13"
+ "gamedig": "^2.0.0"
}
}
diff --git a/query-game-server.html b/query-game-server.html
new file mode 100644
index 0000000..29b55d7
--- /dev/null
+++ b/query-game-server.html
@@ -0,0 +1,107 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/query-game-server.js b/query-game-server.js
new file mode 100644
index 0000000..75f169e
--- /dev/null
+++ b/query-game-server.js
@@ -0,0 +1,54 @@
+var Gamedig = require('gamedig');
+
+module.exports = function(RED) {
+ function QueryGameServer(config) {
+ RED.nodes.createNode(this, config);
+ this.server_type = config.server_type;
+ this.host = config.host;
+ this.port = config.port;
+ this.halt_if = config.halt_if;
+ var node = this;
+ node.on('input', function(msg) {
+ var serverInfo = {
+ 'type': node.server_type,
+ 'host': node.host
+ };
+
+ if(node.port) {
+ serverInfo['port'] = node.port;
+ }
+
+ if(msg.server_type) {
+ serverInfo['type'] = msg.server_type;
+ }
+
+ if(msg.host) {
+ serverInfo['host'] = msg.host;
+ }
+
+ if(msg.port) {
+ serverInfo['port'] = msg.port;
+ }
+
+ Gamedig.query(serverInfo)
+ .then(function(state) {
+ msg.payload = 'online';
+ msg.data = state;
+ if (msg.payload === node.halt_if) {
+ return null;
+ }
+ node.send(msg);
+ }).catch(function(error) {
+ msg.payload = 'offline';
+ msg.data = {
+ 'error': error
+ };
+ if (msg.payload === node.halt_if) {
+ return null;
+ }
+ node.send(msg);
+ });
+ });
+ }
+ RED.nodes.registerType("query-game-server", QueryGameServer);
+};
\ No newline at end of file
diff --git a/query-game-server/query-game-server.html b/query-game-server/query-game-server.html
deleted file mode 100644
index b50788b..0000000
--- a/query-game-server/query-game-server.html
+++ /dev/null
@@ -1,47 +0,0 @@
-
-
-
\ No newline at end of file
diff --git a/query-game-server/query-game-server.js b/query-game-server/query-game-server.js
deleted file mode 100644
index eca222c..0000000
--- a/query-game-server/query-game-server.js
+++ /dev/null
@@ -1,39 +0,0 @@
-module.exports = function(RED) {
- var Gamedig = require('gamedig');
- function queryGameServer(config) {
- RED.nodes.createNode(this, config);
- var node = this;
- node.on('input', function(msg) {
- var serverInfo = {
- 'type': this.nodeConfig.type,
- 'host': this.nodeConfig.host
- };
-
- if(this.nodeConfig.port) {
- serverInfo['port'] = this.nodeConfig.port;
- }
-
- Gamedig.query(serverInfo)
- .then(function(state) {
- msg.payload = 'online';
- msg.data = state;
- const shouldHaltIfState = this.nodeConfig.halt_if && ('online' === this.nodeConfig.halt_if);
- if (shouldHaltIfState) {
- return null;
- }
- node.send(msg);
- }).catch(function(error) {
- msg.payload = 'offline';
- msg.data = {
- 'error': error
- };
- const shouldHaltIfState = this.nodeConfig.halt_if && ('offline' === this.nodeConfig.halt_if);
- if (shouldHaltIfState) {
- return null;
- }
- node.send(msg);
- });
- });
- }
- RED.nodes.registerType("query-game-server", queryGameServer);
-};
\ No newline at end of file