2019-01-22 01:30:42 +01:00
|
|
|
from dpnet.netserver import Netserver
|
2020-05-27 14:09:44 +02:00
|
|
|
from giants.masterserver import MasterServer
|
2019-01-23 10:28:23 +01:00
|
|
|
from utils.logger import setup_logger
|
2019-02-06 01:07:00 +01:00
|
|
|
import asyncio
|
2019-01-23 10:28:23 +01:00
|
|
|
|
|
|
|
logger = setup_logger(__name__)
|
2019-01-22 01:30:42 +01:00
|
|
|
|
|
|
|
|
|
|
|
class Server:
|
|
|
|
def __init__(self, **kwargs):
|
|
|
|
self.listen_ip = kwargs.get("ip", "0.0.0.0")
|
|
|
|
self.listen_port = kwargs.get("port", 19711)
|
2020-05-27 15:45:58 +02:00
|
|
|
self.register_with_ms = kwargs.get("register", False)
|
2019-02-05 01:35:22 +01:00
|
|
|
|
2020-05-27 14:09:44 +02:00
|
|
|
async def on_connection_received(self, ip, port):
|
|
|
|
version = 1.497
|
2020-05-27 15:45:58 +02:00
|
|
|
server_name = "My server name"
|
2020-05-27 14:09:44 +02:00
|
|
|
player_count = 2
|
|
|
|
max_player_count = 20
|
2020-05-27 15:45:58 +02:00
|
|
|
map_name = "Map name"
|
2020-05-27 14:09:44 +02:00
|
|
|
return version, server_name, player_count, max_player_count, map_name
|
2019-02-05 01:35:22 +01:00
|
|
|
|
2019-01-22 01:30:42 +01:00
|
|
|
|
|
|
|
if __name__ == '__main__':
|
2020-05-27 14:09:44 +02:00
|
|
|
server = Server()
|
|
|
|
if server.register_with_ms:
|
|
|
|
ms = MasterServer(server)
|
2020-05-27 15:45:58 +02:00
|
|
|
register_thread = ms.register_and_run()
|
2019-02-06 01:07:00 +01:00
|
|
|
|
|
|
|
loop = asyncio.get_event_loop()
|
|
|
|
listen = loop.create_datagram_endpoint(lambda: Netserver(server), local_addr=(server.listen_ip, server.listen_port))
|
|
|
|
transport, protocol = loop.run_until_complete(listen)
|
|
|
|
try:
|
|
|
|
loop.run_forever()
|
|
|
|
except KeyboardInterrupt:
|
|
|
|
pass
|
|
|
|
transport.close()
|
|
|
|
loop.close()
|