Pumpkin/crates/pumpkin/src/net/java/config/resource_pack.rs
2026-08-13 19:08:32 +02:00

85 lines
3.2 KiB
Rust

#[allow(clippy::wildcard_imports)]
use super::*;
impl JavaClient {
pub async fn handle_resource_pack_response(
&self,
server: &Server,
packet: SConfigResourcePack,
) {
let resource_config = &server.advanced_config.resource_pack.java;
if resource_config.enabled {
let expected_uuid =
uuid::Uuid::new_v3(&uuid::Uuid::NAMESPACE_DNS, resource_config.url.as_bytes());
if packet.uuid == expected_uuid {
match packet.response_result() {
ResourcePackResponseResult::DownloadSuccess => {
trace!(
"Client {} successfully downloaded the resource pack",
self.id
);
}
ResourcePackResponseResult::DownloadFail => {
warn!(
"Client {} failed to downloaded the resource pack. Is it available on the internet?",
self.id
);
}
ResourcePackResponseResult::Downloaded => {
trace!("Client {} already has the resource pack", self.id);
}
ResourcePackResponseResult::Accepted => {
trace!("Client {} accepted the resource pack", self.id);
// Return here to wait for the next response update
return;
}
ResourcePackResponseResult::Declined => {
trace!("Client {} declined the resource pack", self.id);
}
ResourcePackResponseResult::InvalidUrl => {
warn!(
"Client {} reported that the resource pack URL is invalid!",
self.id
);
}
ResourcePackResponseResult::ReloadFailed => {
trace!("Client {} failed to reload the resource pack", self.id);
}
ResourcePackResponseResult::Discarded => {
trace!("Client {} discarded the resource pack", self.id);
}
ResourcePackResponseResult::Unknown(result) => {
warn!(
"Client {} responded with a bad result: {}!",
self.id, result
);
}
}
} else {
warn!(
"Client {} returned a response for a resource pack we did not set!",
self.id
);
}
} else {
warn!(
"Client {} returned a response for a resource pack that was not enabled!",
self.id
);
}
self.send_known_packs().await;
}
pub async fn send_known_packs(&self) {
let version_str = self.version.load().to_string();
self.send_packet_now(&CKnownPacks::new(&[KnownPack {
namespace: "minecraft",
id: "core",
version: &version_str,
}]))
.await;
}
}