diff options
| author | mat <github@matdoes.dev> | 2021-12-15 23:10:55 -0600 |
|---|---|---|
| committer | mat <github@matdoes.dev> | 2021-12-15 23:10:55 -0600 |
| commit | 9642558f8f8d983a7087f15d68be8cf07a85f0c2 (patch) | |
| tree | 5f0a967f005cd5db510a13ab290c8ad6669b25aa /minecraft-protocol/src/connect.rs | |
| parent | 72aefe871ca4983431b1a0b707b472e73ffea836 (diff) | |
| download | azalea-drasl-9642558f8f8d983a7087f15d68be8cf07a85f0c2.tar.xz | |
azalea
Diffstat (limited to 'minecraft-protocol/src/connect.rs')
| -rw-r--r-- | minecraft-protocol/src/connect.rs | 116 |
1 files changed, 0 insertions, 116 deletions
diff --git a/minecraft-protocol/src/connect.rs b/minecraft-protocol/src/connect.rs deleted file mode 100644 index f6dd9fe7..00000000 --- a/minecraft-protocol/src/connect.rs +++ /dev/null @@ -1,116 +0,0 @@ -//! parse sending and receiving packets with a server. - -use crate::packets::game::GamePacket; -use crate::packets::handshake::HandshakePacket; -use crate::packets::login::LoginPacket; -use crate::packets::status::StatusPacket; -use crate::read::read_packet; -use crate::write::write_packet; -use crate::ServerIpAddress; -use tokio::net::TcpStream; - -pub enum PacketFlow { - ClientToServer, - ServerToClient, -} - -pub struct HandshakeConnection { - pub flow: PacketFlow, - /// The buffered writer - pub stream: TcpStream, -} - -pub struct GameConnection { - pub flow: PacketFlow, - /// The buffered writer - pub stream: TcpStream, -} - -pub struct StatusConnection { - pub flow: PacketFlow, - /// The buffered writer - pub stream: TcpStream, -} - -pub struct LoginConnection { - pub flow: PacketFlow, - /// The buffered writer - pub stream: TcpStream, -} - -impl HandshakeConnection { - pub async fn new(address: &ServerIpAddress) -> Result<HandshakeConnection, String> { - let ip = address.ip; - let port = address.port; - - let stream = TcpStream::connect(format!("{}:{}", ip, port)) - .await - .map_err(|_| "Failed to connect to server")?; - - // enable tcp_nodelay - stream - .set_nodelay(true) - .expect("Error enabling tcp_nodelay"); - - Ok(HandshakeConnection { - flow: PacketFlow::ServerToClient, - stream, - }) - } - - pub fn login(self) -> LoginConnection { - LoginConnection { - flow: self.flow, - stream: self.stream, - } - } - - pub fn status(self) -> StatusConnection { - StatusConnection { - flow: self.flow, - stream: self.stream, - } - } - - pub async fn read(&mut self) -> Result<HandshakePacket, String> { - read_packet::<HandshakePacket>(&self.flow, &mut self.stream).await - } - - /// Write a packet to the server - pub async fn write(&mut self, packet: HandshakePacket) { - write_packet(packet, &mut self.stream).await; - } -} - -impl GameConnection { - pub async fn read(&mut self) -> Result<GamePacket, String> { - read_packet::<GamePacket>(&self.flow, &mut self.stream).await - } - - /// Write a packet to the server - pub async fn write(&mut self, packet: GamePacket) { - write_packet(packet, &mut self.stream).await; - } -} - -impl StatusConnection { - pub async fn read(&mut self) -> Result<StatusPacket, String> { - read_packet::<StatusPacket>(&self.flow, &mut self.stream).await - } - - /// Write a packet to the server - pub async fn write(&mut self, packet: StatusPacket) { - write_packet(packet, &mut self.stream).await; - } -} - -impl LoginConnection { - pub async fn read(&mut self) -> Result<LoginPacket, String> { - read_packet::<LoginPacket>(&self.flow, &mut self.stream).await - } - - /// Write a packet to the server - pub async fn write(&mut self, packet: LoginPacket) { - write_packet(packet, &mut self.stream).await; - } -} |
