title: Controlling a minecraft server with python
body: <p>I've searched a lot for this and have not yet found a definitive solution. The closest thing I've found is this:</p>
  
  <pre><code>import shutil
  from os.path import join
  import os
  import time
  import sys
  
  minecraft_dir = ('server diectory')
  world_dir = ('server world driectory')
  
  def server_command(cmd):
      os.system('screen -S  -X stuff "{}\015"'.format(cmd))
  
  on = "1"
  
  while True:
      command=input()
      command=command.lower()
      if on == "1":
          if command==("start"):
              os.chdir(minecraft_dir)
              os.system('"C:\Program Files\Java\jre1.8.0_111\bin\java.exe" -Xms4G -Xmx4G -jar craftbukkit-1.10.2.jar nogui java')
              print("Server started.")
              on = "0"
      else:
          server_command(command)
  </code></pre>
  
  <p>When I launch this program and type 'start' the CMD flashes up and closes instantly. Instead I want the CMD to stay open with the minecraft sever running from it. I'm not sure why this happens or what the problem is, any help would be greatly appreciated.</p>
  
  <p>p.s. I have edited this to my needs (such as removing a backup script that was unnecessary) but it didn't work before. The original link is: <a href="https://github.com/tschuy/minecraft-server-control" rel="nofollow noreferrer">https://github.com/tschuy/minecraft-server-control</a></p>