from os import environ from threading import Lock, Thread from sseclient import SSEClient from dotenv import load_dotenv from requests import post load_dotenv() MCSMGR_ADDRESS = environ.get("MCSMGR_ADDRESS", "http://localhost:8000") MCSMGR_PASSWORD = environ.get("MCSMGR_PASSWORD", "SuperSecretPassword") MINECRAFT_SERVER_COMMAND = environ.get( "MINECRAFT_SERVER_COMMAND", "java -jar fabric.jar nogui") MINECRAFT_SERVER_ADDRESS = environ.get("MINECRAFT_SERVER_ADDRESS", "localhost") MINECRAFT_SERVER_RCON_PORT = int( environ.get("MINECRAFT_SERVER_RCON_PORT", "25575")) MINECRAFT_SERVER_RCON_PASSWORD = environ.get( "MINECRAFT_SERVER_RCON_PASSWORD", "SuperSecretPassword") post(MCSMGR_ADDRESS+"/start") def logger(): for msg in SSEClient(MCSMGR_ADDRESS+"/logs", json={"password": MCSMGR_PASSWORD}): print(msg.data) t = Thread(target=logger, daemon=True) t.start() try: while True: cmd = input() response = post(MCSMGR_ADDRESS+"/command", json={ "password": MCSMGR_PASSWORD, "cmd": cmd}) print(eval(response.text).rstrip("\n")) except (KeyboardInterrupt, EOFError): t.join()