53 lines
2.1 KiB
Java
53 lines
2.1 KiB
Java
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<Rarity> 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<ItemStack> 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);
|
|
}
|
|
}
|