public Map<Integer, String> getNameHistory(UUID uuid) {
        if (this.nameHistoryCache.containsKey(uuid))
            return this.nameHistoryCache.get(uuid);

        HashMap<Integer, String> history = new HashMap<>();

        try {
            HttpURLConnection connection = (HttpURLConnection) new URL("https://api.mojang.com/user/profiles/" + uuid + "/names").openConnection();
            connection.connect();

            JsonObject root = new JsonParser().parse(new InputStreamReader((InputStream) connection.getContent())).getAsJsonObject();

            for (JsonElement entry : root.getAsJsonArray()) {
                JsonObject object = entry.getAsJsonObject();

                history.put(
                    object.get("changedToAt") == null ? 0 : object.get("changedToAt").getAsInt(),
                    object.get("name").getAsString()
                );
            }
        } catch (IOException exception) {
            this.getLogger().warning("Failed to fetch name history!");

            exception.printStackTrace();
        }

        this.nameHistoryCache.put(uuid, history);

        return history;
    }