rename SkinCache to MojangSkinCache

This commit is contained in:
Pyrbu 2023-07-01 00:14:23 +02:00
parent e3c7f9fb04
commit f438d50808
15 changed files with 42 additions and 47 deletions

@ -38,7 +38,7 @@ import lol.pyr.znpcsplus.parsers.*;
import lol.pyr.znpcsplus.scheduling.FoliaScheduler; import lol.pyr.znpcsplus.scheduling.FoliaScheduler;
import lol.pyr.znpcsplus.scheduling.SpigotScheduler; import lol.pyr.znpcsplus.scheduling.SpigotScheduler;
import lol.pyr.znpcsplus.scheduling.TaskScheduler; import lol.pyr.znpcsplus.scheduling.TaskScheduler;
import lol.pyr.znpcsplus.skin.cache.SkinCache; import lol.pyr.znpcsplus.skin.cache.MojangSkinCache;
import lol.pyr.znpcsplus.skin.cache.SkinCacheCleanTask; import lol.pyr.znpcsplus.skin.cache.SkinCacheCleanTask;
import lol.pyr.znpcsplus.tasks.HologramRefreshTask; import lol.pyr.znpcsplus.tasks.HologramRefreshTask;
import lol.pyr.znpcsplus.tasks.NpcProcessorTask; import lol.pyr.znpcsplus.tasks.NpcProcessorTask;
@ -126,7 +126,7 @@ public class ZNpcsPlus extends JavaPlugin {
shutdownTasks.add(scheduler::cancelAll); shutdownTasks.add(scheduler::cancelAll);
ConfigManager configManager = new ConfigManager(getDataFolder()); ConfigManager configManager = new ConfigManager(getDataFolder());
SkinCache skinCache = new SkinCache(configManager); MojangSkinCache skinCache = new MojangSkinCache(configManager);
EntityPropertyRegistryImpl propertyRegistry = new EntityPropertyRegistryImpl(skinCache); EntityPropertyRegistryImpl propertyRegistry = new EntityPropertyRegistryImpl(skinCache);
MetadataFactory metadataFactory = setupMetadataFactory(); MetadataFactory metadataFactory = setupMetadataFactory();
PacketFactory packetFactory = setupPacketFactory(scheduler, metadataFactory, propertyRegistry); PacketFactory packetFactory = setupPacketFactory(scheduler, metadataFactory, propertyRegistry);
@ -259,7 +259,7 @@ public class ZNpcsPlus extends JavaPlugin {
} }
private void registerCommands(NpcRegistryImpl npcRegistry, SkinCache skinCache, BukkitAudiences adventure, private void registerCommands(NpcRegistryImpl npcRegistry, MojangSkinCache skinCache, BukkitAudiences adventure,
ActionRegistry actionRegistry, NpcTypeRegistryImpl typeRegistry, ActionRegistry actionRegistry, NpcTypeRegistryImpl typeRegistry,
EntityPropertyRegistryImpl propertyRegistry, DataImporterRegistry importerRegistry, EntityPropertyRegistryImpl propertyRegistry, DataImporterRegistry importerRegistry,
ConfigManager configManager) { ConfigManager configManager) {

@ -9,7 +9,7 @@ import lol.pyr.znpcsplus.entity.EntityPropertyRegistryImpl;
import lol.pyr.znpcsplus.npc.NpcRegistryImpl; import lol.pyr.znpcsplus.npc.NpcRegistryImpl;
import lol.pyr.znpcsplus.npc.NpcTypeRegistryImpl; import lol.pyr.znpcsplus.npc.NpcTypeRegistryImpl;
import lol.pyr.znpcsplus.skin.SkinDescriptorFactoryImpl; import lol.pyr.znpcsplus.skin.SkinDescriptorFactoryImpl;
import lol.pyr.znpcsplus.skin.cache.SkinCache; import lol.pyr.znpcsplus.skin.cache.MojangSkinCache;
public class ZNpcsPlusApi implements NpcApi { public class ZNpcsPlusApi implements NpcApi {
private final NpcRegistryImpl npcRegistry; private final NpcRegistryImpl npcRegistry;
@ -17,7 +17,7 @@ public class ZNpcsPlusApi implements NpcApi {
private final EntityPropertyRegistryImpl propertyRegistry; private final EntityPropertyRegistryImpl propertyRegistry;
private final SkinDescriptorFactoryImpl skinDescriptorFactory; private final SkinDescriptorFactoryImpl skinDescriptorFactory;
public ZNpcsPlusApi(NpcRegistryImpl npcRegistry, NpcTypeRegistryImpl typeRegistry, EntityPropertyRegistryImpl propertyRegistry, SkinCache skinCache) { public ZNpcsPlusApi(NpcRegistryImpl npcRegistry, NpcTypeRegistryImpl typeRegistry, EntityPropertyRegistryImpl propertyRegistry, MojangSkinCache skinCache) {
this.npcRegistry = npcRegistry; this.npcRegistry = npcRegistry;
this.typeRegistry = typeRegistry; this.typeRegistry = typeRegistry;
this.propertyRegistry = propertyRegistry; this.propertyRegistry = propertyRegistry;

@ -10,7 +10,7 @@ import lol.pyr.znpcsplus.npc.NpcEntryImpl;
import lol.pyr.znpcsplus.npc.NpcImpl; import lol.pyr.znpcsplus.npc.NpcImpl;
import lol.pyr.znpcsplus.npc.NpcRegistryImpl; import lol.pyr.znpcsplus.npc.NpcRegistryImpl;
import lol.pyr.znpcsplus.npc.NpcTypeRegistryImpl; import lol.pyr.znpcsplus.npc.NpcTypeRegistryImpl;
import lol.pyr.znpcsplus.skin.cache.SkinCache; import lol.pyr.znpcsplus.skin.cache.MojangSkinCache;
import lol.pyr.znpcsplus.skin.descriptor.FetchingDescriptor; import lol.pyr.znpcsplus.skin.descriptor.FetchingDescriptor;
import lol.pyr.znpcsplus.skin.descriptor.MirrorDescriptor; import lol.pyr.znpcsplus.skin.descriptor.MirrorDescriptor;
import lol.pyr.znpcsplus.skin.descriptor.PrefetchedDescriptor; import lol.pyr.znpcsplus.skin.descriptor.PrefetchedDescriptor;
@ -21,12 +21,12 @@ import java.util.Collections;
import java.util.List; import java.util.List;
public class SkinCommand implements CommandHandler { public class SkinCommand implements CommandHandler {
private final SkinCache skinCache; private final MojangSkinCache skinCache;
private final NpcRegistryImpl npcRegistry; private final NpcRegistryImpl npcRegistry;
private final NpcTypeRegistryImpl typeRegistry; private final NpcTypeRegistryImpl typeRegistry;
private final EntityPropertyRegistryImpl propertyRegistry; private final EntityPropertyRegistryImpl propertyRegistry;
public SkinCommand(SkinCache skinCache, NpcRegistryImpl npcRegistry, NpcTypeRegistryImpl typeRegistry, EntityPropertyRegistryImpl propertyRegistry) { public SkinCommand(MojangSkinCache skinCache, NpcRegistryImpl npcRegistry, NpcTypeRegistryImpl typeRegistry, EntityPropertyRegistryImpl propertyRegistry) {
this.skinCache = skinCache; this.skinCache = skinCache;
this.npcRegistry = npcRegistry; this.npcRegistry = npcRegistry;
this.typeRegistry = typeRegistry; this.typeRegistry = typeRegistry;

@ -6,7 +6,7 @@ import lol.pyr.znpcsplus.entity.EntityPropertyRegistryImpl;
import lol.pyr.znpcsplus.npc.NpcTypeRegistryImpl; import lol.pyr.znpcsplus.npc.NpcTypeRegistryImpl;
import lol.pyr.znpcsplus.packets.PacketFactory; import lol.pyr.znpcsplus.packets.PacketFactory;
import lol.pyr.znpcsplus.scheduling.TaskScheduler; import lol.pyr.znpcsplus.scheduling.TaskScheduler;
import lol.pyr.znpcsplus.skin.cache.SkinCache; import lol.pyr.znpcsplus.skin.cache.MojangSkinCache;
import lol.pyr.znpcsplus.util.BungeeConnector; import lol.pyr.znpcsplus.util.BungeeConnector;
import lol.pyr.znpcsplus.util.LazyLoader; import lol.pyr.znpcsplus.util.LazyLoader;
import net.kyori.adventure.platform.bukkit.BukkitAudiences; import net.kyori.adventure.platform.bukkit.BukkitAudiences;
@ -24,7 +24,7 @@ public class DataImporterRegistry {
public DataImporterRegistry(ConfigManager configManager, BukkitAudiences adventure, BungeeConnector bungeeConnector, public DataImporterRegistry(ConfigManager configManager, BukkitAudiences adventure, BungeeConnector bungeeConnector,
TaskScheduler taskScheduler, PacketFactory packetFactory, LegacyComponentSerializer textSerializer, TaskScheduler taskScheduler, PacketFactory packetFactory, LegacyComponentSerializer textSerializer,
NpcTypeRegistryImpl typeRegistry, File pluginsFolder, EntityPropertyRegistryImpl propertyRegistry, NpcTypeRegistryImpl typeRegistry, File pluginsFolder, EntityPropertyRegistryImpl propertyRegistry,
SkinCache skinCache) { MojangSkinCache skinCache) {
register("znpcs", LazyLoader.of(() -> new ZNpcImporter(configManager, adventure, bungeeConnector, taskScheduler, register("znpcs", LazyLoader.of(() -> new ZNpcImporter(configManager, adventure, bungeeConnector, taskScheduler,
packetFactory, textSerializer, typeRegistry, propertyRegistry, skinCache, new File(pluginsFolder, "ServersNPC/data.json")))); packetFactory, textSerializer, typeRegistry, propertyRegistry, skinCache, new File(pluginsFolder, "ServersNPC/data.json"))));

@ -7,7 +7,7 @@ import lol.pyr.znpcsplus.npc.NpcEntryImpl;
import lol.pyr.znpcsplus.npc.NpcTypeRegistryImpl; import lol.pyr.znpcsplus.npc.NpcTypeRegistryImpl;
import lol.pyr.znpcsplus.packets.PacketFactory; import lol.pyr.znpcsplus.packets.PacketFactory;
import lol.pyr.znpcsplus.scheduling.TaskScheduler; import lol.pyr.znpcsplus.scheduling.TaskScheduler;
import lol.pyr.znpcsplus.skin.cache.SkinCache; import lol.pyr.znpcsplus.skin.cache.MojangSkinCache;
import lol.pyr.znpcsplus.util.BungeeConnector; import lol.pyr.znpcsplus.util.BungeeConnector;
import net.kyori.adventure.platform.bukkit.BukkitAudiences; import net.kyori.adventure.platform.bukkit.BukkitAudiences;
import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer; import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
@ -27,12 +27,12 @@ public class CitizensImporter implements DataImporter {
private final LegacyComponentSerializer textSerializer; private final LegacyComponentSerializer textSerializer;
private final NpcTypeRegistryImpl typeRegistry; private final NpcTypeRegistryImpl typeRegistry;
private final EntityPropertyRegistryImpl propertyRegistry; private final EntityPropertyRegistryImpl propertyRegistry;
private final SkinCache skinCache; private final MojangSkinCache skinCache;
private final File dataFile; private final File dataFile;
public CitizensImporter(ConfigManager configManager, BukkitAudiences adventure, BungeeConnector bungeeConnector, public CitizensImporter(ConfigManager configManager, BukkitAudiences adventure, BungeeConnector bungeeConnector,
TaskScheduler taskScheduler, PacketFactory packetFactory, LegacyComponentSerializer textSerializer, TaskScheduler taskScheduler, PacketFactory packetFactory, LegacyComponentSerializer textSerializer,
NpcTypeRegistryImpl typeRegistry, EntityPropertyRegistryImpl propertyRegistry, SkinCache skinCache, NpcTypeRegistryImpl typeRegistry, EntityPropertyRegistryImpl propertyRegistry, MojangSkinCache skinCache,
File dataFile) { File dataFile) {
this.configManager = configManager; this.configManager = configManager;
this.adventure = adventure; this.adventure = adventure;

@ -27,7 +27,7 @@ import lol.pyr.znpcsplus.npc.NpcImpl;
import lol.pyr.znpcsplus.npc.NpcTypeRegistryImpl; import lol.pyr.znpcsplus.npc.NpcTypeRegistryImpl;
import lol.pyr.znpcsplus.packets.PacketFactory; import lol.pyr.znpcsplus.packets.PacketFactory;
import lol.pyr.znpcsplus.scheduling.TaskScheduler; import lol.pyr.znpcsplus.scheduling.TaskScheduler;
import lol.pyr.znpcsplus.skin.cache.SkinCache; import lol.pyr.znpcsplus.skin.cache.MojangSkinCache;
import lol.pyr.znpcsplus.skin.descriptor.FetchingDescriptor; import lol.pyr.znpcsplus.skin.descriptor.FetchingDescriptor;
import lol.pyr.znpcsplus.util.BungeeConnector; import lol.pyr.znpcsplus.util.BungeeConnector;
import lol.pyr.znpcsplus.util.ItemSerializationUtil; import lol.pyr.znpcsplus.util.ItemSerializationUtil;
@ -51,13 +51,13 @@ public class ZNpcImporter implements DataImporter {
private final LegacyComponentSerializer textSerializer; private final LegacyComponentSerializer textSerializer;
private final NpcTypeRegistryImpl typeRegistry; private final NpcTypeRegistryImpl typeRegistry;
private final EntityPropertyRegistryImpl propertyRegistry; private final EntityPropertyRegistryImpl propertyRegistry;
private final SkinCache skinCache; private final MojangSkinCache skinCache;
private final File dataFile; private final File dataFile;
private final Gson gson; private final Gson gson;
public ZNpcImporter(ConfigManager configManager, BukkitAudiences adventure, BungeeConnector bungeeConnector, public ZNpcImporter(ConfigManager configManager, BukkitAudiences adventure, BungeeConnector bungeeConnector,
TaskScheduler taskScheduler, PacketFactory packetFactory, LegacyComponentSerializer textSerializer, TaskScheduler taskScheduler, PacketFactory packetFactory, LegacyComponentSerializer textSerializer,
NpcTypeRegistryImpl typeRegistry, EntityPropertyRegistryImpl propertyRegistry, SkinCache skinCache, File dataFile) { NpcTypeRegistryImpl typeRegistry, EntityPropertyRegistryImpl propertyRegistry, MojangSkinCache skinCache, File dataFile) {
this.configManager = configManager; this.configManager = configManager;
this.adventure = adventure; this.adventure = adventure;

@ -5,7 +5,7 @@ import lol.pyr.znpcsplus.api.entity.EntityProperty;
import lol.pyr.znpcsplus.api.entity.EntityPropertyRegistry; import lol.pyr.znpcsplus.api.entity.EntityPropertyRegistry;
import lol.pyr.znpcsplus.api.skin.SkinDescriptor; import lol.pyr.znpcsplus.api.skin.SkinDescriptor;
import lol.pyr.znpcsplus.entity.serializers.*; import lol.pyr.znpcsplus.entity.serializers.*;
import lol.pyr.znpcsplus.skin.cache.SkinCache; import lol.pyr.znpcsplus.skin.cache.MojangSkinCache;
import lol.pyr.znpcsplus.util.CatVariant; import lol.pyr.znpcsplus.util.CatVariant;
import lol.pyr.znpcsplus.util.CreeperState; import lol.pyr.znpcsplus.util.CreeperState;
import lol.pyr.znpcsplus.util.NpcPose; import lol.pyr.znpcsplus.util.NpcPose;
@ -26,7 +26,7 @@ public class EntityPropertyRegistryImpl implements EntityPropertyRegistry {
private final Map<Class<?>, PropertySerializer<?>> serializerMap = new HashMap<>(); private final Map<Class<?>, PropertySerializer<?>> serializerMap = new HashMap<>();
private final Map<String, EntityPropertyImpl<?>> byName = new HashMap<>(); private final Map<String, EntityPropertyImpl<?>> byName = new HashMap<>();
public EntityPropertyRegistryImpl(SkinCache skinCache) { public EntityPropertyRegistryImpl(MojangSkinCache skinCache) {
registerSerializer(new BooleanPropertySerializer()); registerSerializer(new BooleanPropertySerializer());
registerSerializer(new ComponentPropertySerializer()); registerSerializer(new ComponentPropertySerializer());
registerSerializer(new NamedTextColorPropertySerializer()); registerSerializer(new NamedTextColorPropertySerializer());

@ -3,12 +3,12 @@ package lol.pyr.znpcsplus.entity.serializers;
import lol.pyr.znpcsplus.api.skin.SkinDescriptor; import lol.pyr.znpcsplus.api.skin.SkinDescriptor;
import lol.pyr.znpcsplus.entity.PropertySerializer; import lol.pyr.znpcsplus.entity.PropertySerializer;
import lol.pyr.znpcsplus.skin.BaseSkinDescriptor; import lol.pyr.znpcsplus.skin.BaseSkinDescriptor;
import lol.pyr.znpcsplus.skin.cache.SkinCache; import lol.pyr.znpcsplus.skin.cache.MojangSkinCache;
public class SkinDescriptorSerializer implements PropertySerializer<SkinDescriptor> { public class SkinDescriptorSerializer implements PropertySerializer<SkinDescriptor> {
private final SkinCache skinCache; private final MojangSkinCache skinCache;
public SkinDescriptorSerializer(SkinCache skinCache) { public SkinDescriptorSerializer(MojangSkinCache skinCache) {
this.skinCache = skinCache; this.skinCache = skinCache;
} }

@ -2,7 +2,7 @@ package lol.pyr.znpcsplus.skin;
import com.github.retrooper.packetevents.protocol.player.TextureProperty; import com.github.retrooper.packetevents.protocol.player.TextureProperty;
import lol.pyr.znpcsplus.api.skin.SkinDescriptor; import lol.pyr.znpcsplus.api.skin.SkinDescriptor;
import lol.pyr.znpcsplus.skin.cache.SkinCache; import lol.pyr.znpcsplus.skin.cache.MojangSkinCache;
import lol.pyr.znpcsplus.skin.descriptor.FetchingDescriptor; import lol.pyr.znpcsplus.skin.descriptor.FetchingDescriptor;
import lol.pyr.znpcsplus.skin.descriptor.MirrorDescriptor; import lol.pyr.znpcsplus.skin.descriptor.MirrorDescriptor;
import lol.pyr.znpcsplus.skin.descriptor.PrefetchedDescriptor; import lol.pyr.znpcsplus.skin.descriptor.PrefetchedDescriptor;
@ -18,7 +18,7 @@ public interface BaseSkinDescriptor extends SkinDescriptor {
boolean supportsInstant(Player player); boolean supportsInstant(Player player);
String serialize(); String serialize();
static BaseSkinDescriptor deserialize(SkinCache skinCache, String str) { static BaseSkinDescriptor deserialize(MojangSkinCache skinCache, String str) {
String[] arr = str.split(";"); String[] arr = str.split(";");
if (arr[0].equalsIgnoreCase("mirror")) return new MirrorDescriptor(skinCache); if (arr[0].equalsIgnoreCase("mirror")) return new MirrorDescriptor(skinCache);
else if (arr[0].equalsIgnoreCase("fetching")) return new FetchingDescriptor(skinCache, arr[1]); else if (arr[0].equalsIgnoreCase("fetching")) return new FetchingDescriptor(skinCache, arr[1]);

@ -2,16 +2,16 @@ package lol.pyr.znpcsplus.skin;
import lol.pyr.znpcsplus.api.skin.SkinDescriptor; import lol.pyr.znpcsplus.api.skin.SkinDescriptor;
import lol.pyr.znpcsplus.api.skin.SkinDescriptorFactory; import lol.pyr.znpcsplus.api.skin.SkinDescriptorFactory;
import lol.pyr.znpcsplus.skin.cache.SkinCache; import lol.pyr.znpcsplus.skin.cache.MojangSkinCache;
import lol.pyr.znpcsplus.skin.descriptor.FetchingDescriptor; import lol.pyr.znpcsplus.skin.descriptor.FetchingDescriptor;
import lol.pyr.znpcsplus.skin.descriptor.MirrorDescriptor; import lol.pyr.znpcsplus.skin.descriptor.MirrorDescriptor;
import lol.pyr.znpcsplus.skin.descriptor.PrefetchedDescriptor; import lol.pyr.znpcsplus.skin.descriptor.PrefetchedDescriptor;
public class SkinDescriptorFactoryImpl implements SkinDescriptorFactory { public class SkinDescriptorFactoryImpl implements SkinDescriptorFactory {
private final SkinCache skinCache; private final MojangSkinCache skinCache;
private final MirrorDescriptor mirrorDescriptor; private final MirrorDescriptor mirrorDescriptor;
public SkinDescriptorFactoryImpl(SkinCache skinCache) { public SkinDescriptorFactoryImpl(MojangSkinCache skinCache) {
this.skinCache = skinCache; this.skinCache = skinCache;
mirrorDescriptor = new MirrorDescriptor(skinCache); mirrorDescriptor = new MirrorDescriptor(skinCache);
} }

@ -2,7 +2,6 @@ package lol.pyr.znpcsplus.skin.cache;
import com.google.gson.JsonObject; import com.google.gson.JsonObject;
import com.google.gson.JsonParser; import com.google.gson.JsonParser;
import com.mojang.authlib.GameProfile;
import lol.pyr.znpcsplus.config.ConfigManager; import lol.pyr.znpcsplus.config.ConfigManager;
import lol.pyr.znpcsplus.reflection.Reflections; import lol.pyr.znpcsplus.reflection.Reflections;
import lol.pyr.znpcsplus.skin.Skin; import lol.pyr.znpcsplus.skin.Skin;
@ -18,12 +17,11 @@ import java.net.MalformedURLException;
import java.net.URL; import java.net.URL;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.util.Map; import java.util.Map;
import java.util.UUID;
import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
import java.util.logging.Logger; import java.util.logging.Logger;
public class SkinCache { public class MojangSkinCache {
private final static Logger logger = Logger.getLogger("ZNPCsPlus Skin Cache"); private final static Logger logger = Logger.getLogger("ZNPCsPlus Skin Cache");
private final ConfigManager configManager; private final ConfigManager configManager;
@ -31,7 +29,7 @@ public class SkinCache {
private final Map<String, Skin> cache = new ConcurrentHashMap<>(); private final Map<String, Skin> cache = new ConcurrentHashMap<>();
private final Map<String, CachedId> idCache = new ConcurrentHashMap<>(); private final Map<String, CachedId> idCache = new ConcurrentHashMap<>();
public SkinCache(ConfigManager configManager) { public MojangSkinCache(ConfigManager configManager) {
this.configManager = configManager; this.configManager = configManager;
} }
@ -71,10 +69,6 @@ public class SkinCache {
}); });
} }
public CompletableFuture<Skin> fetchByUUID(UUID uuid) {
return fetchByUUID(uuid.toString().replace("-", ""));
}
public boolean isNameFullyCached(String s) { public boolean isNameFullyCached(String s) {
String name = s.toLowerCase(); String name = s.toLowerCase();
if (!idCache.containsKey(name)) return false; if (!idCache.containsKey(name)) return false;
@ -129,9 +123,10 @@ public class SkinCache {
public Skin getFromPlayer(Player player) { public Skin getFromPlayer(Player player) {
try { try {
Object playerHandle = Reflections.GET_HANDLE_PLAYER_METHOD.get().invoke(player); Object playerHandle = Reflections.GET_PLAYER_HANDLE_METHOD.get().invoke(player);
GameProfile gameProfile = (GameProfile) Reflections.GET_PROFILE_METHOD.get().invoke(playerHandle, new Object[0]); Object gameProfile = Reflections.GET_PROFILE_METHOD.get().invoke(playerHandle);
return new Skin(gameProfile.getProperties()); Object propertyMap = Reflections.GET_PROPERTY_MAP_METHOD.get().invoke(gameProfile);
return new Skin(propertyMap);
} catch (IllegalAccessException | InvocationTargetException e) { } catch (IllegalAccessException | InvocationTargetException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }

@ -3,9 +3,9 @@ package lol.pyr.znpcsplus.skin.cache;
import org.bukkit.scheduler.BukkitRunnable; import org.bukkit.scheduler.BukkitRunnable;
public class SkinCacheCleanTask extends BukkitRunnable { public class SkinCacheCleanTask extends BukkitRunnable {
private final SkinCache skinCache; private final MojangSkinCache skinCache;
public SkinCacheCleanTask(SkinCache skinCache) { public SkinCacheCleanTask(MojangSkinCache skinCache) {
this.skinCache = skinCache; this.skinCache = skinCache;
} }

@ -3,17 +3,17 @@ package lol.pyr.znpcsplus.skin.descriptor;
import lol.pyr.znpcsplus.api.skin.SkinDescriptor; import lol.pyr.znpcsplus.api.skin.SkinDescriptor;
import lol.pyr.znpcsplus.skin.BaseSkinDescriptor; import lol.pyr.znpcsplus.skin.BaseSkinDescriptor;
import lol.pyr.znpcsplus.skin.Skin; import lol.pyr.znpcsplus.skin.Skin;
import lol.pyr.znpcsplus.skin.cache.SkinCache; import lol.pyr.znpcsplus.skin.cache.MojangSkinCache;
import lol.pyr.znpcsplus.util.PapiUtil; import lol.pyr.znpcsplus.util.PapiUtil;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletableFuture;
public class FetchingDescriptor implements BaseSkinDescriptor, SkinDescriptor { public class FetchingDescriptor implements BaseSkinDescriptor, SkinDescriptor {
private final SkinCache skinCache; private final MojangSkinCache skinCache;
private final String name; private final String name;
public FetchingDescriptor(SkinCache skinCache, String name) { public FetchingDescriptor(MojangSkinCache skinCache, String name) {
this.skinCache = skinCache; this.skinCache = skinCache;
this.name = name; this.name = name;
} }

@ -3,15 +3,15 @@ package lol.pyr.znpcsplus.skin.descriptor;
import lol.pyr.znpcsplus.api.skin.SkinDescriptor; import lol.pyr.znpcsplus.api.skin.SkinDescriptor;
import lol.pyr.znpcsplus.skin.BaseSkinDescriptor; import lol.pyr.znpcsplus.skin.BaseSkinDescriptor;
import lol.pyr.znpcsplus.skin.Skin; import lol.pyr.znpcsplus.skin.Skin;
import lol.pyr.znpcsplus.skin.cache.SkinCache; import lol.pyr.znpcsplus.skin.cache.MojangSkinCache;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletableFuture;
public class MirrorDescriptor implements BaseSkinDescriptor, SkinDescriptor { public class MirrorDescriptor implements BaseSkinDescriptor, SkinDescriptor {
private final SkinCache skinCache; private final MojangSkinCache skinCache;
public MirrorDescriptor(SkinCache skinCache) { public MirrorDescriptor(MojangSkinCache skinCache) {
this.skinCache = skinCache; this.skinCache = skinCache;
} }

@ -4,7 +4,7 @@ import com.github.retrooper.packetevents.protocol.player.TextureProperty;
import lol.pyr.znpcsplus.api.skin.SkinDescriptor; import lol.pyr.znpcsplus.api.skin.SkinDescriptor;
import lol.pyr.znpcsplus.skin.BaseSkinDescriptor; import lol.pyr.znpcsplus.skin.BaseSkinDescriptor;
import lol.pyr.znpcsplus.skin.Skin; import lol.pyr.znpcsplus.skin.Skin;
import lol.pyr.znpcsplus.skin.cache.SkinCache; import lol.pyr.znpcsplus.skin.cache.MojangSkinCache;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletableFuture;
@ -16,7 +16,7 @@ public class PrefetchedDescriptor implements BaseSkinDescriptor, SkinDescriptor
this.skin = skin; this.skin = skin;
} }
public static CompletableFuture<PrefetchedDescriptor> forPlayer(SkinCache cache, String name) { public static CompletableFuture<PrefetchedDescriptor> forPlayer(MojangSkinCache cache, String name) {
return CompletableFuture.supplyAsync(() -> new PrefetchedDescriptor(cache.fetchByName(name).join())); return CompletableFuture.supplyAsync(() -> new PrefetchedDescriptor(cache.fetchByName(name).join()));
} }