В Minecraft, если череп помещен только с именем игрока в качестве значения nbt, клиент загружает данные скина, а не сервер, вы должны использовать для этого mojang api, там вы можете преобразовать имя в UUID, а затем получить текстуру этого UUID
Это работает -
Locale locale = new Locale("en","IN");
System.out.println("Country=" + locale.getISO3Country());
Вывод:
Country=IND
public static String convertAlpha3ToAlpha2(String alpha3) {
return Arrays.stream(Locale.getISOCountries())
.filter(alpha2 -> isCountryCodesEqual(alpha3, alpha2))
.findFirst().orElseThrow();
}
private static boolean isCountryCodesEqual(String alpha3, String alpha2) {
return alpha3.equalsIgnoreCase(new Locale("", alpha2).getISO3Country());
}
Поскольку вы читаете коды, вы не можете жестко кодировать их, вам лучше создать таблицу поиска для преобразования в коды ISO.
public static void main(String[] args) {
// setup
Locale[] availableLocales = Locale.getAvailableLocales();
HashMap<String, String> map = new HashMap<String, String>();
for ( Locale l : availableLocales ) {
map.put( l.getCountry(), l.getISO3Country() );
}
// usage
System.out.println( map.get( "IN" ) );
System.out.println( map.get( "GB" ) );
}