diff --git a/azalea-client/src/connect.rs b/azalea-client/src/connect.rs index 0146c81f..d7345f68 100755 --- a/azalea-client/src/connect.rs +++ b/azalea-client/src/connect.rs @@ -100,7 +100,7 @@ pub async fn join_server(address: &ServerAddress) -> Result<(), String> { println!("Got difficulty packet {:?}", p); } GamePacket::ClientboundDeclareCommandsPacket(p) => { - println!("Got declare commands packet {:?}", p); + println!("Got declare commands packet"); } GamePacket::ClientboundPlayerAbilitiesPacket(p) => { println!("Got player abilities packet {:?}", p); @@ -109,19 +109,19 @@ pub async fn join_server(address: &ServerAddress) -> Result<(), String> { println!("Got set carried item packet {:?}", p); } GamePacket::ClientboundUpdateTagsPacket(p) => { - println!("Got update tags packet {:?}", p); + println!("Got update tags packet"); } GamePacket::ClientboundDisconnectPacket(p) => { println!("Got login disconnect packet {:?}", p); } GamePacket::ClientboundUpdateRecipesPacket(p) => { - println!("Got update recipes packet {:?}", p); + println!("Got update recipes packet"); } GamePacket::ClientboundEntityEventPacket(p) => { println!("Got entity event packet {:?}", p); } GamePacket::ClientboundRecipePacket(p) => { - println!("Got recipe packet {:?}", p); + println!("Got recipe packet"); } GamePacket::ClientboundPlayerPositionPacket(p) => { // TODO: reply with teleport confirm @@ -133,6 +133,12 @@ pub async fn join_server(address: &ServerAddress) -> Result<(), String> { GamePacket::ClientboundSetChunkCacheCenterPacket(p) => { println!("Got chunk cache center packet {:?}", p); } + GamePacket::ClientboundLevelChunkWithLightPacket(p) => { + println!("Got chunk with light packet"); + } + GamePacket::ClientboundLightUpdatePacket(p) => { + println!("Got light update packet {:?}", p); + } }, Err(e) => { panic!("Error: {:?}", e); diff --git a/azalea-protocol/src/mc_buf/mod.rs b/azalea-protocol/src/mc_buf/mod.rs index b69e94c4..4048bae7 100755 --- a/azalea-protocol/src/mc_buf/mod.rs +++ b/azalea-protocol/src/mc_buf/mod.rs @@ -3,6 +3,7 @@ mod read; mod write; +use packet_macros::{McBufReadable, McBufWritable}; pub use read::{McBufReadable, McBufVarintReadable, Readable}; use std::ops::{Deref, Index}; pub use write::{McBufVarintWritable, McBufWritable, Writable}; @@ -31,17 +32,16 @@ impl From> for UnsizedByteArray { } } -/** Represents Java's BitSet, a list of bits. */ +/// Represents Java's BitSet, a list of bits. +#[derive(Debug, Clone, PartialEq, Eq, Hash, McBufReadable, McBufWritable)] pub struct BitSet { data: Vec, } -impl Index for BitSet { - type Output = bool; - - fn index(&self, index: usize) -> &Self::Output { - let result = (self.data[index / 64] & (1u64 << (index % 64))) != 0; - &result +// the Index trait requires us to return a reference, but we can't do that +impl BitSet { + pub fn index(&self, index: usize) -> bool { + (self.data[index / 64] & (1u64 << (index % 64))) != 0 } } diff --git a/azalea-protocol/src/mc_buf/read.rs b/azalea-protocol/src/mc_buf/read.rs index e90b4b10..3d1aa0b3 100755 --- a/azalea-protocol/src/mc_buf/read.rs +++ b/azalea-protocol/src/mc_buf/read.rs @@ -8,7 +8,7 @@ use serde::Deserialize; use tokio::io::{AsyncRead, AsyncReadExt}; use uuid::Uuid; -use super::{UnsizedByteArray, MAX_STRING_LENGTH}; +use super::{BitSet, UnsizedByteArray, MAX_STRING_LENGTH}; #[async_trait] pub trait Readable { diff --git a/azalea-protocol/src/packets/game/clientbound_level_chunk_with_light_packet.rs b/azalea-protocol/src/packets/game/clientbound_level_chunk_with_light_packet.rs index 0dcb0ff2..6882d255 100644 --- a/azalea-protocol/src/packets/game/clientbound_level_chunk_with_light_packet.rs +++ b/azalea-protocol/src/packets/game/clientbound_level_chunk_with_light_packet.rs @@ -14,7 +14,7 @@ pub struct ClientboundLevelChunkWithLightPacket { pub struct ClientboundLevelChunkPacketData { heightmaps: azalea_nbt::Tag, data: Vec, - block_entities: BlockEntity, + block_entities: Vec, } #[derive(Clone, Debug, McBufReadable, McBufWritable)] diff --git a/azalea-protocol/src/packets/game/clientbound_light_update_packet.rs b/azalea-protocol/src/packets/game/clientbound_light_update_packet.rs index 8e53e12e..c97eacff 100644 --- a/azalea-protocol/src/packets/game/clientbound_light_update_packet.rs +++ b/azalea-protocol/src/packets/game/clientbound_light_update_packet.rs @@ -1,6 +1,6 @@ use crate::mc_buf::BitSet; use azalea_core::{game_type::GameType, resource_location::ResourceLocation}; -use packet_macros::GamePacket; +use packet_macros::{GamePacket, McBufReadable, McBufWritable}; #[derive(Clone, Debug, GamePacket)] pub struct ClientboundLightUpdatePacket { @@ -16,7 +16,6 @@ pub struct ClientboundLightUpdatePacketData { block_y_mask: BitSet, empty_sky_y_mask: BitSet, empty_block_y_mask: BitSet, - sky_updates: Vec<>, - block_updates: BitSet, - + sky_updates: Vec>, + block_updates: Vec>, } diff --git a/bot/src/main.rs b/bot/src/main.rs index fc278c28..14fc9656 100644 --- a/bot/src/main.rs +++ b/bot/src/main.rs @@ -3,7 +3,8 @@ async fn main() { println!("Hello, world!"); // let address = "95.111.249.143:10000"; - let address = "localhost:63097"; + // let address = "localhost:52467"; + let address = "localhost:25566"; // let response = azalea_client::ping::ping_server(&address.try_into().unwrap()) // .await // .unwrap();