38 lines
1.5 KiB
Rust
38 lines
1.5 KiB
Rust
#[allow(clippy::wildcard_imports)]
|
|
use super::*;
|
|
|
|
impl PendingConnection {
|
|
pub async fn handle_known_packs(&mut self, server: &Server) {
|
|
let version = self.version.load();
|
|
if version.supports_configuration_state() {
|
|
if version < JavaMinecraftVersion::V_1_20_5 {
|
|
let features = server.get_enabled_features();
|
|
self.send_packet_now(&CFeatureFlags::new(&features)).await;
|
|
}
|
|
let registry = pumpkin_data::registry::Registry::get_synced(version);
|
|
for reg in ®istry {
|
|
if reg.registry_id == "minecraft:damage_type" {
|
|
let merged = server
|
|
.datapack_manager
|
|
.merge_damage_type_entries(®.registry_entries);
|
|
self.send_packet_now(&CRegistryData::new(®.registry_id, &merged))
|
|
.await;
|
|
continue;
|
|
}
|
|
self.send_packet_now(&CRegistryData::new(®.registry_id, ®.registry_entries))
|
|
.await;
|
|
}
|
|
}
|
|
let mut tags = Vec::new();
|
|
for &key in pumpkin_data::tag::RegistryKey::NETWORK_KEYS {
|
|
if pumpkin_data::tag::get_registry_key_tags(version, key)
|
|
.is_some_and(|map| !map.is_empty())
|
|
{
|
|
tags.push(key);
|
|
}
|
|
}
|
|
self.send_packet_now(&CUpdateTags::new(&tags)).await;
|
|
self.send_packet_now(&CFinishConfig).await;
|
|
}
|
|
}
|