def handle_server(queue, server, pong, player_name): global PLAYER_LIST data = b'ack;\r\n' while True: msg = server.recv(const.RECV_BUFF).decode().split(";") if msg[0] == "newPlayer": try: detail = json.loads(msg[1]) player = PlayerPaddle(const.SCREENSIZE, detail["id"], detail["color"]) PLAYER_LIST.append(player) queue.append(["SERVER", "New player " + player_name + " has arrived."]) except: print("new player could not be created:", msg) if msg[0] == "currentList": try: print("received list: ", msg[1]) p_list = json.loads(msg[1]) update_players(p_list) except: print("current list could not be read:", msg) elif msg[0] == "updateLocation": try: detail = json.loads(msg[1]) player = next((player for player in PLAYER_LIST if player.get_id() == detail["id"])) player.update_local(detail["y"]) except: print("something went wrong with msg", msg) elif msg[0] == "removePlayer": try: detail = json.loads(msg[1]) player = next((player for player in PLAYER_LIST if player.get_id() == detail["id"])) PLAYER_LIST.remove(player) queue.append(["SERVER", "Player " + player_name + " has left."]) except: print("could not remove stupid player") elif msg[0] == "updateBallLocation": try: detail = json.loads(msg[1]) pong.update( detail["x"], detail["y"], detail["lscore"], detail["rscore"], detail["lwin"], detail["rwin"], detail["sound"], ) except Exception as e: print("ball error", e) elif msg[0] == "receivedMessage": global chat_box try: # Appends the message to the queue in main thread to avoid tkinter threading error queue.append([msg[1], msg[2]]) except Exception as e: print("Chat Error", e) server.close()
def handle_serveur(queue, serveur, pong, player_name): global PLAYER_LIST data = b'ack;\r\n' while True: msg = serveur.recv(const.RECV_BUFF).decode().split(";") if msg[0] == "newPlayer": try: print(msg[1]) detail = json.loads(msg[1]) player = PlayerPaddle(const.SCREENSIZE, detail["id"], detail["color"]) PLAYER_LIST.append(player) queue.append([ "SERVER", "Le nouveau joueur" + player_name + " est arrivé" ]) except: print("le nouveau joueur n'a pu être créé", msg) if msg[0] == "currentList": try: print("received list: ", msg[1]) p_list = json.loads(msg[1]) update_players(p_list) except: print("current list could not be read:", msg) elif msg[0] == "updateLocation": try: detail = json.loads(msg[1]) player = next((player for player in PLAYER_LIST if player.get_id() == detail["id"])) player.update_local(detail["y"]) except: print("problème avec le message", msg) elif msg[0] == "removePlayer": try: detail = json.loads(msg[1]) player = next((player for player in PLAYER_LIST if player.get_id() == detail["id"])) PLAYER_LIST.remove(player) queue.append(["SERVER", player_name + "est partit"]) except: print("n'é pas pu enlevé je joueur", msg) elif msg[0] == "updateBallLocation": try: detail = json.loads(msg[1]) pong.update( detail["x"], detail["y"], detail["lscore"], detail["rscore"], detail["lwin"], detail["rwin"], detail["sound"], ) except Exception as e: print("erreur de balle", e) elif msg[0] == "receivedMessage": global chat_box try: queue.append(msg[1], msg[2]) except Exception as e: print("erreur chat", e) server.close()
def handle_serveur(queue, serveur, pong, player_name): global PLAYER_LIST data = b'ack;\r\n' while True: msg = serveur.recv(const.RECV_BUFF) liste2 = msg.decode().split(";") # liste actuelle if liste2[0] == "CurrentList": try: print("received list: ", liste2[1]) p_list = json.loads(liste2[1]) update_players(p_list) except: print("current list could not be read:", liste2) elif len(msg) < 250: print(msg) Resmsg = f.decrypt(msg) msg = Resmsg.decode().split(";") # Ajout d'un nouveau joueur if msg[0] == "newPlayer": try: print(msg[1]) detail = json.loads(msg[1]) player = PlayerPaddle(const.SCREENSIZE, detail["id"], detail["color"]) PLAYER_LIST.append(player) queue.append([ "SERVER", "Le nouveau joueur" + player_name + " est arrivé" ]) except: print("le nouveau joueur n'a pu être créé", msg) # mise à jour de la position d'un joueur. elif msg[0] == "updateLocation": try: detail = json.loads(msg[1]) player = next((player for player in PLAYER_LIST if player.get_id() == detail["id"])) player.update_local(detail["y"]) except: print("problème avec le message", msg) # mise à jour de la position de la balle elif msg[0] == "updateBallLocation": try: detail = json.loads(msg[1]) pong.update( detail["x"], detail["y"], detail["lscore"], detail["rscore"], detail["lwin"], detail["rwin"], detail["sound"], ) except Exception as e: print("erreur de balle", e) elif msg[0] == "receivedMessage": global chat_box try: queue.append(msg[1], msg[2]) except Exception as e: print("erreur chat", e) server.close()