aboutsummaryrefslogtreecommitdiff
path: root/lib/Player.py
blob: 747f8cd8fa9a6a59691b41977f651b9a4456de68 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
from lib.Aircraft import Aircraft
from lib.PacketManager.packets import FSNETCMD_LOGON, FSNETCMD_ADDOBJECT
class Player:
    """
    A player class, this will hold info about the client, including which aircraft they're flying"""
    def __init__(self, server_messages, client_messages, streamWriterObject):

        self.username = ""
        self.alias = ""
        self.aircraft = Aircraft()
        self.version = 0
        self.ip = ""
        self.streamWriterObject = streamWriterObject
        self.is_a_bot = True # We check if they are still present after LOGIN packet, then they're not a bot

    def set_aircraft(self, aircraft:Aircraft):
        self.aircraft = aircraft

    def login(self, packet:FSNETCMD_LOGON):
        self.username = packet.username
        self.alias = packet.alias
        self.version = packet.version

    def set_ip(self, ip):
        self.ip = ip

    def check_add_object(self, packet:FSNETCMD_ADDOBJECT):
        if packet.pilot == self.username:
            self.aircraft = Aircraft()
            self.aircraft.name = packet.identifier
            self.aircraft.id = packet.object_id
            self.aircraft.set_position(packet.pos)
            self.aircraft.set_initial_config({
                "IFF": packet.iff
            })
            return True
        return False