server from db working
This commit is contained in:
@ -1,26 +1,24 @@
|
||||
use crate::minecraft::client::client::Client;
|
||||
|
||||
use json::object;
|
||||
use crate::minecraft::varint::varint_write;
|
||||
use std::collections::VecDeque;
|
||||
use tokio::net::TcpStream;
|
||||
|
||||
impl Client {
|
||||
pub async fn login_intent_handle(&mut self, mut _packet: &mut VecDeque<u8>, _packet_id: i32) -> Result<(),String> {
|
||||
let stream = TcpStream::connect("play.hypixel.net:25565").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;
|
||||
let reason_json = object! {
|
||||
"type": "text",
|
||||
"text": "login to start not implemented yet",
|
||||
"color": "red"
|
||||
};
|
||||
let mut response: Vec<u8> = vec![];
|
||||
let response_json = json::stringify(reason_json);
|
||||
let mut response_json_len = varint_write(response_json.len() as i32);
|
||||
|
||||
let handshake_packet = new_handshake.to_packet();
|
||||
let mut packet = Vec::new();
|
||||
packet.extend(varint_write(handshake_packet.len() as i32));
|
||||
packet.extend(handshake_packet);
|
||||
|
||||
self.out_stream = Some(stream);
|
||||
let _ = self.out_stream.as_ref().unwrap().writable().await;
|
||||
|
||||
let _ = self.out_stream.as_ref().unwrap().try_write(packet.as_slice());
|
||||
println!("[{}] sent handshake to server", self);
|
||||
response.append(&mut response_json_len);
|
||||
response.append(&mut response_json.as_bytes().into());
|
||||
self.send_packet(0x0, response).await;
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user