package joshie.progression.plugins.enchiridion.actions; import com.google.gson.JsonObject; import joshie.progression.Progression; import joshie.progression.api.criteria.ICriteria; import joshie.progression.handlers.APICache; import joshie.progression.helpers.JSONHelper; import java.util.UUID; public abstract class AbstractActionCriteria extends AbstractActionProgression { public AbstractActionCriteria() {} public AbstractActionCriteria(ICriteria criteria, String name) { super(name); if (criteria != null) { uuid = criteria.getUniqueID(); display = criteria.getLocalisedName(); } } public ICriteria getCriteria() { return APICache.getClientCache().getCriteria(uuid); } @Override public void onFieldsSet(String field) { if (field.equals("")) { ICriteria criteria = getCriteria(); if (criteria != null) display = criteria.getLocalisedName(); } else if (field.equals("display")) { for (ICriteria c : APICache.getClientCache().getCriteriaSet()) { if (c.getLocalisedName().equals(display)) { uuid = c.getUniqueID(); } } } } @Override public void readFromJson(JsonObject object) { super.readFromJson(object); try { uuid = UUID.fromString(JSONHelper.getString(object, "uuid", "d977334a-a7e9-5e43-b87e-91df8eebfdff")); } catch (Exception e){} } @Override public void writeToJson(JsonObject object) { super.writeToJson(object); if (uuid != null) { JSONHelper.setString(object, "uuid", uuid.toString(), "d977334a-a7e9-5e43-b87e-91df8eebfdff"); } } @Override public String getName() { return Progression.translate("action." + name); } }