aboutsummaryrefslogtreecommitdiff
path: root/minecraft-protocol/src/packets/handshake
diff options
context:
space:
mode:
authormat <github@matdoes.dev>2021-12-10 02:06:33 +0000
committermat <github@matdoes.dev>2021-12-10 02:06:33 +0000
commitf64750afdd9b18379f706df66c32806b6d21bbe8 (patch)
tree1064901f29d95d7bb4ecfef37379900704489f6a /minecraft-protocol/src/packets/handshake
parent966471f740ea7cb19e7106000a9f3cf9d306fd32 (diff)
downloadazalea-drasl-f64750afdd9b18379f706df66c32806b6d21bbe8.tar.xz
commit files
Diffstat (limited to 'minecraft-protocol/src/packets/handshake')
-rw-r--r--minecraft-protocol/src/packets/handshake/client_intention_packet.rs30
-rw-r--r--minecraft-protocol/src/packets/handshake/mod.rs1
2 files changed, 31 insertions, 0 deletions
diff --git a/minecraft-protocol/src/packets/handshake/client_intention_packet.rs b/minecraft-protocol/src/packets/handshake/client_intention_packet.rs
new file mode 100644
index 00000000..7dd358eb
--- /dev/null
+++ b/minecraft-protocol/src/packets/handshake/client_intention_packet.rs
@@ -0,0 +1,30 @@
+use std::hash::Hash;
+
+use crate::{
+ mc_buf,
+ packets::{ConnectionProtocol, Packet, PacketTrait},
+};
+
+#[derive(Hash)]
+pub struct ClientIntentionPacket<'a> {
+ pub protocol_version: u32,
+ pub hostname: &'a String,
+ pub port: u16,
+ /// 1 for status, 2 for login
+ pub intention: ConnectionProtocol,
+}
+
+impl<'a> PacketTrait for ClientIntentionPacket<'a> {
+ fn get(&self) -> Packet {
+ Packet::ClientIntentionPacket(self)
+ }
+
+ fn write(&self, buf: &mut Vec<u8>) {
+ mc_buf::write_varint(buf, self.protocol_version as i32);
+ mc_buf::write_utf(buf, &self.hostname);
+ mc_buf::write_short(buf, self.port);
+ mc_buf::write_varint(buf, self.intention.clone() as i32);
+ }
+
+ fn parse<T: tokio::io::AsyncRead + std::marker::Unpin>(&self, buf: T) -> () {}
+}
diff --git a/minecraft-protocol/src/packets/handshake/mod.rs b/minecraft-protocol/src/packets/handshake/mod.rs
new file mode 100644
index 00000000..667b00f2
--- /dev/null
+++ b/minecraft-protocol/src/packets/handshake/mod.rs
@@ -0,0 +1 @@
+pub mod client_intention_packet;