diff --git a/gui_client.py b/gui_client.py index aae7d26..7f877f5 100644 --- a/gui_client.py +++ b/gui_client.py @@ -25,7 +25,7 @@ async def send(self, msg): await self.websocket.send(json.dumps(msg)) async def activate(self, where): - self.deactivate() + await self.deactivate() if where == 'l': where = '127.0.0.1' # 'localhost' does not work for Windows if ':' not in where: @@ -48,9 +48,9 @@ async def activate(self, where): raise Exception('Server and client versions do not match.') - def deactivate(self): + async def deactivate(self): if self.websocket is not None: - self.websocket.close() + await self.websocket.close() self.websocket = None async def messages(self): @@ -88,13 +88,11 @@ async def process_event(self, event): return elif event.key == pygame.K_BACKSPACE: self.result = self.result[:-1] - elif event.key == pygame.K_ESCAPE: + elif event.key == pygame.K_ESCAPE or event.key == pygame.K_x and event.mod & pygame.KMOD_CTRL: self.result = '' elif (event.key == pygame.K_v) and (event.mod & pygame.KMOD_CTRL): import pyperclip self.result += pyperclip.paste() - elif (event.key == pygame.K_x) and (event.mod & pygame.KMOD_CTRL): - self.result = '' else: key = event.unicode is_allowed = len(key) == 1 and (key[0].isalnum() or key[0] in '[].:') diff --git a/server.py b/server.py index 9eefaa7..ea3b16d 100644 --- a/server.py +++ b/server.py @@ -2,6 +2,7 @@ # TODO: No exception handling, speedrun coding mode let's goo import asyncio +import argparse import json import random import time @@ -314,9 +315,13 @@ async def listen_socket(self, websocket, path): if __name__ == "__main__": + parser = argparse.ArgumentParser() + parser.add_argument("-p", "--port", default=None, type=int) + args = parser.parse_args() + print(f'FriendlySquares server {GAME_VERSION} has started') s = Server() - start_server = websockets.serve(s.listen_socket, ['0.0.0.0'], DEFAULT_PORT) + start_server = websockets.serve(s.listen_socket, ['0.0.0.0'], args.port or DEFAULT_PORT) scoring.score(['rr', 'rr']) # Compile Numba code print(f'Ready to accept connections') asyncio.get_event_loop().run_until_complete(start_server)