From ff816041e990bddb5f15ac70a77ebbebdd999475 Mon Sep 17 00:00:00 2001 From: NoctisStudios Date: Tue, 29 Jul 2025 15:19:36 -0400 Subject: [PATCH] Update game_server_MOD.js --- actions/game_server_MOD.js | 135 ++++++++++++++++++------------------- 1 file changed, 66 insertions(+), 69 deletions(-) diff --git a/actions/game_server_MOD.js b/actions/game_server_MOD.js index e90d4345e..c564f82c5 100644 --- a/actions/game_server_MOD.js +++ b/actions/game_server_MOD.js @@ -24,32 +24,27 @@ module.exports = { }, variableStorage(data, varType) { - if (parseInt(data.storage, 10) !== varType) return; - let dataType = 'Unknown Type'; - switch (parseInt(data.info, 10)) { - case 0: - dataType = 'Server Name'; - break; - case 1: - dataType = 'Map'; - break; - case 2: - dataType = 'Number'; - break; - case 3: - dataType = 'Number'; - break; - case 4: - dataType = 'Server Tags'; - break; - case 5: - dataType = 'Boolean'; - break; + const type = parseInt(data.storage, 10); + if (type === varType) { + let dataType = 'Unknown Type'; + switch (parseInt(data.info, 10)) { + case 0: dataType = 'Server Name'; break; + case 1: dataType = 'Map'; break; + case 2: + case 3: + case 4: dataType = 'Number'; break; + case 5: dataType = 'Server Tags'; break; + case 6: dataType = 'Boolean'; break; + case 7: dataType = 'Server Player List'; break; + } + return [data.varName, dataType]; + } + if (parseInt(data.failureVarStorage, 10) === varType) { + return [data.failureVarName, 'Boolean']; } - return [data.varName, dataType]; }, - fields: ['serverip', 'serverport', 'game', 'info', 'storage', 'varName'], + fields: ['serverip', 'serverport', 'game', 'info', 'storage', 'varName', 'failureVarStorage', 'failureVarName'], html() { return ` @@ -359,6 +354,11 @@ module.exports = {






+
+ +
+


+
@@ -413,56 +413,53 @@ module.exports = { const ip = this.evalMessage(data.serverip, cache); const port = this.evalMessage(data.serverport, cache); + const failureStorage = parseInt(data.failureVarStorage, 10); + const failureVarName = this.evalMessage(data.failureVarName, cache); + const { GameDig } = require('gamedig'); - if (!ip) return console.log('Please provide Server IP & Port.'); - GameDig.query({ - type: gametype, - host: ip, - port, - maxAttempts: 3, - attemptTimeout: 25000, - }) - .then((state) => { - let result; - switch (info) { - case 0: - result = state.name; - break; - case 1: - result = state.map; - break; - case 2: - result = state.raw.numplayers || state.players.length; - break; - case 3: - result = state.raw.numbots; - break; - case 4: - result = state.maxplayers; - break; - case 5: - result = state.raw.tags; - break; - case 6: - result = state.password; - break; - case 7: - result = state.players.map((a) => a.name); - break; - default: - break; - } + if (!ip) { + console.log('Please provide Server IP & Port.'); + if (failureVarName) Actions.storeValue(true, failureStorage, failureVarName, cache); + return Actions.callNextAction(cache); + } - if (result !== undefined) { - const storage = parseInt(data.storage, 10); - const varName2 = Actions.evalMessage(data.varName, cache); - Actions.storeValue(result, storage, varName2, cache); - } - Actions.callNextAction(cache); - }) - .catch((error) => console.log(`Game Server Info: ${error}`)); + try { + const state = await GameDig.query({ + type: gametype, + host: ip, + port, + maxAttempts: 3, + attemptTimeout: 25000, + }); + + let result; + switch (info) { + case 0: result = state.name; break; + case 1: result = state.map; break; + case 2: result = state.raw.numplayers || state.players.length; break; + case 3: result = state.raw.numbots; break; + case 4: result = state.maxplayers; break; + case 5: result = state.raw.tags; break; + case 6: result = state.password; break; + case 7: result = state.players.map((a) => a.name); break; + } + + if (result !== undefined) { + const storage = parseInt(data.storage, 10); + const varName2 = Actions.evalMessage(data.varName, cache); + Actions.storeValue(result, storage, varName2, cache); + } + + if (failureVarName) Actions.storeValue(false, failureStorage, failureVarName, cache); + Actions.callNextAction(cache); + } catch (error) { + console.log(`Game Server Info: ${error}`); + if (failureVarName) Actions.storeValue(true, failureStorage, failureVarName, cache); + Actions.callNextAction(cache); + } }, + mod() {}, };