rename SkinCache to MojangSkinCache
This commit is contained in:
		
							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()));
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue