wip onvehiclereset implemented

This commit is contained in:
Luuk van Oijen 2023-12-05 23:18:52 +01:00
parent 8b88127e20
commit bf4c2d120e
3 changed files with 15 additions and 0 deletions

View File

@ -1230,6 +1230,7 @@ impl Server {
// }
}
'd' => {
// TODO: Why does this use different code to split out the data?
debug!("packet: {:?}", packet);
let split_data = packet
.data_as_string()
@ -1257,7 +1258,19 @@ impl Server {
}
}
'r' => {
if packet.data[3] < 48 || packet.data[5] < 48 {
return Err(ServerError::BrokenPacket.into());
}
let client_id = packet.data[3] - 48;
let car_id = packet.data[5] - 48;
let car_json = String::from_utf8_lossy(&packet.data[7..]).to_string();
self.broadcast(Packet::Raw(packet), Some(self.clients[client_idx].id)).await;
for plugin in &mut self.plugins {
plugin.send_event(PluginBoundPluginEvent::CallEventHandler((
ScriptEvent::OnVehicleReset { pid: client_id, vid: car_id, car_data: car_json.clone() },
None,
))).await;
}
}
't' => {
self.broadcast(Packet::Raw(packet), Some(self.clients[client_idx].id))

View File

@ -260,6 +260,7 @@ impl Backend for BackendLua {
ScriptEvent::OnVehicleSpawn { pid, vid, car_data } => ("onVehicleSpawn", vec![Argument::Integer(pid as i64), Argument::Integer(vid as i64), Argument::String(car_data)]),
ScriptEvent::OnVehicleEdited { pid, vid, car_data } => ("onVehicleEdited", vec![Argument::Integer(pid as i64), Argument::Integer(vid as i64), Argument::String(car_data)]),
ScriptEvent::OnVehicleDeleted { pid, vid } => ("onVehicleDeleted", vec![Argument::Integer(pid as i64), Argument::Integer(vid as i64)]),
ScriptEvent::OnVehicleReset { pid, vid, car_data } => ("onVehicleReset", vec![Argument::Integer(pid as i64), Argument::Integer(vid as i64), Argument::String(car_data)]),
ScriptEvent::OnChatMessage { pid, name, message } => ("onChatMessage", vec![Argument::Integer(pid as i64), Argument::String(name), Argument::String(message)]),
};

View File

@ -88,6 +88,7 @@ pub enum ScriptEvent {
OnVehicleSpawn { pid: u8, vid: u8, car_data: String },
OnVehicleEdited { pid: u8, vid: u8, car_data: String },
OnVehicleDeleted { pid: u8, vid: u8 },
OnVehicleReset { pid: u8, vid: u8, car_data: String },
OnChatMessage { pid: u8, name: String, message: String },
}