diff options
| author | mat <git@matdoes.dev> | 2023-09-14 17:00:24 -0500 |
|---|---|---|
| committer | mat <git@matdoes.dev> | 2023-09-14 17:00:27 -0500 |
| commit | 3621acab758c8bd00ee08feee307a02512f234c8 (patch) | |
| tree | 57e6de3e621f65c84f45bf50f27973c66de03a07 /azalea/src/accept_resource_packs.rs | |
| parent | 83784d5a350168edaade4620122c2c6d46bc81a2 (diff) | |
| download | azalea-drasl-3621acab758c8bd00ee08feee307a02512f234c8.tar.xz | |
AcceptResourcePacksPlugin
Diffstat (limited to 'azalea/src/accept_resource_packs.rs')
| -rw-r--r-- | azalea/src/accept_resource_packs.rs | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/azalea/src/accept_resource_packs.rs b/azalea/src/accept_resource_packs.rs new file mode 100644 index 00000000..67d8aa65 --- /dev/null +++ b/azalea/src/accept_resource_packs.rs @@ -0,0 +1,45 @@ +use crate::app::{App, Plugin}; +use azalea_client::packet_handling::{death_event_on_0_health, ResourcePackEvent}; +use azalea_client::respawn::perform_respawn; +use azalea_client::SendPacketEvent; +use azalea_protocol::packets::game::serverbound_resource_pack_packet::{ + self, ServerboundResourcePackPacket, +}; +use bevy_app::Update; +use bevy_ecs::prelude::*; + +/// A plugin that makes it so bots automatically accept resource packs. +#[derive(Clone, Default)] +pub struct AcceptResourcePacksPlugin; +impl Plugin for AcceptResourcePacksPlugin { + fn build(&self, app: &mut App) { + app.add_systems( + Update, + accept_resource_pack + .before(perform_respawn) + .after(death_event_on_0_health), + ); + } +} + +fn accept_resource_pack( + mut events: EventReader<ResourcePackEvent>, + mut send_packet_events: EventWriter<SendPacketEvent>, +) { + for event in events.iter() { + send_packet_events.send(SendPacketEvent { + entity: event.entity, + packet: ServerboundResourcePackPacket { + action: serverbound_resource_pack_packet::Action::Accepted, + } + .get(), + }); + send_packet_events.send(SendPacketEvent { + entity: event.entity, + packet: ServerboundResourcePackPacket { + action: serverbound_resource_pack_packet::Action::SuccessfullyLoaded, + } + .get(), + }); + } +} |
