mirror of
https://github.com/BeamMP/BeamMP-Server.git
synced 2026-10-25 21:40:09 +00:00
mod download now gets halfway
This commit is contained in:
1 parent
efad9ec03e
commit
ad85317f60
1 file changed
+28
-19
+28
-19
@@ -155,8 +155,6 @@ impl Client {
|
|||||||
let id = self.read_raw(1).await?[0] as usize;
|
let id = self.read_raw(1).await?[0] as usize;
|
||||||
debug!("HandleDownload connection for client id: {}", id);
|
debug!("HandleDownload connection for client id: {}", id);
|
||||||
|
|
||||||
self.write_packet(Packet::Raw(RawPacket::from_str("AG"))).await?;
|
|
||||||
|
|
||||||
// TODO: How does this work???
|
// TODO: How does this work???
|
||||||
|
|
||||||
let mut lock = CLIENT_MOD_PROGRESS.lock().await;
|
let mut lock = CLIENT_MOD_PROGRESS.lock().await;
|
||||||
@@ -178,16 +176,23 @@ impl Client {
|
|||||||
let file_data = std::fs::read(mod_path)?;
|
let file_data = std::fs::read(mod_path)?;
|
||||||
|
|
||||||
let packet = RawPacket::from_data(file_data);
|
let packet = RawPacket::from_data(file_data);
|
||||||
// self.write_packet(Packet::Raw(packet)).await?;
|
// let packet1 = RawPacket::from_data(file_data[..(file_data.len()/2)].to_vec());
|
||||||
|
// let packet2 = RawPacket::from_data(file_data[(file_data.len()/2)..].to_vec());
|
||||||
|
|
||||||
{
|
{
|
||||||
let mut lock = self.write_half.lock().await;
|
let mut lock = self.write_half.lock().await;
|
||||||
lock.writable().await?;
|
lock.writable().await?;
|
||||||
trace!("Sending packet!");
|
trace!("Sending packets!");
|
||||||
if let Err(e) = tcp_write_raw(lock.deref_mut(), Packet::Raw(packet)).await {
|
if let Err(e) = tcp_write_raw(lock.deref_mut(), Packet::Raw(packet)).await {
|
||||||
error!("{:?}", e);
|
error!("{:?}", e);
|
||||||
}
|
}
|
||||||
trace!("Packet sent!");
|
// if let Err(e) = tcp_write_raw(lock.deref_mut(), Packet::Raw(packet1)).await {
|
||||||
|
// error!("{:?}", e);
|
||||||
|
// }
|
||||||
|
// if let Err(e) = tcp_write_raw(lock.deref_mut(), Packet::Raw(packet2)).await {
|
||||||
|
// error!("{:?}", e);
|
||||||
|
// }
|
||||||
|
trace!("Packets sent!");
|
||||||
drop(lock);
|
drop(lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -258,22 +263,24 @@ impl Client {
|
|||||||
match packet.data[0] as char {
|
match packet.data[0] as char {
|
||||||
'S' if packet.data.len() > 1 => match packet.data[1] as char {
|
'S' if packet.data.len() > 1 => match packet.data[1] as char {
|
||||||
'R' => {
|
'R' => {
|
||||||
// let file_packet = RawPacket::from_code('-');
|
let file_packet = if config.mods.len() == 0 {
|
||||||
// let file_data = "/bepis_dysoon_uu201_v3.zip;/bepis_laudi_v8_revolution.zip;/simraceclubclient.zip;48353220;50283849;1937;";
|
RawPacket::from_code('-')
|
||||||
let mut file_data = String::new();
|
} else {
|
||||||
for (name, size) in &config.mods {
|
let mut file_data = String::new();
|
||||||
let mut mod_name = name.clone();
|
for (name, size) in &config.mods {
|
||||||
if mod_name.starts_with("/") == false {
|
let mut mod_name = name.clone();
|
||||||
mod_name = format!("/{mod_name}");
|
if mod_name.starts_with("/") == false {
|
||||||
|
mod_name = format!("/{mod_name}");
|
||||||
|
}
|
||||||
|
file_data.push_str(&format!("{mod_name};"));
|
||||||
}
|
}
|
||||||
file_data.push_str(&format!("{mod_name};"));
|
for (name, size) in &config.mods {
|
||||||
}
|
file_data.push_str(&format!("{size};"));
|
||||||
for (name, size) in &config.mods {
|
}
|
||||||
file_data.push_str(&format!("{size};"));
|
RawPacket::from_str(&file_data)
|
||||||
}
|
};
|
||||||
let file_packet = RawPacket::from_str(&file_data);
|
|
||||||
self.write_packet(Packet::Raw(file_packet))
|
self.write_packet(Packet::Raw(file_packet))
|
||||||
.await?
|
.await?;
|
||||||
}
|
}
|
||||||
_ => error!("Unknown packet! {:?}", packet),
|
_ => error!("Unknown packet! {:?}", packet),
|
||||||
}
|
}
|
||||||
@@ -282,6 +289,8 @@ impl Client {
|
|||||||
let mut file_name = packet.data_as_string().clone();
|
let mut file_name = packet.data_as_string().clone();
|
||||||
file_name.remove(0); // Remove f
|
file_name.remove(0); // Remove f
|
||||||
debug!("Client requested file {}", file_name);
|
debug!("Client requested file {}", file_name);
|
||||||
|
|
||||||
|
self.write_packet(Packet::Raw(RawPacket::from_str("AG"))).await?;
|
||||||
}
|
}
|
||||||
_ => error!("Unknown packet! {:?}", packet),
|
_ => error!("Unknown packet! {:?}", packet),
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in new issue
Block a user