This repository was archived by the owner on Jul 17, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathRun.py
More file actions
67 lines (52 loc) · 1.97 KB
/
Copy pathRun.py
File metadata and controls
67 lines (52 loc) · 1.97 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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
import asyncio
from colorama import init
from Server.LoginServer import LoginServer
from Server.WorldServer import WorldServer
# from Server.WebsocketServer.WebsocketServer import WebsocketServer
from Server.Registry.QueuesRegistry import QueuesRegistry
from World.WorldManager import WorldManager
from World.Region.RegionManager import RegionManager
from Utils.Debug.Logger import Logger
if __name__ == '__main__':
# initialize colorama for make ansi codes works in Windows
init()
loop = asyncio.get_event_loop()
login_server = LoginServer.create()
world_server = WorldServer.create()
# websocket_server = WebsocketServer.create()
# region_manager = RegionManager()
# region_tasks = [
# asyncio.ensure_future(RegionManager.refresh_region(region))
# for region in region_manager.regions
# ]
world_manager = WorldManager()
# QueuesRegistry.web_data_queue = MultiProcessQueue.get_instance()
QueuesRegistry.session_keys_queue = asyncio.Queue()
QueuesRegistry.players_queue = asyncio.Queue()
QueuesRegistry.remove_player_queue = asyncio.Queue()
QueuesRegistry.connections_queue = asyncio.Queue()
QueuesRegistry.disconnect_queue = asyncio.Queue()
QueuesRegistry.packets_queue = asyncio.Queue()
QueuesRegistry.broadcast_callback_queue = asyncio.Queue()
try:
loop.run_until_complete(
asyncio.gather(
login_server.get_instance(),
world_server.get_instance(),
# websocket_server.get_instance(),
asyncio.ensure_future(world_manager.run())
)
)
except Exception as e:
Logger.error('[Run]: (run until complete) {}'.format(e))
raise e
try:
loop.run_forever()
except KeyboardInterrupt:
# TODO: add signal to stop all runned tasks
pass
except Exception as e:
Logger.error('[Run]: (run forever) {}'.format(e))
raise e
finally:
loop.close()