read bytes fix + 0.1.3 ver
This commit is contained in:
parent
2614d6bbd0
commit
4c1824401c
@ -7,7 +7,7 @@ license-file = "LICENSE"
|
||||
readme = "README.md"
|
||||
keywords = ["minecraft", "protocol", "packets", "lightweight"]
|
||||
|
||||
version = "0.1.2"
|
||||
version = "0.1.3"
|
||||
edition = "2021"
|
||||
|
||||
[dependencies]
|
||||
|
30
src/lib.rs
30
src/lib.rs
@ -79,23 +79,12 @@ impl Packet {
|
||||
let bytes = s.as_bytes();
|
||||
|
||||
self.write_usize_varint(bytes.len())?;
|
||||
|
||||
for b in bytes {
|
||||
self.write(*b)?;
|
||||
}
|
||||
|
||||
Ok(())
|
||||
self.write_bytes(bytes)
|
||||
}
|
||||
|
||||
pub fn read_string(&mut self) -> Result<String, ProtocolError> {
|
||||
let size = self.read_usize_varint()?;
|
||||
let mut bytes: Vec<u8> = vec![0; size];
|
||||
|
||||
for _ in 0..size {
|
||||
bytes.push(self.read()?);
|
||||
}
|
||||
|
||||
match String::from_utf8(bytes) {
|
||||
match String::from_utf8(self.read_bytes(size)?) {
|
||||
Ok(i) => Ok(i),
|
||||
Err(_) => Err(ProtocolError::StringParseError)
|
||||
}
|
||||
@ -107,6 +96,21 @@ impl Packet {
|
||||
Err(_) => Err(ProtocolError::UnsignedShortError),
|
||||
}
|
||||
}
|
||||
|
||||
pub fn write_bytes(&mut self, bytes: &[u8]) -> Result<(), ProtocolError> {
|
||||
match Write::write_all(&mut self.buffer, bytes) {
|
||||
Ok(_) => Ok(()),
|
||||
Err(_) => Err(ProtocolError::WriteError),
|
||||
}
|
||||
}
|
||||
|
||||
pub fn read_bytes(&mut self, size: usize) -> Result<Vec<u8>, ProtocolError> {
|
||||
let mut bytes = vec![0; size];
|
||||
match Read::read(&mut self.buffer, &mut bytes) {
|
||||
Ok(_) => Ok(bytes),
|
||||
Err(_) => Err(ProtocolError::WriteError)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub struct MinecraftConnection<T: Read + Write> {
|
||||
|
@ -33,10 +33,10 @@ fn read_status_response(conn: &mut MCConn<TcpStream>) -> Result<String, Protocol
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let mut conn = MCConn::connect("sloganmc.ru:25565").unwrap();
|
||||
let mut conn = MCConn::connect("msk1b.haku.su:25566").unwrap();
|
||||
|
||||
send_handshake(&mut conn, 765, "sloganmc.ru", 25565, 1).unwrap();
|
||||
send_handshake(&mut conn, 765, "msk1b.haku.su", 25565, 1).unwrap();
|
||||
send_status_request(&mut conn).unwrap();
|
||||
|
||||
println!("{}", read_status_response(&mut conn).unwrap());
|
||||
dbg!(read_status_response(&mut conn).unwrap());
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user