diff options
| author | mat <git@matdoes.dev> | 2025-03-13 21:01:37 +0000 |
|---|---|---|
| committer | mat <git@matdoes.dev> | 2025-03-13 21:01:37 +0000 |
| commit | 713b3121676fd422a666e30b5f0f25b280b4ecc6 (patch) | |
| tree | f4a89ecb0f2b5930d041d103844415e0355f079f /azalea/src | |
| parent | 249fa55a53d3011cd0223c0dc5673e9a7b81db8e (diff) | |
| download | azalea-drasl-713b3121676fd422a666e30b5f0f25b280b4ecc6.tar.xz | |
correctly accept resource packs while in config state
Diffstat (limited to 'azalea/src')
| -rw-r--r-- | azalea/src/accept_resource_packs.rs | 54 |
1 files changed, 40 insertions, 14 deletions
diff --git a/azalea/src/accept_resource_packs.rs b/azalea/src/accept_resource_packs.rs index 13deef8e..807ad355 100644 --- a/azalea/src/accept_resource_packs.rs +++ b/azalea/src/accept_resource_packs.rs @@ -1,8 +1,11 @@ +use azalea_client::InConfigState; use azalea_client::chunks::handle_chunk_batch_finished_event; use azalea_client::inventory::InventorySet; +use azalea_client::packet::config::SendConfigPacketEvent; use azalea_client::packet::game::SendPacketEvent; use azalea_client::packet::{death_event_on_0_health, game::ResourcePackEvent}; use azalea_client::respawn::perform_respawn; +use azalea_protocol::packets::config; use azalea_protocol::packets::game::s_resource_pack::{self, ServerboundResourcePack}; use bevy_app::Update; use bevy_ecs::prelude::*; @@ -28,21 +31,44 @@ impl Plugin for AcceptResourcePacksPlugin { fn accept_resource_pack( mut events: EventReader<ResourcePackEvent>, mut send_packet_events: EventWriter<SendPacketEvent>, + mut send_config_packet_events: EventWriter<SendConfigPacketEvent>, + query_in_config_state: Query<Option<&InConfigState>>, ) { for event in events.read() { - send_packet_events.send(SendPacketEvent::new( - event.entity, - ServerboundResourcePack { - id: event.id, - action: s_resource_pack::Action::Accepted, - }, - )); - send_packet_events.send(SendPacketEvent::new( - event.entity, - ServerboundResourcePack { - id: event.id, - action: s_resource_pack::Action::SuccessfullyLoaded, - }, - )); + let Ok(in_config_state_option) = query_in_config_state.get(event.entity) else { + continue; + }; + + if in_config_state_option.is_some() { + send_config_packet_events.send(SendConfigPacketEvent::new( + event.entity, + config::ServerboundResourcePack { + id: event.id, + action: config::s_resource_pack::Action::Accepted, + }, + )); + send_config_packet_events.send(SendConfigPacketEvent::new( + event.entity, + config::ServerboundResourcePack { + id: event.id, + action: config::s_resource_pack::Action::SuccessfullyLoaded, + }, + )); + } else { + send_packet_events.send(SendPacketEvent::new( + event.entity, + ServerboundResourcePack { + id: event.id, + action: s_resource_pack::Action::Accepted, + }, + )); + send_packet_events.send(SendPacketEvent::new( + event.entity, + ServerboundResourcePack { + id: event.id, + action: s_resource_pack::Action::SuccessfullyLoaded, + }, + )); + } } } |
