Compare commits

..

No commits in common. "6f5dc4bcff79de8c10e9ab156b062a39b3556054" and "e81fab7bf8cd9da9d526be9131f6170a2a83f09f" have entirely different histories.

3 changed files with 12 additions and 11 deletions

View File

@ -6,7 +6,7 @@ use crate::{
particle, particle,
replay::recorder::Recorder, replay::recorder::Recorder,
}; };
use anyhow::{Context, Result}; use anyhow::Context;
use azalea::{ use azalea::{
brigadier::exceptions::BuiltInExceptions::DispatcherUnknownCommand, prelude::*, brigadier::exceptions::BuiltInExceptions::DispatcherUnknownCommand, prelude::*,
protocol::packets::game::ClientboundGamePacket, protocol::packets::game::ClientboundGamePacket,
@ -20,7 +20,7 @@ use std::net::SocketAddr;
use tokio::net::TcpListener; use tokio::net::TcpListener;
#[allow(clippy::too_many_lines)] #[allow(clippy::too_many_lines)]
pub async fn handle_event(client: Client, event: Event, state: State) -> Result<()> { pub async fn handle_event(client: Client, event: Event, state: State) -> anyhow::Result<()> {
match event { match event {
Event::AddPlayer(player_info) => { Event::AddPlayer(player_info) => {
call_listeners(&state, "add_player", Player::from(player_info)).await; call_listeners(&state, "add_player", Player::from(player_info)).await;
@ -178,11 +178,12 @@ pub async fn handle_event(client: Client, event: Event, state: State) -> Result<
debug!("received initialize event"); debug!("received initialize event");
let globals = state.lua.globals(); let globals = state.lua.globals();
let ecs = client.ecs.clone(); let lua_ecs = client.ecs.clone();
globals.set( globals.set(
"finish_replay_recording", "finish_replay_recording",
state.lua.create_function_mut(move |_, (): ()| { state.lua.create_function_mut(move |_, (): ()| {
ecs.lock() lua_ecs
.lock()
.remove_resource::<Recorder>() .remove_resource::<Recorder>()
.context("recording not active") .context("recording not active")
.map_err(Error::external)? .map_err(Error::external)?

View File

@ -22,11 +22,11 @@ pub struct RecordPlugin {
impl Plugin for RecordPlugin { impl Plugin for RecordPlugin {
fn build(&self, app: &mut bevy_app::App) { fn build(&self, app: &mut bevy_app::App) {
if let Some(recorder) = self.recorder.lock().take() { if let Some(recorder) = self.recorder.lock().take() {
app.insert_resource(recorder) app.insert_resource(recorder);
.add_systems(First, record_login_packets.before(process_packet_events))
.add_systems(First, record_configuration_packets)
.add_systems(First, record_game_packets.before(send_packet_events));
} }
app.add_systems(First, record_login_packets.before(process_packet_events))
.add_systems(First, record_configuration_packets)
.add_systems(First, record_game_packets.before(send_packet_events));
} }
} }

View File

@ -41,7 +41,7 @@ impl Recorder {
} }
pub fn finish(mut self) -> Result<()> { pub fn finish(mut self) -> Result<()> {
let elapsed = self.start.elapsed().as_millis(); let elapsed = self.start.elapsed();
self.zip_writer self.zip_writer
.start_file("metaData.json", SimpleFileOptions::default())?; .start_file("metaData.json", SimpleFileOptions::default())?;
@ -49,8 +49,8 @@ impl Recorder {
json!({ json!({
"singleplayer": false, "singleplayer": false,
"serverName": self.server, "serverName": self.server,
"duration": elapsed, "duration": elapsed.as_millis(),
"date": SystemTime::now().duration_since(UNIX_EPOCH)?.as_millis() - elapsed, "date": (SystemTime::now().duration_since(UNIX_EPOCH)? - elapsed).as_millis(),
"mcversion": VERSION_NAME, "mcversion": VERSION_NAME,
"fileFormat": "MCPR", "fileFormat": "MCPR",
"fileFormatVersion": 14, "fileFormatVersion": 14,