diff --git a/RedisBungee-API/src/main/java/com/imaginarycode/minecraft/redisbungee/api/util/uuid/NameFetcher.java b/RedisBungee-API/src/main/java/com/imaginarycode/minecraft/redisbungee/api/util/uuid/NameFetcher.java index a0d14bd..2080a27 100644 --- a/RedisBungee-API/src/main/java/com/imaginarycode/minecraft/redisbungee/api/util/uuid/NameFetcher.java +++ b/RedisBungee-API/src/main/java/com/imaginarycode/minecraft/redisbungee/api/util/uuid/NameFetcher.java @@ -1,3 +1,13 @@ +/* + * Copyright (c) 2013-present RedisBungee contributors + * + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * + * http://www.eclipse.org/legal/epl-v10.html + */ + package com.imaginarycode.minecraft.redisbungee.api.util.uuid; import com.google.gson.Gson; @@ -11,32 +21,38 @@ import java.util.ArrayList; import java.util.List; import java.util.UUID; +@Deprecated public class NameFetcher { private static OkHttpClient httpClient; private static final Gson gson = new Gson(); + @Deprecated public static void setHttpClient(OkHttpClient httpClient) { - NameFetcher.httpClient = httpClient; + throw new UnsupportedOperationException("Due mojang disabled the Names API NameFetcher no longer functions and has been disabled"); + // NameFetcher.httpClient = httpClient; } + @Deprecated 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(); - ResponseBody body = httpClient.newCall(request).execute().body(); - String response = body.string(); - body.close(); - - Type listType = new TypeToken>() { - }.getType(); - List names = gson.fromJson(response, listType); - - List humanNames = new ArrayList<>(); - for (Name name : names) { - humanNames.add(name.name); - } - return humanNames; + throw new UnsupportedOperationException("Due mojang disabled the Names API NameFetcher no longer functions and has been disabled"); +// String url = "https://api.mojang.com/user/profiles/" + uuid.toString().replace("-", "") + "/names"; +// Request request = new Request.Builder().url(url).get().build(); +// ResponseBody body = httpClient.newCall(request).execute().body(); +// String response = body.string(); +// body.close(); +// +// Type listType = new TypeToken>() { +// }.getType(); +// List names = gson.fromJson(response, listType); +// +// List humanNames = new ArrayList<>(); +// for (Name name : names) { +// humanNames.add(name.name); +// } +// return humanNames; } + @Deprecated public static class Name { private String name; private long changedToAt; diff --git a/RedisBungee-API/src/main/java/com/imaginarycode/minecraft/redisbungee/api/util/uuid/UUIDFetcher.java b/RedisBungee-API/src/main/java/com/imaginarycode/minecraft/redisbungee/api/util/uuid/UUIDFetcher.java index c67cb53..06433e2 100644 --- a/RedisBungee-API/src/main/java/com/imaginarycode/minecraft/redisbungee/api/util/uuid/UUIDFetcher.java +++ b/RedisBungee-API/src/main/java/com/imaginarycode/minecraft/redisbungee/api/util/uuid/UUIDFetcher.java @@ -1,3 +1,13 @@ +/* + * Copyright (c) 2013-present RedisBungee contributors + * + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * + * http://www.eclipse.org/legal/epl-v10.html + */ + package com.imaginarycode.minecraft.redisbungee.api.util.uuid; import com.google.common.collect.ImmutableList; diff --git a/RedisBungee-API/src/main/java/com/imaginarycode/minecraft/redisbungee/api/util/uuid/UUIDTranslator.java b/RedisBungee-API/src/main/java/com/imaginarycode/minecraft/redisbungee/api/util/uuid/UUIDTranslator.java index 040399b..663d1cf 100644 --- a/RedisBungee-API/src/main/java/com/imaginarycode/minecraft/redisbungee/api/util/uuid/UUIDTranslator.java +++ b/RedisBungee-API/src/main/java/com/imaginarycode/minecraft/redisbungee/api/util/uuid/UUIDTranslator.java @@ -1,3 +1,13 @@ +/* + * Copyright (c) 2013-present RedisBungee contributors + * + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * + * http://www.eclipse.org/legal/epl-v10.html + */ + package com.imaginarycode.minecraft.redisbungee.api.util.uuid; import com.google.common.base.Charsets; @@ -160,10 +170,14 @@ public final class UUIDTranslator { return null; // That didn't work. Let's ask Mojang. This call may fail, because Mojang is insane. + // + // UPDATE: Mojang has removed the API somewhere in september/2022 due privacy issues + // this is expected to fail now, so we will keep logging it until we figure out something or remove name fetching completely + // Name fetching class was deprecated as result String name; try { - List nameHist = NameFetcher.nameHistoryFromUuid(player); - name = Iterables.getLast(nameHist, null); + plugin.logFatal("Due Mojang removing the naming API, we were unable to fetch player names."); + name = Iterables.getLast(NameFetcher.nameHistoryFromUuid(player)); } catch (Exception e) { plugin.logFatal("Unable to fetch name from Mojang for " + player); return null; diff --git a/RedisBungee-Bungee/src/main/java/com/imaginarycode/minecraft/redisbungee/RedisBungee.java b/RedisBungee-Bungee/src/main/java/com/imaginarycode/minecraft/redisbungee/RedisBungee.java index 256c200..d2d7b33 100644 --- a/RedisBungee-Bungee/src/main/java/com/imaginarycode/minecraft/redisbungee/RedisBungee.java +++ b/RedisBungee-Bungee/src/main/java/com/imaginarycode/minecraft/redisbungee/RedisBungee.java @@ -222,7 +222,7 @@ public class RedisBungee extends Plugin implements RedisBungeePlugin, Con this.httpClient = new OkHttpClient(); Dispatcher dispatcher = new Dispatcher(Executors.newFixedThreadPool(6)); this.httpClient.setDispatcher(dispatcher); - NameFetcher.setHttpClient(httpClient); + //NameFetcher.setHttpClient(httpClient); UUIDFetcher.setHttpClient(httpClient); }