mirror of
https://github.com/mat-1/azalea.git
synced 2024-09-20 07:02:31 +00:00
add unhandled ClientboundSectionBlocksUpdatePacket
This commit is contained in:
parent
8fb9586609
commit
42f86f73f2
6 changed files with 42 additions and 4 deletions
|
@ -373,6 +373,9 @@ impl Client {
|
||||||
GamePacket::ClientboundAnimatePacket(p) => {
|
GamePacket::ClientboundAnimatePacket(p) => {
|
||||||
println!("Got animate packet {:?}", p);
|
println!("Got animate packet {:?}", p);
|
||||||
}
|
}
|
||||||
|
GamePacket::ClientboundSectionBlocksUpdatePacket(p) => {
|
||||||
|
println!("Got section blocks update packet {:?}", p);
|
||||||
|
}
|
||||||
_ => panic!("Unexpected packet {:?}", packet),
|
_ => panic!("Unexpected packet {:?}", packet),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,7 @@ use super::{UnsizedByteArray, MAX_STRING_LENGTH};
|
||||||
use azalea_chat::component::Component;
|
use azalea_chat::component::Component;
|
||||||
use azalea_core::{
|
use azalea_core::{
|
||||||
difficulty::Difficulty, game_type::GameType, resource_location::ResourceLocation,
|
difficulty::Difficulty, game_type::GameType, resource_location::ResourceLocation,
|
||||||
serializable_uuid::SerializableUuid, BlockPos, Direction, Slot, SlotData,
|
serializable_uuid::SerializableUuid, BlockPos, ChunkSectionPos, Direction, Slot, SlotData,
|
||||||
};
|
};
|
||||||
use byteorder::{ReadBytesExt, BE};
|
use byteorder::{ReadBytesExt, BE};
|
||||||
use serde::Deserialize;
|
use serde::Deserialize;
|
||||||
|
@ -518,3 +518,15 @@ impl McBufReadable for Direction {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ChunkSectionPos
|
||||||
|
impl McBufReadable for ChunkSectionPos {
|
||||||
|
fn read_into(buf: &mut impl Read) -> Result<Self, String> {
|
||||||
|
let long = i64::read_into(buf)?;
|
||||||
|
Ok(ChunkSectionPos {
|
||||||
|
x: (long >> 42) as i32,
|
||||||
|
y: (long << 44 >> 44) as i32,
|
||||||
|
z: (long << 22 >> 42) as i32,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -2,7 +2,7 @@ use super::{UnsizedByteArray, MAX_STRING_LENGTH};
|
||||||
use azalea_chat::component::Component;
|
use azalea_chat::component::Component;
|
||||||
use azalea_core::{
|
use azalea_core::{
|
||||||
difficulty::Difficulty, game_type::GameType, resource_location::ResourceLocation,
|
difficulty::Difficulty, game_type::GameType, resource_location::ResourceLocation,
|
||||||
serializable_uuid::SerializableUuid, BlockPos, Direction, Slot,
|
serializable_uuid::SerializableUuid, BlockPos, ChunkSectionPos, Direction, Slot,
|
||||||
};
|
};
|
||||||
use byteorder::{BigEndian, WriteBytesExt};
|
use byteorder::{BigEndian, WriteBytesExt};
|
||||||
use std::{collections::HashMap, io::Write};
|
use std::{collections::HashMap, io::Write};
|
||||||
|
@ -425,3 +425,14 @@ impl McBufWritable for Direction {
|
||||||
buf.write_varint(*self as i32)
|
buf.write_varint(*self as i32)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ChunkSectionPos
|
||||||
|
impl McBufWritable for ChunkSectionPos {
|
||||||
|
fn write_into(&self, buf: &mut impl Write) -> Result<(), std::io::Error> {
|
||||||
|
let long = (((self.x & 0x3FFFFF) as i64) << 42)
|
||||||
|
| (self.y & 0xFFFFF) as i64
|
||||||
|
| (((self.z & 0x3FFFFF) as i64) << 20);
|
||||||
|
long.write_into(buf)?;
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
use azalea_core::ChunkSectionPos;
|
||||||
|
use packet_macros::GamePacket;
|
||||||
|
|
||||||
|
#[derive(Clone, Debug, GamePacket)]
|
||||||
|
pub struct ClientboundSectionBlocksUpdatePacket {
|
||||||
|
pub section_pos: ChunkSectionPos,
|
||||||
|
pub suppress_light_updates: bool,
|
||||||
|
#[var]
|
||||||
|
pub states: Vec<u64>,
|
||||||
|
}
|
|
@ -26,6 +26,7 @@ pub mod clientbound_player_position_packet;
|
||||||
pub mod clientbound_recipe_packet;
|
pub mod clientbound_recipe_packet;
|
||||||
pub mod clientbound_remove_entities_packet;
|
pub mod clientbound_remove_entities_packet;
|
||||||
pub mod clientbound_rotate_head_packet;
|
pub mod clientbound_rotate_head_packet;
|
||||||
|
pub mod clientbound_section_blocks_update_packet;
|
||||||
pub mod clientbound_set_carried_item_packet;
|
pub mod clientbound_set_carried_item_packet;
|
||||||
pub mod clientbound_set_chunk_cache_center;
|
pub mod clientbound_set_chunk_cache_center;
|
||||||
pub mod clientbound_set_default_spawn_position_packet;
|
pub mod clientbound_set_default_spawn_position_packet;
|
||||||
|
@ -80,6 +81,7 @@ declare_state_packets!(
|
||||||
0x39: clientbound_recipe_packet::ClientboundRecipePacket,
|
0x39: clientbound_recipe_packet::ClientboundRecipePacket,
|
||||||
0x3a: clientbound_remove_entities_packet::ClientboundRemoveEntitiesPacket,
|
0x3a: clientbound_remove_entities_packet::ClientboundRemoveEntitiesPacket,
|
||||||
0x3e: clientbound_rotate_head_packet::ClientboundRotateHeadPacket,
|
0x3e: clientbound_rotate_head_packet::ClientboundRotateHeadPacket,
|
||||||
|
0x3f: clientbound_section_blocks_update_packet::ClientboundSectionBlocksUpdatePacket,
|
||||||
0x48: clientbound_set_carried_item_packet::ClientboundSetCarriedItemPacket,
|
0x48: clientbound_set_carried_item_packet::ClientboundSetCarriedItemPacket,
|
||||||
0x49: clientbound_set_chunk_cache_center::ClientboundSetChunkCacheCenterPacket,
|
0x49: clientbound_set_chunk_cache_center::ClientboundSetChunkCacheCenterPacket,
|
||||||
0x4a: clientbound_update_view_distance_packet::ClientboundUpdateViewDistancePacket,
|
0x4a: clientbound_update_view_distance_packet::ClientboundUpdateViewDistancePacket,
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
use azalea_client::{Account, Event};
|
use azalea_client::{Account, Event};
|
||||||
use azalea_core::{BlockPos, ChunkPos};
|
use azalea_core::BlockPos;
|
||||||
|
|
||||||
#[tokio::main]
|
#[tokio::main]
|
||||||
async fn main() {
|
async fn main() {
|
||||||
println!("Hello, world!");
|
println!("Hello, world!");
|
||||||
|
|
||||||
// let address = "95.111.249.143:10000";
|
// let address = "95.111.249.143:10000";
|
||||||
let address = "192.168.2.234:62840";
|
let address = "192.168.2.234:50736";
|
||||||
// let response = azalea_client::ping::ping_server(&address.try_into().unwrap())
|
// let response = azalea_client::ping::ping_server(&address.try_into().unwrap())
|
||||||
// .await
|
// .await
|
||||||
// .unwrap();
|
// .unwrap();
|
||||||
|
|
Loading…
Reference in a new issue