// 
// Decompiled by Procyon v0.6.0
// 

package com.hypixel.hytale.server.core.registry;

import com.hypixel.hytale.protocol.Packet;
import com.hypixel.hytale.server.core.universe.Universe;
import java.util.Map;
import com.hypixel.hytale.protocol.packets.setup.ServerTags;
import com.hypixel.hytale.assetstore.AssetRegistry;
import com.hypixel.hytale.server.core.client.ClientFeatureHandler;
import com.hypixel.hytale.protocol.packets.setup.ClientFeature;
import com.hypixel.hytale.server.core.plugin.PluginBase;
import java.util.function.BooleanSupplier;
import javax.annotation.Nonnull;
import com.hypixel.hytale.function.consumer.BooleanConsumer;
import java.util.List;
import com.hypixel.hytale.registry.Registry;

public class ClientFeatureRegistry extends Registry<ClientFeatureRegistration>
{
    public ClientFeatureRegistry(@Nonnull final List<BooleanConsumer> registrations, final BooleanSupplier precondition, final String preconditionMessage, final PluginBase plugin) {
        super(registrations, precondition, preconditionMessage, ClientFeatureRegistration::new);
    }
    
    public ClientFeatureRegistration register(final ClientFeature feature) {
        ClientFeatureHandler.register(feature);
        return super.register(new ClientFeatureRegistration(feature));
    }
    
    public void registerClientTag(@Nonnull final String tag) {
        if (AssetRegistry.registerClientTag(tag)) {
            final ServerTags packet = new ServerTags(AssetRegistry.getClientTags());
            Universe.get().broadcastPacketNoCache(packet);
        }
    }
}
