Newer
Older
void-pack-super-server / work / decompile-ee3ecae0 / net / minecraft / server / PacketPlayOutRecipeUpdate.java
package net.minecraft.server;

import com.google.common.collect.Lists;
import java.io.IOException;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;

public class PacketPlayOutRecipeUpdate implements Packet<PacketListenerPlayOut> {

    private List<IRecipe<?>> a;

    public PacketPlayOutRecipeUpdate() {}

    public PacketPlayOutRecipeUpdate(Collection<IRecipe<?>> collection) {
        this.a = Lists.newArrayList(collection);
    }

    public void a(PacketListenerPlayOut packetlistenerplayout) {
        packetlistenerplayout.a(this);
    }

    @Override
    public void a(PacketDataSerializer packetdataserializer) throws IOException {
        this.a = Lists.newArrayList();
        int i = packetdataserializer.i();

        for (int j = 0; j < i; ++j) {
            this.a.add(c(packetdataserializer));
        }

    }

    @Override
    public void b(PacketDataSerializer packetdataserializer) throws IOException {
        packetdataserializer.d(this.a.size());
        Iterator iterator = this.a.iterator();

        while (iterator.hasNext()) {
            IRecipe<?> irecipe = (IRecipe) iterator.next();

            a(irecipe, packetdataserializer);
        }

    }

    public static IRecipe<?> c(PacketDataSerializer packetdataserializer) {
        MinecraftKey minecraftkey = packetdataserializer.o();
        MinecraftKey minecraftkey1 = packetdataserializer.o();

        return ((RecipeSerializer) IRegistry.RECIPE_SERIALIZER.getOptional(minecraftkey).orElseThrow(() -> {
            return new IllegalArgumentException("Unknown recipe serializer " + minecraftkey);
        })).a(minecraftkey1, packetdataserializer);
    }

    public static <T extends IRecipe<?>> void a(T t0, PacketDataSerializer packetdataserializer) {
        packetdataserializer.a(IRegistry.RECIPE_SERIALIZER.getKey(t0.getRecipeSerializer()));
        packetdataserializer.a(t0.getKey());
        t0.getRecipeSerializer().a(packetdataserializer, t0);
    }
}