diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/PacketManager/packets/FSNETCMD_ADDOBJECT.py | 27 | ||||
| -rw-r--r-- | lib/PacketManager/packets/FSNETCMD_AIRPLANESTATE.py | 6 | ||||
| -rw-r--r-- | lib/PacketManager/packets/FSNETCMD_JOINREQUEST.py | 4 | ||||
| -rw-r--r-- | lib/Player.py | 1 | ||||
| -rw-r--r-- | lib/plugin_manager.py | 6 |
5 files changed, 36 insertions, 8 deletions
diff --git a/lib/PacketManager/packets/FSNETCMD_ADDOBJECT.py b/lib/PacketManager/packets/FSNETCMD_ADDOBJECT.py index ef7f785..61e2b3f 100644 --- a/lib/PacketManager/packets/FSNETCMD_ADDOBJECT.py +++ b/lib/PacketManager/packets/FSNETCMD_ADDOBJECT.py @@ -46,7 +46,34 @@ class FSNETCMD_ADDOBJECT: #5 #There is an extra short, but it's just set to 0 if len(self.buffer) >= 176: self.pilot = unpack("32s", self.buffer[124:156])[0].decode().strip('\x00') + + def to_dict(self): + return { + "object_type": self.object_type, + "net_type": self.net_type, + "object_id": self.object_id, + "iff": self.iff, + "pos": self.pos, + "atti": self.atti, + "identifier": self.identifier, + "substrname": self.substrname, + "ysfid": self.ysfid, + "flags": self.flags, + "flags0": self.flags0, + "outside_radius": self.outsideRadius, + "aircraft_class": self.aircraft_class, + "aircraft_category": self.aircraft_category, + "pilot": self.pilot + } + def to_packet(self, with_size:bool=True): + return FSNETCMD_ADDOBJECT.encode(self.object_type, self.net_type, + self.object_id, self.iff, self.pos, + self.atti, self.identifier, self.substrname, + self.ysfid, self.flags, self.flags0, + self.outsideRadius, self.aircraft_class, + self.aircraft_category, self.pilot, with_size) + @staticmethod def encode(object_type, net_type, object_id, iff, pos, atti, identifier, substrname, ysfid, flags, flags0, outside_radius, aircraft_class=None, aircraft_category=None, diff --git a/lib/PacketManager/packets/FSNETCMD_AIRPLANESTATE.py b/lib/PacketManager/packets/FSNETCMD_AIRPLANESTATE.py index 3ebf8d6..9ebfc00 100644 --- a/lib/PacketManager/packets/FSNETCMD_AIRPLANESTATE.py +++ b/lib/PacketManager/packets/FSNETCMD_AIRPLANESTATE.py @@ -198,7 +198,7 @@ class FSNETCMD_AIRPLANESTATE: #11 packet = self.buffer[:56] + pack('h',flag) + self.buffer[58:] return pack('I',len(packet)) + packet else: - flag = unpack('h',self.buffer[74:75])[0] + flag = unpack('h',self.buffer[74:76])[0] flag &= ~((255<<8)|2) flag |= (255<<8) | 2 @@ -213,7 +213,7 @@ class FSNETCMD_AIRPLANESTATE: #11 packet = self.buffer[:56] + pack('h',flag) + self.buffer[58:] return pack('I',len(packet)) + packet else: - flag = unpack('h',self.buffer[74:75])[0] + flag = unpack('h',self.buffer[74:76])[0] flag &= ~(8) packet = self.buffer[:74] + pack('h',flag) + self.buffer[76:] return pack('I',len(packet)) + packet @@ -235,7 +235,7 @@ class FSNETCMD_AIRPLANESTATE: #11 buffer = pack("IfI", 11, remote_time, player_id) buffer += pack("H", packet_version) if packet_version == 4 or packet_version == 5: - buffer += pack("fffhhhhhhhhh", *position, *atti, *velocity, *atti_velocity) + buffer += pack("3f9H", *position, *atti, *velocity, *atti_velocity) buffer += pack("hhhh", smoke_oil, fuel, payload, 0) buffer += pack("BB", flight_state, int(vgw*255)) buffer += pack("BB", int(spoiler*15)<<4 | int(landing_gear*15), int(flap*15)<<4 | int(brake*15)) diff --git a/lib/PacketManager/packets/FSNETCMD_JOINREQUEST.py b/lib/PacketManager/packets/FSNETCMD_JOINREQUEST.py index 7796599..f24c94a 100644 --- a/lib/PacketManager/packets/FSNETCMD_JOINREQUEST.py +++ b/lib/PacketManager/packets/FSNETCMD_JOINREQUEST.py @@ -7,7 +7,7 @@ class FSNETCMD_JOINREQUEST: #8 """ def __init__(self, buffer:bytes, should_decode:bool=True): self.buffer = buffer - self.iff = None + self.iff = 0 # The IFF sent is 1 subtracted from the selected value by the player self.aircraft = None self.start_pos = None #It's the STP name self.fuel = None @@ -26,4 +26,4 @@ class FSNETCMD_JOINREQUEST: #8 start_pos.encode(), 1, fuel, smoke) if with_size: return pack("I",len(buffer))+buffer - return buffer
\ No newline at end of file + return buffer diff --git a/lib/Player.py b/lib/Player.py index 7f54914..8e2250a 100644 --- a/lib/Player.py +++ b/lib/Player.py @@ -12,6 +12,7 @@ class Player: 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 + self.iff = 1 def set_aircraft(self, aircraft:Aircraft): self.aircraft = aircraft diff --git a/lib/plugin_manager.py b/lib/plugin_manager.py index 07e28e6..52fb1f7 100644 --- a/lib/plugin_manager.py +++ b/lib/plugin_manager.py @@ -58,16 +58,16 @@ class PluginManager: If a callback returns False, then the original data is set to None and not forwarded to the destination. This is useful for modifying packets.""" - keep_orignal = True + keep_original = True if hook_name in self.hooks: for callback in self.hooks[hook_name]: keep = callback(data, *args, **kwargs) if type(keep) == bool: if keep == False: - keep_orignal = False + keep_original = False else: warning(f"Return value of {callback} is not a boolean") - return keep_orignal + return keep_original def trigger_command(self, command:str, player, full_message:str, message_to_client:list, message_to_server:list): """Triggers the command""" |
