fix(replay/plugin): still check if recorder exists
This partially backs out commit f77aea28d1afbc173a1becaf0ecc7a59568caa4c.
This commit is contained in:
parent
9b6991ae80
commit
15cd2e673e
@ -30,7 +30,11 @@ impl Plugin for RecordPlugin {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn record_login_packets(mut recorder: ResMut<Recorder>, mut events: EventReader<LoginPacketEvent>) {
|
fn record_login_packets(
|
||||||
|
recorder: Option<ResMut<Recorder>>,
|
||||||
|
mut events: EventReader<LoginPacketEvent>,
|
||||||
|
) {
|
||||||
|
if let Some(mut recorder) = recorder {
|
||||||
for event in events.read() {
|
for event in events.read() {
|
||||||
if recorder.should_ignore_compression
|
if recorder.should_ignore_compression
|
||||||
&& let ClientboundLoginPacket::LoginCompression(_) = *event.packet
|
&& let ClientboundLoginPacket::LoginCompression(_) = *event.packet
|
||||||
@ -42,21 +46,26 @@ fn record_login_packets(mut recorder: ResMut<Recorder>, mut events: EventReader<
|
|||||||
error!("failed to record login packet: {error:?}");
|
error!("failed to record login packet: {error:?}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn record_configuration_packets(
|
fn record_configuration_packets(
|
||||||
mut recorder: ResMut<Recorder>,
|
recorder: Option<ResMut<Recorder>>,
|
||||||
mut events: EventReader<ConfigurationEvent>,
|
mut events: EventReader<ConfigurationEvent>,
|
||||||
) {
|
) {
|
||||||
|
if let Some(mut recorder) = recorder {
|
||||||
for event in events.read() {
|
for event in events.read() {
|
||||||
if let Err(error) = recorder.save_packet(&event.packet) {
|
if let Err(error) = recorder.save_packet(&event.packet) {
|
||||||
error!("failed to record configuration packet: {error:?}");
|
error!("failed to record configuration packet: {error:?}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn record_game_packets(mut recorder: ResMut<Recorder>, query: Query<&RawConnection>) {
|
fn record_game_packets(recorder: Option<ResMut<Recorder>>, query: Query<&RawConnection>) {
|
||||||
for raw_conn in query.iter() {
|
if let Some(mut recorder) = recorder
|
||||||
|
&& let Ok(raw_conn) = query.get_single()
|
||||||
|
{
|
||||||
let queue = raw_conn.incoming_packet_queue();
|
let queue = raw_conn.incoming_packet_queue();
|
||||||
for raw_packet in queue.lock().iter() {
|
for raw_packet in queue.lock().iter() {
|
||||||
if let Err(error) = recorder.save_raw_packet(raw_packet) {
|
if let Err(error) = recorder.save_raw_packet(raw_packet) {
|
||||||
|
@ -66,6 +66,7 @@ impl Recorder {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn save_raw_packet(&mut self, raw_packet: &[u8]) -> Result<()> {
|
pub fn save_raw_packet(&mut self, raw_packet: &[u8]) -> Result<()> {
|
||||||
|
println!("{}", raw_packet.len());
|
||||||
let mut data = Vec::with_capacity(raw_packet.len() + 8);
|
let mut data = Vec::with_capacity(raw_packet.len() + 8);
|
||||||
data.extend(&TryInto::<u32>::try_into(self.start.elapsed().as_millis())?.to_be_bytes());
|
data.extend(&TryInto::<u32>::try_into(self.start.elapsed().as_millis())?.to_be_bytes());
|
||||||
data.extend(&TryInto::<u32>::try_into(raw_packet.len())?.to_be_bytes());
|
data.extend(&TryInto::<u32>::try_into(raw_packet.len())?.to_be_bytes());
|
||||||
|
Loading…
x
Reference in New Issue
Block a user