@@ -25,7 +25,7 @@ use tracing::{debug, error, trace, warn};
2525
2626use 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-
5841pub 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 } ;
0 commit comments