|
|
@ -7,9 +7,8 @@ use varint_rs::{VarintReader, VarintWriter};
|
|
|
|
|
|
|
|
|
|
|
|
use crate::{
|
|
|
|
use crate::{
|
|
|
|
Connected, Server, Status,
|
|
|
|
Connected, Server, Status,
|
|
|
|
error::ChatError,
|
|
|
|
error::{ChatError, Result},
|
|
|
|
error::Result,
|
|
|
|
readers::{read_packet, read_plugin_msg, read_string, try_read_plugin_msg},
|
|
|
|
readers::{read_packet, read_plugin_msg, read_string},
|
|
|
|
|
|
|
|
status::ServerType,
|
|
|
|
status::ServerType,
|
|
|
|
writers::{write_packet, write_plugin_msg, write_string},
|
|
|
|
writers::{write_packet, write_plugin_msg, write_string},
|
|
|
|
};
|
|
|
|
};
|
|
|
@ -200,27 +199,19 @@ impl Server<Status> {
|
|
|
|
Ok(())
|
|
|
|
Ok(())
|
|
|
|
})?;
|
|
|
|
})?;
|
|
|
|
|
|
|
|
|
|
|
|
// Serrver FluidIdmap
|
|
|
|
// Server Mod registried
|
|
|
|
read_plugin_msg(&mut stream, "FORGE", |packet| {
|
|
|
|
while try_read_plugin_msg(&mut stream, |channel, packet| {
|
|
|
|
let discriminant = VarintReader::read(packet)?;
|
|
|
|
dbg!(channel);
|
|
|
|
assert_eq!(discriminant, 2);
|
|
|
|
if channel != "FML|HS" {
|
|
|
|
Ok(())
|
|
|
|
Ok(true)
|
|
|
|
})?;
|
|
|
|
} else {
|
|
|
|
|
|
|
|
let discriminant = VarintReader::read(packet)?;
|
|
|
|
// HandshakeAck pendingcomplete
|
|
|
|
assert_eq!(discriminant, 255);
|
|
|
|
write_plugin_msg(&mut stream, "FML|HS", |body| {
|
|
|
|
let phrase = VarintReader::read(packet)?;
|
|
|
|
body.write_all(&[0xFF, 0x04])?;
|
|
|
|
assert_eq!(phrase, 3);
|
|
|
|
Ok(())
|
|
|
|
Ok(false)
|
|
|
|
})?;
|
|
|
|
}
|
|
|
|
|
|
|
|
})? {}
|
|
|
|
// Server HandshakeAck complete
|
|
|
|
|
|
|
|
read_plugin_msg(&mut stream, "FML|HS", |packet| {
|
|
|
|
|
|
|
|
let discriminant = VarintReader::read(packet)?;
|
|
|
|
|
|
|
|
assert_eq!(discriminant, 255);
|
|
|
|
|
|
|
|
let phrase = VarintReader::read(packet)?;
|
|
|
|
|
|
|
|
assert_eq!(phrase, 3);
|
|
|
|
|
|
|
|
Ok(())
|
|
|
|
|
|
|
|
})?;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// HandshakeAck complete
|
|
|
|
// HandshakeAck complete
|
|
|
|
write_plugin_msg(&mut stream, "FML|HS", |body| {
|
|
|
|
write_plugin_msg(&mut stream, "FML|HS", |body| {
|
|
|
|