refactor: app event bus (#6985)

* refactor: app event bus

* fix: use messagepack + cleanup

* fix: use postcard

* fix: lint

* fix: import gate

* fix: prettierignore + lint

* fix: lint

* fix: rev
This commit is contained in:
Calum H.
2026-08-13 16:33:06 +00:00
committed by GitHub
parent 5f7493491f
commit 579109a478
93 changed files with 2669 additions and 834 deletions
+2 -2
View File
@@ -253,8 +253,8 @@ impl DirectoryInfo {
if prev_dir != move_dir {
let loader_bar_id = init_loading(
LoadingBarType::DirectoryMove {
old: prev_dir.clone(),
new: move_dir.clone(),
old: prev_dir.to_string_lossy().into_owned(),
new: move_dir.to_string_lossy().into_owned(),
},
100.0,
"Moving launcher directory",
+3 -3
View File
@@ -192,11 +192,11 @@ impl FriendsSocket {
match server_message {
ServerToClientMessage::StatusUpdate { status } => {
statuses.insert(status.user_id, status.clone());
let _ = emit_friend(FriendPayload::StatusUpdate { user_status: status }).await;
let _ = emit_friend(FriendPayload::StatusUpdate { user_status: status.into() }).await;
},
ServerToClientMessage::UserOffline { id } => {
statuses.remove(&id);
let _ = emit_friend(FriendPayload::UserOffline { id }).await;
let _ = emit_friend(FriendPayload::UserOffline { id: id.to_string() }).await;
}
ServerToClientMessage::FriendStatuses { statuses: new_statuses } => {
statuses.clear();
@@ -206,7 +206,7 @@ impl FriendsSocket {
let _ = emit_friend(FriendPayload::StatusSync).await;
}
ServerToClientMessage::FriendRequest { from } => {
let _ = emit_friend(FriendPayload::FriendRequest { from }).await;
let _ = emit_friend(FriendPayload::FriendRequest { from: from.to_string() }).await;
}
ServerToClientMessage::FriendRequestRejected { .. } => {}, // TODO
@@ -73,6 +73,10 @@ impl LauncherFeatureVersion {
}
#[derive(Debug, Eq, PartialEq, Clone, Copy, Deserialize, Serialize)]
#[cfg_attr(
feature = "export-ts",
derive(ts_rs::TS, postcard_bindgen::PostcardBindings)
)]
#[serde(rename_all = "lowercase")]
pub enum ModLoader {
Vanilla,
+18 -24
View File
@@ -18,8 +18,6 @@ use std::path::{Path, PathBuf};
use std::process::ExitStatus;
use std::sync::LazyLock;
use std::time::Instant;
#[cfg(feature = "tauri")]
use tauri::Emitter;
use tempfile::TempDir;
use tokio::io::{AsyncBufReadExt, BufReader};
use tokio::process::{Child, Command};
@@ -298,7 +296,11 @@ struct Process {
rpc_server: RpcServer,
}
#[derive(Debug, Default, Serialize, Clone)]
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
#[cfg_attr(
feature = "export-ts",
derive(ts_rs::TS, postcard_bindgen::PostcardBindings)
)]
pub struct Log4jEvent {
pub timestamp_millis: Option<i64>,
pub logger_name: Option<String>,
@@ -606,15 +608,11 @@ impl Process {
#[cfg(feature = "tauri")]
{
if let Ok(event_state) = crate::EventState::get() {
let _ = event_state.app.emit(
"log",
LogPayload {
instance_id: instance_id.to_string(),
event: LogEvent::Log4j(event.clone()),
},
);
}
let event_state = crate::EventState::get();
let _ = event_state.send(crate::event::AppEvent::Log(LogPayload {
instance_id: instance_id.to_string(),
event: LogEvent::Log4j(event.clone()),
}));
}
#[cfg(not(feature = "tauri"))]
{
@@ -627,17 +625,13 @@ impl Process {
#[cfg(feature = "tauri")]
{
if let Ok(event_state) = crate::EventState::get() {
let _ = event_state.app.emit(
"log",
LogPayload {
instance_id: instance_id.to_string(),
event: LogEvent::Legacy {
message: message.to_string(),
},
},
);
}
let event_state = crate::EventState::get();
let _ = event_state.send(crate::event::AppEvent::Log(LogPayload {
instance_id: instance_id.to_string(),
event: LogEvent::Legacy {
message: message.to_string(),
},
}));
}
#[cfg(not(feature = "tauri"))]
{
@@ -735,7 +729,7 @@ impl Process {
InstancePayloadType::ServerJoined {
host,
port,
timestamp,
timestamp: timestamp.to_rfc3339(),
},
)
.await;