-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathserverManager.py
More file actions
40 lines (35 loc) · 1.08 KB
/
serverManager.py
File metadata and controls
40 lines (35 loc) · 1.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import teamtalk
import threading
import sys
import os
from core import server,config
import json
import traceback
version="1.0"
def main():
servers={}
config.read()
for s in config.getServers():
servers.update({s:server.server(*config.getServerParams(s),config)})
serverThreads=[]
for sn,s in servers.items():
t=threading.Thread(target=handleServerSetUp,args=(s,sn),name=sn)
t.start()
serverThreads.append(t)
def handleServerSetUp(serverobj,serverName: str):
serverobj.handleEvents()
serverobj.connect()
threading.Thread(target=handleJailUpDates,args=(serverobj,serverName),name=serverName+"_jailUpdater").start()
while serverobj.running:
try:
serverobj.tcls.handle_messages()
except Exception:
pass
if serverobj.restarting:
serverobj.__init__(*config.getServerParams(serverName),serverobj.configObj)
return handleServerSetUp(serverobj,serverName)
def handleJailUpDates(serverobj,serverName):
while serverobj.running:
j=serverobj.jailed
if j!=config.getJailed(serverName): config.updateJailed(serverName,serverobj.jailed);config.write()
if __name__=="__main__": main()