MCServerManager/console.py
2025-09-03 14:32:26 +02:00

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()