package com.imaginarycode.minecraft.redisbungee.util; import com.google.gson.reflect.TypeToken; import com.imaginarycode.minecraft.redisbungee.RedisBungee; import com.squareup.okhttp.OkHttpClient; import com.squareup.okhttp.Request; import lombok.AccessLevel; import lombok.NoArgsConstructor; import lombok.Setter; import java.io.IOException; import java.lang.reflect.Type; import java.util.ArrayList; import java.util.List; import java.util.UUID; @NoArgsConstructor(access = AccessLevel.PRIVATE) public class NameFetcher { @Setter private static OkHttpClient httpClient; public static List nameHistoryFromUuid(UUID uuid) throws IOException { String url = "https://api.mojang.com/user/profiles/" + uuid.toString().replace("-", "") + "/names"; Request request = new Request.Builder().url(url).get().build(); String response = httpClient.newCall(request).execute().body().string(); Type listType = new TypeToken>() { }.getType(); List names = RedisBungee.getGson().fromJson(response, listType); List humanNames = new ArrayList<>(); for (Name name : names) { humanNames.add(name.name); } return humanNames; } public static class Name { private String name; private long changedToAt; } }