package org.bukkit.craftbukkit.entity; import com.google.common.base.Preconditions; import java.util.Collections; import java.util.Set; import java.util.stream.Collectors; import net.minecraft.world.entity.monster.piglin.EntityPiglin; import net.minecraft.world.item.Item; import org.bukkit.Material; import org.bukkit.craftbukkit.CraftServer; import org.bukkit.craftbukkit.inventory.CraftInventory; import org.bukkit.craftbukkit.util.CraftMagicNumbers; import org.bukkit.entity.Piglin; import org.bukkit.inventory.Inventory; public class CraftPiglin extends CraftPiglinAbstract implements Piglin { public CraftPiglin(CraftServer server, EntityPiglin entity) { super(server, entity); } @Override public boolean isAbleToHunt() { return getHandle().cannotHunt; } @Override public void setIsAbleToHunt(boolean flag) { getHandle().cannotHunt = flag; } @Override public boolean addBarterMaterial(Material material) { Preconditions.checkArgument(material != null, "material cannot be null"); Item item = CraftMagicNumbers.getItem(material); return getHandle().allowedBarterItems.add(item); } @Override public boolean removeBarterMaterial(Material material) { Preconditions.checkArgument(material != null, "material cannot be null"); Item item = CraftMagicNumbers.getItem(material); return getHandle().allowedBarterItems.remove(item); } @Override public boolean addMaterialOfInterest(Material material) { Preconditions.checkArgument(material != null, "material cannot be null"); Item item = CraftMagicNumbers.getItem(material); return getHandle().interestItems.add(item); } @Override public boolean removeMaterialOfInterest(Material material) { Preconditions.checkArgument(material != null, "material cannot be null"); Item item = CraftMagicNumbers.getItem(material); return getHandle().interestItems.remove(item); } @Override public Set getInterestList() { return Collections.unmodifiableSet(getHandle().interestItems.stream().map(CraftMagicNumbers::getMaterial).collect(Collectors.toSet())); } @Override public Set getBarterList() { return Collections.unmodifiableSet(getHandle().allowedBarterItems.stream().map(CraftMagicNumbers::getMaterial).collect(Collectors.toSet())); } @Override public Inventory getInventory() { return new CraftInventory(getHandle().inventory); } @Override public EntityPiglin getHandle() { return (EntityPiglin) super.getHandle(); } @Override public String toString() { return "CraftPiglin"; } }