Advertisement
simonmeusel

Start minecraft server via discord bot

May 28th, 2016
484
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var spawn = require('child_process').spawn;
  2. var discord = require("discord.js");
  3.  
  4. var bot = new discord.Client();
  5. var mcserver;
  6.  
  7. // The start.bat has to include a 'cd "C:/Users/_____/Desktop/Server/"' command (https://gist.github.com/simonmeusel/1de7166288b12c04518c59158a85f5ef)
  8. var MC_SERVER_START_SCRIPT = "C:/Users/_____/Desktop/Server/start.bat";
  9.  
  10. bot.on("message", function(message){
  11.   if (message.content == "start") {
  12.  
  13.     // Only start if not running
  14.     if (mcserver == null) {
  15.       bot.sendMessage(message, "Starting server...");
  16.  
  17.       // Start the server
  18.       mcserver = spawn(MC_SERVER_START_SCRIPT);
  19.  
  20.       mcserver.stdout.on('data', (data) => {
  21.         console.log("stdout: " + data);
  22.         // Not everything is send (because i think there is a send limit per time)
  23.         // bot.sendMessage(message, "stdout: " + data);
  24.       });
  25.  
  26.       mcserver.stderr.on('data', (data) => {
  27.         console.log("stderr: " + data);
  28.         bot.sendMessage(message, "stdout: " + data);
  29.       });
  30.  
  31.       mcserver.on('close', (code) => {
  32.         console.log("child process exited with code " + code);
  33.         bot.sendMessage(message, "child process exited with code " + code);
  34.       });
  35.  
  36.     }
  37.  
  38.   } else if (message.content == "stop") {
  39.  
  40.     // Only stop if running
  41.     if (message.content == "start") {
  42.       bot.sendMessage(message, "Stopping server...");
  43.  
  44.       // Stop the server
  45.       mcserver.kill();
  46.  
  47.       mcserver = null;
  48.     }
  49.   }
  50. });
  51.  
  52. bot.login("email", "pass")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement