Add UDP events: onChangePosition, onSentPing

This commit is contained in:
Maxim Khomutov 2023-07-20 01:59:30 +03:00
parent e086fea2e9
commit 06bd50f0fa
2 changed files with 6 additions and 3 deletions

View File

@ -33,13 +33,13 @@ class UDPServer(asyncio.DatagramTransport):
if client:
match code:
case "p": # Ping packet
# TODO: Call event onSentPing
ev.call_event("onSentPing")
self.transport.sendto(b"p", addr)
case "Z": # Position packet
if client._udp_sock != (self.transport, addr):
client._udp_sock = (self.transport, addr)
self.log.debug(f"Set UDP Sock for CID: {cid}")
# TODO: Call event onChangePosition
ev.call_event("onChangePosition")
if client:
await client._send(data[2:], to_all=True, to_self=False, to_udp=True)
case _:

View File

@ -31,6 +31,8 @@ class EventsSystem:
"onCarDelete": [],
"onCarEdited": [],
"onCarReset": [],
"onSentPing": [], # Only sync
"onChangePosition": [], # Only sync
"onServerStopped": [],
}
self.__async_events = {
@ -86,6 +88,7 @@ class EventsSystem:
return funcs_data
def call_event(self, event_name, *args, **kwargs):
if event_name not in ["onChangePosition", "onSentPing"]: # UDP events
self.log.debug(f"Calling sync event: '{event_name}'")
funcs_data = []