package net.glowstone.util.loot;
import lombok.Data;
import org.json.simple.JSONObject;
import java.util.Optional;
@Data
public class ConditionalLootItem {
private final Optional<ProbableValue<String>> type;
private final String condition;
private final Optional<LootRandomValues> count;
private final Optional<ProbableValue<Integer>> data;
private final Optional<ReflectiveValue<Integer>> reflectiveData;
public ConditionalLootItem(JSONObject object) {
if (object.containsKey("item")) {
type = Optional.of(new ProbableValue<>(object, "item"));
} else {
type = Optional.empty();
}
if (object.containsKey("data")) {
Object data = object.get("data");
if (data instanceof String) {
this.reflectiveData = Optional.of(new ReflectiveValue<Integer>((String) data));
this.data = Optional.empty();
} else {
this.data = Optional.of(new ProbableValue<>(object, "data"));
this.reflectiveData = Optional.empty();
}
} else {
data = Optional.empty();
reflectiveData = Optional.empty();
}
if (object.containsKey("count")) {
count = Optional.of(new LootRandomValues(object));
} else {
count = Optional.empty();
}
condition = (String) object.get("condition");
}
}