packet builder, compression rewrite, (try) clone connection, getters and setters
This commit is contained in:
parent
1f72b280d5
commit
4ebf859a9c
5 changed files with 211 additions and 91 deletions
|
@ -41,7 +41,7 @@ fn accept_client(mut conn: MCConnTcp, server: Arc<Mutex<MinecraftServer>>) -> Re
|
|||
};
|
||||
|
||||
if handshake {
|
||||
if packet.id == 0x00 {
|
||||
if packet.id() == 0x00 {
|
||||
let mut status = Packet::empty(0x00);
|
||||
|
||||
let serv = server.lock().unwrap();
|
||||
|
@ -53,12 +53,12 @@ fn accept_client(mut conn: MCConnTcp, server: Arc<Mutex<MinecraftServer>>) -> Re
|
|||
|
||||
status.write_string(&motd)?;
|
||||
conn.write_packet(&status)?;
|
||||
} else if packet.id == 0x01 {
|
||||
} else if packet.id() == 0x01 {
|
||||
let mut status = Packet::empty(0x01);
|
||||
status.write_long(packet.read_long()?)?;
|
||||
conn.write_packet(&status)?;
|
||||
}
|
||||
} else if packet.id == 0x00 {
|
||||
} else if packet.id() == 0x00 {
|
||||
let protocol_version = packet.read_i32_varint()?;
|
||||
let server_address = packet.read_string()?;
|
||||
let server_port = packet.read_unsigned_short()?;
|
||||
|
@ -67,7 +67,7 @@ fn accept_client(mut conn: MCConnTcp, server: Arc<Mutex<MinecraftServer>>) -> Re
|
|||
if next_state != 1 { break; }
|
||||
|
||||
println!("Client handshake info:");
|
||||
println!(" IP: {}", conn.stream.peer_addr().unwrap());
|
||||
println!(" IP: {}", conn.get_ref().peer_addr().unwrap());
|
||||
println!(" Protocol version: {}", protocol_version);
|
||||
println!(" Server address: {}", server_address);
|
||||
println!(" Server port: {}", server_port);
|
||||
|
|
|
@ -1,37 +0,0 @@
|
|||
use std::{net::TcpListener, thread, sync::mpsc::channel};
|
||||
use rust_mc_proto::{DataBufferReader, DataBufferWriter, MCConnTcp, Packet};
|
||||
|
||||
const LONG_TEXT: &str = "some_long_text_wow_123123123123123123123123";
|
||||
|
||||
fn main() {
|
||||
let (tx, rx) = channel::<()>();
|
||||
|
||||
let server_tx = tx.clone();
|
||||
thread::spawn(move || {
|
||||
let listener = TcpListener::bind("localhost:44447").unwrap();
|
||||
|
||||
server_tx.send(()).unwrap();
|
||||
|
||||
for stream in listener.incoming() {
|
||||
let mut stream = MCConnTcp::new(stream.unwrap());
|
||||
stream.set_compression(Some(2));
|
||||
|
||||
let packet = stream.read_packet().unwrap();
|
||||
stream.write_packet(&packet).unwrap();
|
||||
}
|
||||
});
|
||||
|
||||
rx.recv().unwrap();
|
||||
|
||||
let mut conn = MCConnTcp::connect("localhost:44447").unwrap();
|
||||
conn.set_compression(Some(2));
|
||||
|
||||
let mut packet = Packet::empty(0x12);
|
||||
packet.write_string(LONG_TEXT).unwrap();
|
||||
conn.write_packet(&packet).unwrap();
|
||||
|
||||
let mut packet = conn.read_packet().unwrap();
|
||||
if packet.id == 0x12 && packet.read_string().unwrap() == LONG_TEXT {
|
||||
println!("success");
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue