Files
PrimalSorcery/build/tmp/recompileMc/sources/net/minecraft/advancements/ICriterionTrigger.java
Mohammad-Ali Minaie b86dedad2f base mod created
2018-10-08 09:07:47 -04:00

78 lines
2.7 KiB
Java

package net.minecraft.advancements;
import com.google.gson.JsonDeserializationContext;
import com.google.gson.JsonObject;
import net.minecraft.util.ResourceLocation;
public interface ICriterionTrigger<T extends ICriterionInstance>
{
ResourceLocation getId();
void addListener(PlayerAdvancements playerAdvancementsIn, ICriterionTrigger.Listener<T> listener);
void removeListener(PlayerAdvancements playerAdvancementsIn, ICriterionTrigger.Listener<T> listener);
void removeAllListeners(PlayerAdvancements playerAdvancementsIn);
/**
* Deserialize a ICriterionInstance of this trigger from the data in the JSON.
*/
T deserializeInstance(JsonObject json, JsonDeserializationContext context);
public static class Listener<T extends ICriterionInstance>
{
private final T criterionInstance;
private final Advancement advancement;
private final String criterionName;
public Listener(T criterionInstanceIn, Advancement advancementIn, String criterionNameIn)
{
this.criterionInstance = criterionInstanceIn;
this.advancement = advancementIn;
this.criterionName = criterionNameIn;
}
public T getCriterionInstance()
{
return this.criterionInstance;
}
public void grantCriterion(PlayerAdvancements playerAdvancementsIn)
{
playerAdvancementsIn.grantCriterion(this.advancement, this.criterionName);
}
public boolean equals(Object p_equals_1_)
{
if (this == p_equals_1_)
{
return true;
}
else if (p_equals_1_ != null && this.getClass() == p_equals_1_.getClass())
{
ICriterionTrigger.Listener<?> listener = (ICriterionTrigger.Listener)p_equals_1_;
if (!this.criterionInstance.equals(listener.criterionInstance))
{
return false;
}
else
{
return !this.advancement.equals(listener.advancement) ? false : this.criterionName.equals(listener.criterionName);
}
}
else
{
return false;
}
}
public int hashCode()
{
int i = this.criterionInstance.hashCode();
i = 31 * i + this.advancement.hashCode();
i = 31 * i + this.criterionName.hashCode();
return i;
}
}
}