diff options
| author | mat <github@matdoes.dev> | 2021-12-06 00:28:40 -0600 |
|---|---|---|
| committer | mat <github@matdoes.dev> | 2021-12-06 00:28:40 -0600 |
| commit | 5029a09963b5753c1f9b7f777f28e1c0951343e7 (patch) | |
| tree | 2e0e37029bf031adc3e28713828e7d4be7336ccb /minecraft-protocol/src/packets | |
| download | azalea-drasl-5029a09963b5753c1f9b7f777f28e1c0951343e7.tar.xz | |
Initial commit
Diffstat (limited to 'minecraft-protocol/src/packets')
| -rw-r--r-- | minecraft-protocol/src/packets/client_intention_packet.rs | 21 | ||||
| -rw-r--r-- | minecraft-protocol/src/packets/mod.rs | 27 |
2 files changed, 48 insertions, 0 deletions
diff --git a/minecraft-protocol/src/packets/client_intention_packet.rs b/minecraft-protocol/src/packets/client_intention_packet.rs new file mode 100644 index 00000000..fdbd9468 --- /dev/null +++ b/minecraft-protocol/src/packets/client_intention_packet.rs @@ -0,0 +1,21 @@ +use crate::friendly_byte_buf::FriendlyByteBuf; + +use super::{ConnectionProtocol, Packet}; + +pub struct ClientIntentionPacket { + protocol_version: u32, + hostname: String, + port: u16, + intention: ConnectionProtocol, +} + +// implement "Packet" for "ClientIntentionPacket" +impl Packet for ClientIntentionPacket { + // implement "from_reader" for "ClientIntentionPacket" + fn write(&self, buf: &mut FriendlyByteBuf) { + buf.write_varint(self.protocol_version); + buf.write_utf(&self.hostname); + buf.write_short(self.port); + buf.write_varint(self.intention.clone() as u32); + } +} diff --git a/minecraft-protocol/src/packets/mod.rs b/minecraft-protocol/src/packets/mod.rs new file mode 100644 index 00000000..530a1b4b --- /dev/null +++ b/minecraft-protocol/src/packets/mod.rs @@ -0,0 +1,27 @@ +pub mod client_intention_packet; + +use crate::friendly_byte_buf::FriendlyByteBuf; + +#[derive(Debug, Clone, PartialEq)] +pub enum ConnectionProtocol { + Handshaking = -1, + Play = 0, + Status = 1, + Login = 2, +} + +pub trait Packet { + fn write(&self, friendly_byte_buf: &mut FriendlyByteBuf) -> (); +} + +struct PacketSet<'a> { + pub packets: Vec<&'a dyn Packet>, +} + +impl<'a> PacketSet<'a> { + fn add_packet(&mut self, packet: &'a dyn Packet) { + self.packets.push(packet); + } +} + +// PacketSet |
