package com.alttd.fishingevent.util; import com.alttd.fishingevent.objects.Rarity; import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.SkullMeta; import org.bukkit.profile.PlayerProfile; import org.bukkit.profile.PlayerTextures; import java.net.MalformedURLException; import java.net.URL; import java.util.Optional; import java.util.UUID; public class FishConfigHelper { public static Optional getRarity(Logger logger, ConfigurationSection fishSection) { Rarity rarity; try { rarity = Rarity.valueOf(fishSection.getString("rarity", "REPLACE").toUpperCase()); } catch (IllegalArgumentException e) { logger.warning("Invalid rarity for " + fishSection.getCurrentPath()); return Optional.empty(); } return Optional.of(rarity); } @SuppressWarnings("deprecation") public static Optional loadFishItem(Logger logger, ConfigurationSection fishSection) { ConfigurationSection fishItemSection = fishSection.getConfigurationSection("item"); if (fishItemSection == null) { logger.warning("Invalid fish item section: " + fishSection.getCurrentPath() + ".item"); return Optional.empty(); } ItemStack skull = new ItemStack(Material.PLAYER_HEAD); SkullMeta skullMeta = (SkullMeta) skull.getItemMeta(); PlayerProfile playerProfile = Bukkit.getOfflinePlayer(UUID.fromString(fishItemSection.getString("uuid", UUID.randomUUID().toString()))).getPlayerProfile(); PlayerTextures playerTextures = playerProfile.getTextures(); try { playerTextures.setSkin(new URL("http://textures.minecraft.net/texture/" + fishItemSection.getString("url-texture"))); } catch (MalformedURLException e) { e.printStackTrace(); } playerProfile.setTextures(playerTextures); skullMeta.setOwnerProfile(playerProfile); skull.setItemMeta(skullMeta); return Optional.of(skull); } }