37 lines
1.1 KiB
Python
37 lines
1.1 KiB
Python
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()
|