Switch to 'rcon' package instead of 'mbr-rcon'
This commit is contained in:
		
							parent
							
								
									44af9c4a4b
								
							
						
					
					
						commit
						a309997899
					
				
							
								
								
									
										88
									
								
								index.js
									
									
									
									
									
								
							
							
						
						
									
										88
									
								
								index.js
									
									
									
									
									
								
							| 
						 | 
					@ -1,7 +1,7 @@
 | 
				
			||||||
const Config = require('./config/config');
 | 
					const Config = require('./config/config');
 | 
				
			||||||
const Servers = require('./config/servers');
 | 
					const Servers = require('./config/servers');
 | 
				
			||||||
const Discord = require('discord.js');
 | 
					const Discord = require('discord.js');
 | 
				
			||||||
const Rcon = require('mbr-rcon');
 | 
					const Rcon = require('rcon');
 | 
				
			||||||
const Query = require("minecraft-query");
 | 
					const Query = require("minecraft-query");
 | 
				
			||||||
const Server = require('./includes/class_server');
 | 
					const Server = require('./includes/class_server');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -109,61 +109,41 @@ client.on('message', async msg => {
 | 
				
			||||||
            let serverStatus = "Stopped";
 | 
					            let serverStatus = "Stopped";
 | 
				
			||||||
            let serverTPS = "---";
 | 
					            let serverTPS = "---";
 | 
				
			||||||
            if ( server.rconPort != 0 ) {
 | 
					            if ( server.rconPort != 0 ) {
 | 
				
			||||||
                const rcon = new Rcon({
 | 
					                var rcon = new Rcon(server.rconAddress, server.rconPort, server.rconPassword);
 | 
				
			||||||
                    host: server.rconAddress,
 | 
							        rcon.on('auth', function() {
 | 
				
			||||||
                    port: server.rconPort,
 | 
					                    serverStatus = "Running";
 | 
				
			||||||
                    pass: server.rconPassword,
 | 
					                    rcon.send(server.rconTPSCommand);
 | 
				
			||||||
                    onClose: function () {}
 | 
					                }).on('response', function(response) {
 | 
				
			||||||
                });
 | 
					                    if ( ['1.2.5', '1.4.7'].includes(server.mcVersion) ) {
 | 
				
			||||||
                const connection = rcon.connect({
 | 
					                        let tpsParts = response.trim().split("\n");
 | 
				
			||||||
                    onSuccess: function() {
 | 
					                        serverTPS = tpsParts[0].split(" ").pop().slice(2);
 | 
				
			||||||
                        serverStatus = "Running";
 | 
					                    } else {
 | 
				
			||||||
                    },
 | 
					                        let tpsParts = response.trim().split(" ");
 | 
				
			||||||
                    onError: function() {
 | 
					                        serverTPS = tpsParts.pop();
 | 
				
			||||||
                        console.log("Could not connect to rcon server: " + server.name + " " + server.rconAddress + " " + server.rconPort);
 | 
					                        if ( serverTPS.includes("*") ) serverTPS = serverTPS.split("*").pop();
 | 
				
			||||||
                        server.sendDetails(msg.channel, hostStatus, serverStatus, serverTPS);
 | 
					 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                });
 | 
					                    const q = new Query({host: server.rconAddress, port: server.queryPort, timeout: 250});
 | 
				
			||||||
                connection.auth({
 | 
					                    try {
 | 
				
			||||||
                    onSuccess: function () {
 | 
					                        q.fullStat()
 | 
				
			||||||
                        // Don't need to do anything on successful auth to rcon
 | 
					                            .then(response => {
 | 
				
			||||||
                    },
 | 
					                                server.sendDetails(msg.channel, hostStatus, serverStatus, serverTPS, response);
 | 
				
			||||||
                    onError: function (error) {
 | 
					                            })
 | 
				
			||||||
                        console.log("Could not authenticate to rcon server: " + server.name + " " + server.rconAddress + " " + server.rconPort);
 | 
					                            .then(() => { q.close(); })
 | 
				
			||||||
                        server.sendDetails(msg.channel, hostStatus, serverStatus, serverTPS);
 | 
					                            .catch(e => {
 | 
				
			||||||
 | 
					                                q.close();
 | 
				
			||||||
 | 
					                                server.sendDetails(msg.channel, hostStatus, serverStatus, serverTPS);
 | 
				
			||||||
 | 
					                            });
 | 
				
			||||||
 | 
					                    } catch (e) {
 | 
				
			||||||
 | 
					                        console.log(e);
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
 | 
					                }).on('error', function(err) {
 | 
				
			||||||
 | 
					                    console.log("RCon Error connecting to '" + server.slug + "': " + err);
 | 
				
			||||||
 | 
					                    server.sendDetails(msg.channel, hostStatus, serverStatus, serverTPS);
 | 
				
			||||||
 | 
					                }).on('end', function() {
 | 
				
			||||||
 | 
					                    console.log("RCon connection to '" + server.slug + "' Failed for some unknown reason");
 | 
				
			||||||
 | 
					                    server.sendDetails(msg.channel, hostStatus, serverStatus, serverTPS);
 | 
				
			||||||
                });
 | 
					                });
 | 
				
			||||||
                await connection.send(server.rconTPSCommand, {
 | 
					                rcon.connect();
 | 
				
			||||||
                    onSuccess: function (response) {
 | 
					 | 
				
			||||||
                        if ( ['1.2.5', '1.4.7'].includes(server.mcVersion) ) {
 | 
					 | 
				
			||||||
                            let tpsParts = response.trim().split("\n");
 | 
					 | 
				
			||||||
                            serverTPS = tpsParts[0].split(" ").pop().slice(2);
 | 
					 | 
				
			||||||
                        } else {
 | 
					 | 
				
			||||||
                            let tpsParts = response.trim().split(" ");
 | 
					 | 
				
			||||||
                            serverTPS = tpsParts.pop();
 | 
					 | 
				
			||||||
                            if ( serverTPS.includes("*") ) serverTPS = serverTPS.split("*").pop();
 | 
					 | 
				
			||||||
                        }
 | 
					 | 
				
			||||||
                        const q = new Query({host: server.rconAddress, port: server.queryPort, timeout: 250});
 | 
					 | 
				
			||||||
                        try {
 | 
					 | 
				
			||||||
                            q.fullStat()
 | 
					 | 
				
			||||||
                                .then(response => {
 | 
					 | 
				
			||||||
                                    server.sendDetails(msg.channel, hostStatus, serverStatus, serverTPS, response);
 | 
					 | 
				
			||||||
                                })
 | 
					 | 
				
			||||||
                                .then(() => { q.close(); })
 | 
					 | 
				
			||||||
                                .catch(e => {
 | 
					 | 
				
			||||||
                                    q.close();
 | 
					 | 
				
			||||||
                                    server.sendDetails(msg.channel, hostStatus, serverStatus, serverTPS);
 | 
					 | 
				
			||||||
                                });
 | 
					 | 
				
			||||||
                        } catch (e) {
 | 
					 | 
				
			||||||
                            console.log(e);
 | 
					 | 
				
			||||||
                        }
 | 
					 | 
				
			||||||
                    },
 | 
					 | 
				
			||||||
                    onError: function (error) {
 | 
					 | 
				
			||||||
                        console.log("Could not query rcon server: " + server.name + " " + server.rconAddress + " " + server.rconPort);
 | 
					 | 
				
			||||||
                        server.sendDetails(msg.channel, hostStatus, serverStatus, serverTPS);
 | 
					 | 
				
			||||||
                    }
 | 
					 | 
				
			||||||
                });
 | 
					 | 
				
			||||||
                connection.close();
 | 
					 | 
				
			||||||
            } else {
 | 
					            } else {
 | 
				
			||||||
                console.log("No rcon settings for: " + server.name);
 | 
					                console.log("No rcon settings for: " + server.name);
 | 
				
			||||||
                server.sendDetails(msg.channel, hostStatus, serverStatus, serverTPS);
 | 
					                server.sendDetails(msg.channel, hostStatus, serverStatus, serverTPS);
 | 
				
			||||||
| 
						 | 
					@ -181,4 +161,4 @@ client.on('message', async msg => {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
client.login(Config.BOT_TOKEN);
 | 
					client.login(Config.BOT_TOKEN);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// vim: ts=4:sw=4
 | 
					// vim: set ts=4 sw=4:
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										1371
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										1371
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										22
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										22
									
								
								package.json
									
									
									
									
									
								
							| 
						 | 
					@ -14,19 +14,19 @@
 | 
				
			||||||
  "license": "GPL-2.0-only",
 | 
					  "license": "GPL-2.0-only",
 | 
				
			||||||
  "description": "Discord Bot for CircleCraft",
 | 
					  "description": "Discord Bot for CircleCraft",
 | 
				
			||||||
  "dependencies": {
 | 
					  "dependencies": {
 | 
				
			||||||
    "async-limiter": "^2.0.0",
 | 
					    "async-limiter": ">=2.0.0",
 | 
				
			||||||
    "discord.js": "^12.1.1",
 | 
					    "discord.js": "^12.1.1",
 | 
				
			||||||
    "long": "^4.0.0",
 | 
					    "long": ">=4.0.0",
 | 
				
			||||||
    "prism-media": "^1.2.1",
 | 
					    "prism-media": ">=1.2.1",
 | 
				
			||||||
    "node-fetch": "^2.6.0",
 | 
					    "node-fetch": ">=2.6.0",
 | 
				
			||||||
    "tweetnacl": "^1.0.3",
 | 
					    "tweetnacl": ">=1.0.3",
 | 
				
			||||||
    "ws": "^7.2.3",
 | 
					    "ws": ">=7.2.3",
 | 
				
			||||||
    "moment": "^2.24.0",
 | 
					    "moment": ">=2.24.0",
 | 
				
			||||||
    "net-ping": "^1.2.3",
 | 
					    "net-ping": ">=1.2.3",
 | 
				
			||||||
    "mbr-rcon": "^1.1.0",
 | 
					    "rcon": ">=1.1.0",
 | 
				
			||||||
    "minecraft-query": "^1.0.9"
 | 
					    "minecraft-query": ">=1.0.9"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  "devDependencies": {
 | 
					  "devDependencies": {
 | 
				
			||||||
    "nodemon": "^2.0.2"
 | 
					    "nodemon": ">=2.0.2"
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user