mirror of
https://github.com/kuitoi/kuitoi-Server.git
synced 2025-08-17 16:25:36 +00:00
Add events onCarSpawn, onCarEdited
This commit is contained in:
parent
f6ff018b03
commit
a5a7a5dfc9
@ -386,7 +386,12 @@ class Client:
|
|||||||
self.log.debug(f"Invalid car_json: Error: {e}; Data: {car_data}")
|
self.log.debug(f"Invalid car_json: Error: {e}; Data: {car_data}")
|
||||||
# allow = True
|
# allow = True
|
||||||
over_spawn = False
|
over_spawn = False
|
||||||
# TODO: Call event onCarSpawn
|
ev_data = ev.call_event("onCarSpawn", car=car_json, car_id=car_id, player=self)
|
||||||
|
d2 = await ev.call_async_event("onCarSpawn", car=car_json, car_id=car_id, player=self)
|
||||||
|
ev_data.extend(d2)
|
||||||
|
for d in ev_data:
|
||||||
|
# TODO: handle event onCarSpawn
|
||||||
|
pass
|
||||||
pkt = f"Os:{self.roles}:{self.nick}:{self.cid}-{car_id}:{car_data}"
|
pkt = f"Os:{self.roles}:{self.nick}:{self.cid}-{car_id}:{car_data}"
|
||||||
unicycle = car_json.get("jbm") == "unicycle"
|
unicycle = car_json.get("jbm") == "unicycle"
|
||||||
# FIXME: unicycle
|
# FIXME: unicycle
|
||||||
@ -423,29 +428,39 @@ class Client:
|
|||||||
self.log.debug(f"Unknown car: car_id={car_id}")
|
self.log.debug(f"Unknown car: car_id={car_id}")
|
||||||
case "c": # Edit car
|
case "c": # Edit car
|
||||||
self.log.debug("Trying to edit car")
|
self.log.debug("Trying to edit car")
|
||||||
allow = True
|
|
||||||
# TODO: Call event onCarEdited
|
|
||||||
cid, car_id = self._get_cid_vid(dta)
|
cid, car_id = self._get_cid_vid(dta)
|
||||||
if car_id != -1 and cid == self.cid:
|
|
||||||
try:
|
try:
|
||||||
car = self.cars[car_id]
|
client = self.__Core.get_client(cid=cid)
|
||||||
if car['unicycle']:
|
if client:
|
||||||
self._cars.pop(car_id)
|
car = client.cars[car_id]
|
||||||
await self._send(f"Od:{self.cid}-{car_id}", to_all=True, to_self=True)
|
new_car_json = {}
|
||||||
elif allow:
|
|
||||||
await self._send(dta, to_all=True, to_self=False)
|
|
||||||
if car['json_ok']:
|
|
||||||
old_car_json = car['json']
|
|
||||||
try:
|
try:
|
||||||
new_car_json = json.loads(data[data.find("{"):])
|
new_car_json = json.loads(data[data.find("{"):])
|
||||||
old_car_json.update(new_car_json)
|
|
||||||
car['json'] = new_car_json
|
|
||||||
self.log.debug(f"Updated car: car_id={car_id}")
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.log.debug(f"Invalid new_car_json: Error: {e}; Data: {data}")
|
self.log.debug(f"Invalid new_car_json: Error: {e}; Data: {data}")
|
||||||
|
|
||||||
|
allow = False
|
||||||
|
ev_data = ev.call_event("onCarEdited", car=new_car_json, car_id=car_id, player=self)
|
||||||
|
d2 = await ev.call_async_event("onCarEdited", car=new_car_json, car_id=car_id, player=self)
|
||||||
|
ev_data.extend(d2)
|
||||||
|
for d in ev_data:
|
||||||
|
# TODO: handle event onCarEdited
|
||||||
|
pass
|
||||||
|
|
||||||
|
if car_id != -1 and cid == self.cid or allow:
|
||||||
|
if car['unicycle']:
|
||||||
|
self._cars.pop(car_id)
|
||||||
|
await self._send(f"Od:{cid}-{car_id}", to_all=True, to_self=True)
|
||||||
|
else:
|
||||||
|
await self._send(dta, to_all=True, to_self=False)
|
||||||
|
if car['json_ok']:
|
||||||
|
old_car_json = car['json']
|
||||||
|
old_car_json.update(new_car_json)
|
||||||
|
car['json'] = old_car_json
|
||||||
|
self.log.debug(f"Updated car: car_id={car_id}")
|
||||||
except IndexError:
|
except IndexError:
|
||||||
self.log.debug(f"Unknown car: car_id={car_id}")
|
self.log.debug(f"Unknown car: car_id={car_id}")
|
||||||
|
|
||||||
case "r": # Reset car
|
case "r": # Reset car
|
||||||
self.log.debug("Trying to reset car")
|
self.log.debug("Trying to reset car")
|
||||||
cid, car_id = self._get_cid_vid(dta)
|
cid, car_id = self._get_cid_vid(dta)
|
||||||
|
@ -27,12 +27,16 @@ class EventsSystem:
|
|||||||
"onPlayerAuthenticated": [], # Only sync
|
"onPlayerAuthenticated": [], # Only sync
|
||||||
"onPlayerJoin": [],
|
"onPlayerJoin": [],
|
||||||
"onChatReceive": [],
|
"onChatReceive": [],
|
||||||
|
"onCarSpawn": [],
|
||||||
|
"onCarEdited": [],
|
||||||
"onServerStopped": [],
|
"onServerStopped": [],
|
||||||
}
|
}
|
||||||
self.__async_events = {
|
self.__async_events = {
|
||||||
"onServerStarted": [],
|
"onServerStarted": [],
|
||||||
"onPlayerJoin": [],
|
"onPlayerJoin": [],
|
||||||
"onChatReceive": [],
|
"onChatReceive": [],
|
||||||
|
"onCarSpawn": [],
|
||||||
|
"onCarEdited": [],
|
||||||
"onServerStopped": []
|
"onServerStopped": []
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user