fix mcstatus properly

This commit is contained in:
Daniel Olsen 2022-06-21 03:22:43 +02:00
parent e5d55ba0ad
commit 6faf2022e8
1 changed files with 46 additions and 32 deletions

View File

@ -198,44 +198,58 @@ in
from mcstatus import JavaServer from mcstatus import JavaServer
import signal import signal
from time import sleep from time import sleep
import notify2
def see_players(): pvv = JavaServer.lookup("minecraft.pvv.ntnu.no")
dods = JavaServer.lookup("mc.dodsorf.as")
def getPlayers(server):
status = server.status()
players = getattr(getattr(status, "players"), "sample", [])
return players or []
def build_players(list, server):
result = "" result = ""
if pvv_status is not None: if len(list) > 0:
result += "PVV: " result += server + ": "
for player in pvv_status.players.sample: for player in list:
result += player.name + " " result += player.name + " \n"
result += "\n" return result
if dods_status is not None:
result += "DODS: "
for player in dods_status.players.sample:
result += player.name + " "
result += "\n"
signal.signal(signal.SIGUSR1, see_players) def display_players(pvv, dods):
result = build_players(getPlayers(pvv), "PVV")
result += build_players(getPlayers(dods), "DODS")
return result
while True:
result = ""
try:
pvv = JavaServer.lookup("minecraft.pvv.ntnu.no")
pvv_status = pvv.status()
if pvv_status.players.online > 0:
result += ("P" + str(pvv_status.players.online))
except:
pass
try: def peek(*_):
dods = JavaServer.lookup("mc.dodsorf.as") result = display_players(pvv, dods)
dods_status = dods.status() notify2.init('Minecraft Server Status')
if dods_status.players.online > 0: n = notify2.Notification("Minecraft Server Status", result)
result += ("D" + str(dods_status.players.online)) n.show()
except: main()
pass
print(result)
sleep(5) signal.signal(signal.SIGUSR1, peek)
def main():
while True:
result = ""
pvvs = getPlayers(pvv)
dodss = getPlayers(dods)
if len(pvvs) > 0:
result += "P" + str(len(pvvs))
if len(dodss) > 0:
result += "D" + str(len(dodss))
print(result, flush=True)
sleep(5)
main()
''; '';
click-left = "kill -USR1 %pid%"; click-left = "kill -USR1 %pid%";
# interval = # interval =