Improved plugin modularity and protocol

This commit is contained in:
2025-12-14 11:03:02 +01:00
parent 51708ac050
commit 4eae3c046d
5 changed files with 28 additions and 68 deletions
+1 -1
View File
@@ -11,7 +11,7 @@ use crate::plugin::types::{LoaderMessage, PluginMessage};
pub struct Plugin(TcpStream, BufReader<TcpStream>);
impl Plugin {
pub fn send(&mut self, m: LoaderMessage) {
pub fn send(&mut self, m: &LoaderMessage) {
self.0
.write(serde_json::to_string(&m).unwrap().as_bytes())
.unwrap();
+9 -1
View File
@@ -1,6 +1,9 @@
use serde::{Deserialize, Serialize};
use crate::types::message::{ClientMessage, WsMessage};
use crate::types::{
data::Message,
message::{ClientMessage, WsMessage},
};
#[derive(Debug, Serialize, Deserialize)]
pub struct PluginJson {
@@ -23,6 +26,11 @@ pub enum LoaderMessage {
user_id: String,
msg: WsMessage<ClientMessage>,
},
MessageSent {
user_id: String,
msg: Message,
},
}
#[derive(Debug, Clone, Serialize, Deserialize)]
+8 -1
View File
@@ -1,6 +1,8 @@
use std::sync::Arc;
use crate::{server::Server, types, utils::client::Client};
use serde_json::ser;
use crate::{plugin::types::LoaderMessage, server::Server, types, utils::client::Client};
crate::logger!(LOGGER "Message Manager");
@@ -43,6 +45,11 @@ pub fn send(
});
}
server.send_plugin_message(&LoaderMessage::MessageSent {
user_id: client.get_uuid().unwrap_or_default(),
msg: msg,
});
Ok(())
}
+10 -7
View File
@@ -178,13 +178,10 @@ impl Server {
loop {
let req = client.read()?;
if let Some(r) = &req {
for p in self.plugins.lock().unwrap().iter_mut() {
p.send(LoaderMessage::Request {
user_id: client.get_uuid().unwrap_or_default(),
msg: r.clone(),
});
}
self.send_plugin_message(&LoaderMessage::Request {
user_id: client.get_uuid().unwrap_or_default(),
msg: r.clone(),
});
self.wrap_err(&client, self.call_request(r, &client))?;
}
}
@@ -206,4 +203,10 @@ impl Server {
res
}
pub fn send_plugin_message(&self, msg: &LoaderMessage) {
for p in self.plugins.lock().unwrap().iter_mut() {
p.send(msg);
}
}
}