Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
Это никак(при условии что игрока вообще никогда не было на сервере)
Mojang API для кого делали?Это никак
https://wiki.vg/Mojang_APIКак можно получить UUID игрока зная только никнейм(при условии что игрока вообще никогда не было на сервере)
String name = "Notch";
boolean onlineMode = Bukkit.getOnlineMode();
Long timestamp = null;
try {
UUID uuid = MojangAPI.getPlayerUuid(name, onlineMode, null);
if (uuid == null)
System.out.println("Игрок с таким ником не существует");
else
System.out.println((onlineMode ? "Лицензионный " : "Пиратский") + " UUID игрока " + name + ": " + uuid.toString());
} catch (IOException e) {
System.out.println("Не удалось получить UUID игрока + " + name + ". Похоже, сервера Mojang недоступны");
}
/**
* @param name Никнейм игрока
* @param onlineMode Включить ли запрос UUID с серверов Mojang или сгенерировать
* @param timestamp Время в UNIX-формате (без миллисекунд). null для текущего времени
* @return UUID игрока. Либо null, если игрок не найден на серверах Mojang
* @throws IOException В случае, если сервера Mojang недоступны или был вернут некорректный ответ
*/
@Nullable
public static UUID getPlayerUuid(@Nonnull String name, boolean onlineMode, @Nullable Long timestamp) throws IOException {
if (!onlineMode) return UUID.nameUUIDFromBytes(("OfflinePlayer:" + name).getBytes(Charsets.UTF_8));
try (BufferedReader reader = createReader("https://api.mojang.com/users/profiles/minecraft/" + name
+ (timestamp == null ? "" : "?at=" + timestamp))) {
JsonElement element = readJson(reader);
if (element == null) return null; //Игрок не найден
JsonObject jsonObject = element.getAsJsonObject();
if (jsonObject == null) return null;
if (!jsonObject.has("id"))
throw new IOException("Некорректные данные профиля игрока " + name);
String uuid = jsonObject.get("id").getAsString();
return parseUUID(uuid, false);
} catch (IOException e) {
throw new IOException("Сервера Mojang недоступны", e);
}
}
/**
* @param reader Ридер, при помощи которого производить чтение
* @return JsonElement после парсинга или null, если ответ не поступил
* @throws IOException если не удалось выполнить чтение ридером
*/
@Nullable
private static JsonElement readJson(@Nonnull BufferedReader reader) throws IOException {
String jsonInput = reader.readLine();
if (jsonInput == null || jsonInput.isEmpty()) return null;
return new JsonParser().parse(jsonInput);
}
/**
* @param url URL для подключения
* @return Ридер по указанному URL
* @throws IOException при приблемах поделючения
*/
@Nonnull
private static BufferedReader createReader(@Nonnull String url) throws IOException {
return new BufferedReader(new InputStreamReader(new URL(url).openStream()));
}
/**
* @param input Строка с UUID
* @param hasSplitters Создержит ли строка разделители '-'
* @return UUID в виде объекта
*/
@Nonnull
private static UUID parseUUID(@Nonnull String input, boolean hasSplitters) {
if (hasSplitters) {
if (input.length() != 36) throw new IllegalArgumentException("Некорректный UUID: " + input);
} else {
if (input.length() != 32) throw new IllegalArgumentException("Некорректный UUID: " + input);
input = input.replaceAll("(.{8})(.{4})(.{4})(.{4})(.+)", "$1-$2-$3-$4-$5");
}
return UUID.fromString(input);
}