package joshie.harvest.core.util.holders;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.ResourceLocation;
import java.util.ArrayList;
import java.util.List;
public class ModHolder extends AbstractItemHolder {
private final String mod;
private ModHolder(String mod) {
this.mod = mod;
}
public static ModHolder of(String mod) {
return new ModHolder(mod);
}
@Override
public List<ItemStack> getMatchingStacks() {
return new ArrayList<>();
}
@Override
public boolean matches(ItemStack stack) {
ResourceLocation resource = Item.REGISTRY.getNameForObject(stack.getItem());
return resource != null && resource.getResourceDomain().equals(mod);
}
public static ModHolder readFromNBT(NBTTagCompound tag) {
return new ModHolder(tag.getString("Mod"));
}
@Override
public NBTTagCompound writeToNBT(NBTTagCompound tag) {
tag.setString("Mod", mod);
return tag;
}
@Override
public String toString() {
return mod;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
ModHolder modHolder = (ModHolder) o;
return mod != null ? mod.equals(modHolder.mod) : modHolder.mod == null;
}
@Override
public int hashCode() {
return mod != null ? mod.hashCode() : 0;
}
}