diff --git a/src/minecraft/client/packet.rs b/src/minecraft/client/packet.rs index 7fdf0dd..df1ec50 100644 --- a/src/minecraft/client/packet.rs +++ b/src/minecraft/client/packet.rs @@ -56,13 +56,16 @@ impl Client { async fn proxy_start(&mut self) -> Result<(),String> { println!("[{}] starting proxy mode", self); -// let stream = TcpStream::connect(&self.server.as_ref().unwrap().redirect_ip.as_ref().unwrap()).await - let stream = TcpStream::connect("play.hypixel.net").await + let redirect_ip = &self.server.as_ref().unwrap().as_ref().unwrap().redirect_ip.as_ref().unwrap(); + let split_ip = redirect_ip.split_once(":"); + let domain : String = split_ip.unwrap_or_else(|| (redirect_ip, "")).0.to_string(); + let port : u16 = split_ip.unwrap_or_else(|| ("", "25565")).1.parse().map_err(|e| format!("Failed to parse redirect_ip : {}", e))?; + let stream = TcpStream::connect(redirect_ip).await .map_err(|_| "failed to connect to remote host".to_string())?; let mut new_handshake = self.handshake.as_ref().unwrap().clone(); - new_handshake.server_address = "play.hypixel.net".to_string(); - new_handshake.server_port = 25565; + new_handshake.server_address = domain; + new_handshake.server_port = port; let handshake_packet = new_handshake.to_packet(); let mut packet = Vec::new();