Skip to content

Commit c3bbc9e

Browse files
committed
merge main
2 parents b9c4942 + 228489d commit c3bbc9e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+258
-186
lines changed

Cargo.lock

Lines changed: 94 additions & 75 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -33,16 +33,16 @@ aes = "0.8.4"
3333
anyhow = "1.0.95"
3434
async-recursion = "1.1.1"
3535
base64 = "0.22.1"
36-
bevy_app = "0.15.1"
37-
bevy_ecs = { version = "0.15.1", default-features = false }
38-
bevy_log = "0.15.1"
39-
bevy_tasks = "0.15.1"
40-
bevy_time = "0.15.1"
36+
bevy_app = "0.15.2"
37+
bevy_ecs = { version = "0.15.2", default-features = false }
38+
bevy_log = "0.15.2"
39+
bevy_tasks = "0.15.2"
40+
bevy_time = "0.15.2"
4141
byteorder = "1.5.0"
4242
cfb8 = "0.8.1"
4343
chrono = { version = "0.4.39", default-features = false }
4444
criterion = "0.5.1"
45-
derive_more = "1.0.0"
45+
derive_more = "2.0.1"
4646
enum-as-inner = "0.6.1"
4747
env_logger = "0.11.6"
4848
flate2 = "1.0.35"
@@ -61,20 +61,20 @@ regex = "1.11.1"
6161
reqwest = { version = "0.12.12", default-features = false }
6262
rsa = "0.9.7"
6363
rsa_public_encrypt_pkcs1 = "0.4.0"
64-
rustc-hash = "2.1.0"
64+
rustc-hash = "2.1.1"
6565
serde = "1.0.217"
6666
serde_json = "1.0.138"
6767
sha-1 = "0.10.1"
6868
sha2 = "0.10.8"
6969
simdnbt = "0.7"
7070
socks5-impl = "0.6.1"
71-
syn = "2.0.97"
71+
syn = "2.0.98"
7272
thiserror = "2.0.11"
7373
tokio = "1.43.0"
7474
tokio-util = "0.7.13"
7575
tracing = "0.1.41"
7676
tracing-subscriber = "0.3.19"
77-
hickory-resolver = { version = "0.24.2", default-features = false }
77+
hickory-resolver = { version = "0.24.3", default-features = false }
7878
uuid = "1.12.1"
7979
num-format = "0.4.4"
8080
indexmap = "2.7.1"

azalea-block/src/lib.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
#![doc = include_str!("../README.md")]
2-
#![feature(trait_upcasting)]
32

43
mod behavior;
54
pub mod block_state;

azalea-client/src/attack.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ pub fn handle_attack_event(
8686
send_packet_events.send(SendPacketEvent::new(
8787
event.entity,
8888
ServerboundInteract {
89-
entity_id: *event.target,
89+
entity_id: event.target,
9090
action: s_interact::ActionType::Attack,
9191
using_secondary_action: **sneaking,
9292
},

azalea-client/src/client.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -717,7 +717,7 @@ impl Client {
717717
///
718718
/// This is a shortcut for `*bot.component::<TabList>()`.
719719
pub fn tab_list(&self) -> HashMap<Uuid, PlayerInfo> {
720-
self.component::<TabList>().deref().clone()
720+
(*self.component::<TabList>()).clone()
721721
}
722722

723723
/// Call the given function with the client's [`RegistryHolder`].

azalea-client/src/lib.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
//! [`azalea_protocol`]: https://docs.rs/azalea-protocol
66
//! [`azalea`]: https://docs.rs/azalea
77
8-
#![allow(incomplete_features)]
98
#![feature(error_generic_member_access)]
109

1110
mod account;

azalea-client/src/movement.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -303,7 +303,7 @@ fn send_sprinting_if_needed(
303303
send_packet_events.send(SendPacketEvent::new(
304304
entity,
305305
ServerboundPlayerCommand {
306-
id: **minecraft_entity_id,
306+
id: *minecraft_entity_id,
307307
action: sprinting_action,
308308
data: 0,
309309
},

azalea-client/src/packet/game/mod.rs

Lines changed: 13 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ use tracing::{debug, error, trace, warn};
2525

2626
use crate::{
2727
chat::{ChatPacket, ChatReceivedEvent},
28-
chunks,
28+
chunks, declare_packet_handlers,
2929
disconnect::DisconnectEvent,
3030
inventory::{
3131
ClientSideCloseContainerEvent, Inventory, MenuOpenedEvent, SetContainerContentEvent,
@@ -38,23 +38,6 @@ use crate::{
3838
ClientInformation, PlayerInfo,
3939
};
4040

41-
macro_rules! packets {
42-
(
43-
$packetenum:ident,
44-
$packetvar:ident,
45-
$handler:ident,
46-
[$($packet:path),+ $(,)?]
47-
) => {
48-
paste::paste! {
49-
match $packetvar.as_ref() {
50-
$(
51-
$packetenum::[< $packet:camel >](p) => $handler.$packet(p),
52-
)+
53-
}
54-
}
55-
};
56-
}
57-
5841
pub fn process_packet_events(ecs: &mut World) {
5942
let mut events_owned = Vec::<(Entity, Arc<ClientboundGamePacket>)>::new();
6043

@@ -77,7 +60,7 @@ pub fn process_packet_events(ecs: &mut World) {
7760
ecs,
7861
};
7962

80-
packets!(
63+
declare_packet_handlers!(
8164
ClientboundGamePacket,
8265
packet,
8366
handler,
@@ -321,7 +304,7 @@ impl GamePacketHandler<'_> {
321304
azalea_registry::EntityKind::Player,
322305
new_instance_name,
323306
);
324-
let entity_id = MinecraftEntityId(p.player_id);
307+
let entity_id = p.player_id;
325308
// insert our components into the ecs :)
326309
commands.entity(self.player).insert((
327310
entity_id,
@@ -682,7 +665,7 @@ impl GamePacketHandler<'_> {
682665
let (mut entity_id_index, instance_name, tab_list) =
683666
query.get_mut(self.player).unwrap();
684667

685-
let entity_id = MinecraftEntityId(p.id);
668+
let entity_id = p.id;
686669

687670
let Some(instance_name) = instance_name else {
688671
warn!("got add player packet but we haven't gotten a login packet yet");
@@ -759,7 +742,7 @@ impl GamePacketHandler<'_> {
759742
)>(self.ecs, |(mut commands, query, entity_kind_query)| {
760743
let (entity_id_index, instance_holder) = query.get(self.player).unwrap();
761744

762-
let entity = entity_id_index.get(MinecraftEntityId(p.id));
745+
let entity = entity_id_index.get(p.id);
763746

764747
let Some(entity) = entity else {
765748
// some servers like hypixel trigger this a lot :(
@@ -813,7 +796,7 @@ impl GamePacketHandler<'_> {
813796
|(mut commands, query)| {
814797
let (entity_id_index, instance_holder) = query.get(self.player).unwrap();
815798

816-
let Some(entity) = entity_id_index.get(MinecraftEntityId(p.id)) else {
799+
let Some(entity) = entity_id_index.get(p.id) else {
817800
// note that this log (and some other ones like the one in RemoveEntities)
818801
// sometimes happens when killing mobs. it seems to be a vanilla bug, which is
819802
// why it's a debug log instead of a warning
@@ -886,7 +869,7 @@ impl GamePacketHandler<'_> {
886869
|(mut commands, mut query)| {
887870
let (entity_id_index, instance_holder) = query.get_mut(self.player).unwrap();
888871

889-
let Some(entity) = entity_id_index.get(MinecraftEntityId(p.id)) else {
872+
let Some(entity) = entity_id_index.get(p.id) else {
890873
warn!("Got teleport entity packet for unknown entity id {}", p.id);
891874
return;
892875
};
@@ -931,7 +914,7 @@ impl GamePacketHandler<'_> {
931914

932915
debug!("Got move entity pos packet {p:?}");
933916

934-
let Some(entity) = entity_id_index.get(MinecraftEntityId(p.entity_id)) else {
917+
let Some(entity) = entity_id_index.get(p.entity_id) else {
935918
debug!(
936919
"Got move entity pos packet for unknown entity id {}",
937920
p.entity_id
@@ -971,7 +954,7 @@ impl GamePacketHandler<'_> {
971954

972955
debug!("Got move entity pos rot packet {p:?}");
973956

974-
let entity = entity_id_index.get(MinecraftEntityId(p.entity_id));
957+
let entity = entity_id_index.get(p.entity_id);
975958

976959
let Some(entity) = entity else {
977960
// often triggered by hypixel :(
@@ -1023,7 +1006,7 @@ impl GamePacketHandler<'_> {
10231006
|(mut commands, mut query)| {
10241007
let (entity_id_index, instance_holder) = query.get_mut(self.player).unwrap();
10251008

1026-
let entity = entity_id_index.get(MinecraftEntityId(p.entity_id));
1009+
let entity = entity_id_index.get(p.entity_id);
10271010
if let Some(entity) = entity {
10281011
let new_look_direction = LookDirection {
10291012
x_rot: (p.x_rot as i32 * 360) as f32 / 256.,
@@ -1053,25 +1036,6 @@ impl GamePacketHandler<'_> {
10531036
);
10541037
}
10551038
pub fn keep_alive(&mut self, p: &ClientboundKeepAlive) {
1056-
/*
1057-
debug!("Got keep alive packet {p:?} for {player_entity:?}");
1058-
1059-
let mut system_state: SystemState<(
1060-
EventWriter<KeepAliveEvent>,
1061-
EventWriter<SendPacketEvent>,
1062-
)> = SystemState::new(ecs);
1063-
let (mut keepalive_events, mut send_packet_events) = system_state.get_mut(ecs);
1064-
1065-
keepalive_events.send(KeepAliveEvent {
1066-
entity: player_entity,
1067-
id: p.id,
1068-
});
1069-
send_packet_events.send(SendPacketEvent::new(
1070-
player_entity,
1071-
ServerboundKeepAlive { id: p.id },
1072-
));
1073-
*/
1074-
10751039
debug!("Got keep alive packet {p:?} for {:?}", self.player);
10761040

10771041
as_system::<(EventWriter<KeepAliveEvent>, EventWriter<SendPacketEvent>)>(
@@ -1101,7 +1065,7 @@ impl GamePacketHandler<'_> {
11011065
};
11021066

11031067
for &id in &p.entity_ids {
1104-
let Some(entity) = entity_id_index.remove(MinecraftEntityId(id)) else {
1068+
let Some(entity) = entity_id_index.remove(id) else {
11051069
debug!("Tried to remove entity with id {id} but it wasn't in the EntityIdIndex");
11061070
continue;
11071071
};
@@ -1417,7 +1381,7 @@ impl GamePacketHandler<'_> {
14171381
)>(self.ecs, |(mut commands, mut query, mut events)| {
14181382
let (entity_id, dead) = query.get_mut(self.player).unwrap();
14191383

1420-
if **entity_id == p.player_id && dead.is_none() {
1384+
if *entity_id == p.player_id && dead.is_none() {
14211385
commands.entity(self.player).insert(Dead);
14221386
events.send(DeathEvent {
14231387
entity: self.player,
@@ -1551,7 +1515,7 @@ impl GamePacketHandler<'_> {
15511515
|(mut commands, mut query)| {
15521516
let (entity_id_index, instance_holder) = query.get_mut(self.player).unwrap();
15531517

1554-
let Some(entity) = entity_id_index.get(MinecraftEntityId(p.id)) else {
1518+
let Some(entity) = entity_id_index.get(p.id) else {
15551519
debug!("Got teleport entity packet for unknown entity id {}", p.id);
15561520
return;
15571521
};

azalea-client/src/packet/mod.rs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,3 +79,21 @@ impl Plugin for PacketHandlerPlugin {
7979
.add_event::<SendLoginPacketEvent>();
8080
}
8181
}
82+
83+
#[macro_export]
84+
macro_rules! declare_packet_handlers {
85+
(
86+
$packetenum:ident,
87+
$packetvar:ident,
88+
$handler:ident,
89+
[$($packet:path),+ $(,)?]
90+
) => {
91+
paste::paste! {
92+
match $packetvar.as_ref() {
93+
$(
94+
$packetenum::[< $packet:camel >](p) => $handler.$packet(p),
95+
)+
96+
}
97+
}
98+
};
99+
}

azalea-client/tests/simulation.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ use azalea_protocol::packets::{
2222
ConnectionProtocol, Packet, ProtocolPacket,
2323
};
2424
use azalea_registry::DimensionType;
25-
use azalea_world::Instance;
25+
use azalea_world::{Instance, MinecraftEntityId};
2626
use bevy_app::App;
2727
use bevy_app::PluginGroup;
2828
use bevy_ecs::{prelude::*, schedule::ExecutorKind};
@@ -67,7 +67,7 @@ fn test_set_health_before_login() {
6767
assert_eq!(*simulation.component::<Health>(), 15.);
6868

6969
simulation.receive_packet(ClientboundLogin {
70-
player_id: 0,
70+
player_id: MinecraftEntityId(0),
7171
hardcore: false,
7272
levels: vec![],
7373
max_players: 20,

0 commit comments

Comments
 (0)