package net.minecraft.server; import com.google.gson.JsonDeserializationContext; import com.google.gson.JsonObject; import com.google.gson.JsonSerializationContext; import javax.annotation.Nullable; public class LootItemConditionTimeCheck implements LootItemCondition { @Nullable private final Long a; private final LootValueBounds b; private LootItemConditionTimeCheck(@Nullable Long olong, LootValueBounds lootvaluebounds) { this.a = olong; this.b = lootvaluebounds; } public boolean test(LootTableInfo loottableinfo) { WorldServer worldserver = loottableinfo.c(); long i = worldserver.getDayTime(); if (this.a != null) { i %= this.a; } return this.b.a((int) i); } public static class b extends LootItemCondition.b<LootItemConditionTimeCheck> { public b() { super(new MinecraftKey("time_check"), LootItemConditionTimeCheck.class); } public void a(JsonObject jsonobject, LootItemConditionTimeCheck lootitemconditiontimecheck, JsonSerializationContext jsonserializationcontext) { jsonobject.addProperty("period", lootitemconditiontimecheck.a); jsonobject.add("value", jsonserializationcontext.serialize(lootitemconditiontimecheck.b)); } @Override public LootItemConditionTimeCheck b(JsonObject jsonobject, JsonDeserializationContext jsondeserializationcontext) { Long olong = jsonobject.has("period") ? ChatDeserializer.m(jsonobject, "period") : null; LootValueBounds lootvaluebounds = (LootValueBounds) ChatDeserializer.a(jsonobject, "value", jsondeserializationcontext, LootValueBounds.class); return new LootItemConditionTimeCheck(olong, lootvaluebounds); } } }