giants-stupid-server/server.py

39 lines
1.2 KiB
Python

from dpnet.netserver import Netserver
from giants.masterserver import MasterServer
import asyncio
num_players_alltime = 0
class Server:
def __init__(self, **kwargs):
self.listen_ip = kwargs.get("ip", "0.0.0.0")
self.listen_port = kwargs.get("port", 19711)
self.register_with_ms = kwargs.get("register", True)
async def on_connection_received(self, ip, port):
version = 1.497
server_name = "Hello %s" % ip
global num_players_alltime
num_players_alltime = num_players_alltime + 1
player_count = num_players_alltime
max_player_count = 20
map_name = "best map ever"
return version, server_name, player_count, max_player_count, map_name
if __name__ == '__main__':
server = Server()
if server.register_with_ms:
ms = MasterServer(server)
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()