Esempio n. 1
0
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()
Esempio n. 2
0
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()
Esempio n. 3
0
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()