fishing_event/src/main/java/com/alttd/fishingevent/util/FishConfigHelper.java
2023-09-10 23:58:50 +02:00

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);
}
}