content: package eu.the5zig.mod.server.hypixel.api;
  
  import com.google.gson.JsonElement;
  import com.google.gson.JsonObject;
  import com.google.gson.JsonParser;
  
  public class HypixelAPIResponse {
  
  	private JsonObject response;
  	private String raw;
  
  	private boolean success;
  	private String cause;
  
  	public HypixelAPIResponse(String response) {
  		if (response == null) {
  			success = false;
  			return;
  		}
  		this.raw = response;
  		JsonParser parser = new JsonParser();
  		JsonElement element = parser.parse(response);
  		if (!element.isJsonObject()) {
  			throw new IllegalArgumentException();
  		}
  		this.response = element.getAsJsonObject();
  
  		success = this.response.get("success").getAsBoolean();
  		if (!success)
  			cause = this.response.get("cause").getAsString();
  	}
  
  	public boolean isSuccess() {
  		return success;
  	}
  
  	public String getCause() {
  		return cause;
  	}
  
  	public JsonObject data() {
  		return response;
  	}
  
  	public String getRaw() {
  		return raw;
  	}
  
  	public JsonElement getElement(String path) {
  		return getElement(path, response);
  	}
  
  	public static JsonElement getElement(String path, JsonElement element) {
  		String[] tree = path.split("\\.");
  		JsonElement current = element;
  		for (String part : tree) {
  			if (current.isJsonNull())
  				return null;
  			if (current.isJsonArray() || current.isJsonPrimitive())
  				return current;
  			current = current.getAsJsonObject().get(part);
  		}
  		return current;
  	}
  
  }