package net.buycraft.plugin.shared.util;
import com.google.gson.GsonBuilder;
import lombok.experimental.UtilityClass;
import net.buycraft.plugin.data.responses.Version;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import okhttp3.ResponseBody;
import java.io.IOException;
@UtilityClass
public class VersionUtil {
public static Version getVersion(OkHttpClient client, String platform) throws IOException {
Request request = new Request.Builder()
.url("https://plugin.buycraft.net/versions/" + platform)
.build();
Response response = client.newCall(request).execute();
if (!response.isSuccessful()) {
return null;
}
try (ResponseBody body = response.body()) {
return new GsonBuilder()
.setDateFormat("yyyy-MM-dd'T'HH:mm:ssZ")
.create()
.fromJson(body.string(), Version.class);
}
}
public static boolean isVersionGreater(String one, String two) {
String[] componentsOne = one.split("\\.");
String[] componentsTwo = two.split("\\.");
int verLen = Math.min(componentsOne.length, componentsTwo.length);
int[] numOne = new int[verLen];
int[] numTwo = new int[verLen];
// We expect integers only
for (int i = 0; i < verLen; i++) {
numOne[i] = Integer.parseInt(componentsOne[i]);
}
for (int i = 0; i < verLen; i++) {
numTwo[i] = Integer.parseInt(componentsTwo[i]);
}
// Compare the versions
for (int i = 0; i < verLen; i++) {
if (numTwo[i] == numOne[i])
continue;
if (numTwo[i] > numOne[i])
return true;
}
return false;
}
}