giants-stupid-server/server.py

39 lines
1.2 KiB
Python
Raw Normal View History

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
import asyncio
2020-05-27 16:05:40 +02:00
num_players_alltime = 0
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:46:33 +02:00
self.register_with_ms = kwargs.get("register", True)
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 16:05:40 +02:00
server_name = "Hello %s" % ip
global num_players_alltime
num_players_alltime = num_players_alltime + 1
player_count = num_players_alltime
2020-05-27 14:09:44 +02:00
max_player_count = 20
2020-05-27 16:05:40 +02:00
map_name = "best map ever"
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()
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()