add skin descriptor factory to the api
This commit is contained in:
		
							parent
							
								
									d91d86ca88
								
							
						
					
					
						commit
						6b75423f9c
					
				
					 5 changed files with 60 additions and 2 deletions
				
			
		| 
						 | 
				
			
			@ -3,9 +3,11 @@ package lol.pyr.znpcsplus.api;
 | 
			
		|||
import lol.pyr.znpcsplus.api.entity.EntityPropertyRegistry;
 | 
			
		||||
import lol.pyr.znpcsplus.api.npc.NpcRegistry;
 | 
			
		||||
import lol.pyr.znpcsplus.api.npc.NpcTypeRegistry;
 | 
			
		||||
import lol.pyr.znpcsplus.api.skin.SkinDescriptorFactory;
 | 
			
		||||
 | 
			
		||||
public interface NpcApi {
 | 
			
		||||
    NpcRegistry getNpcRegistry();
 | 
			
		||||
    NpcTypeRegistry getNpcTypeRegistry();
 | 
			
		||||
    EntityPropertyRegistry getPropertyRegistry();
 | 
			
		||||
    SkinDescriptorFactory getSkinDescriptorFactory();
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,8 @@
 | 
			
		|||
package lol.pyr.znpcsplus.api.skin;
 | 
			
		||||
 | 
			
		||||
public interface SkinDescriptorFactory {
 | 
			
		||||
    SkinDescriptor createMirrorDescriptor();
 | 
			
		||||
    SkinDescriptor createRefreshingDescriptor(String playerName);
 | 
			
		||||
    SkinDescriptor createStaticDescriptor(String playerName);
 | 
			
		||||
    SkinDescriptor createStaticDescriptor(String texture, String signature);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -175,7 +175,7 @@ public class ZNpcsPlus extends JavaPlugin {
 | 
			
		|||
        shutdownTasks.add(adventure::close);
 | 
			
		||||
        if (configManager.getConfig().autoSaveEnabled()) shutdownTasks.add(npcRegistry::save);
 | 
			
		||||
 | 
			
		||||
        NpcApiProvider.register(this, new ZNpcsPlusApi(npcRegistry, typeRegistry, propertyRegistry));
 | 
			
		||||
        NpcApiProvider.register(this, new ZNpcsPlusApi(npcRegistry, typeRegistry, propertyRegistry, skinCache));
 | 
			
		||||
        enabled = true;
 | 
			
		||||
        log(ChatColor.WHITE + " * Loading complete! (" + (System.currentTimeMillis() - before) + "ms)");
 | 
			
		||||
        log("");
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,19 +4,24 @@ import lol.pyr.znpcsplus.api.NpcApi;
 | 
			
		|||
import lol.pyr.znpcsplus.api.entity.EntityPropertyRegistry;
 | 
			
		||||
import lol.pyr.znpcsplus.api.npc.NpcRegistry;
 | 
			
		||||
import lol.pyr.znpcsplus.api.npc.NpcTypeRegistry;
 | 
			
		||||
import lol.pyr.znpcsplus.api.skin.SkinDescriptorFactory;
 | 
			
		||||
import lol.pyr.znpcsplus.entity.EntityPropertyRegistryImpl;
 | 
			
		||||
import lol.pyr.znpcsplus.npc.NpcRegistryImpl;
 | 
			
		||||
import lol.pyr.znpcsplus.npc.NpcTypeRegistryImpl;
 | 
			
		||||
import lol.pyr.znpcsplus.skin.SkinDescriptorFactoryImpl;
 | 
			
		||||
import lol.pyr.znpcsplus.skin.cache.SkinCache;
 | 
			
		||||
 | 
			
		||||
public class ZNpcsPlusApi implements NpcApi {
 | 
			
		||||
    private final NpcRegistryImpl npcRegistry;
 | 
			
		||||
    private final NpcTypeRegistryImpl typeRegistry;
 | 
			
		||||
    private final EntityPropertyRegistryImpl propertyRegistry;
 | 
			
		||||
    private final SkinDescriptorFactoryImpl skinDescriptorFactory;
 | 
			
		||||
 | 
			
		||||
    public ZNpcsPlusApi(NpcRegistryImpl npcRegistry, NpcTypeRegistryImpl typeRegistry, EntityPropertyRegistryImpl propertyRegistry) {
 | 
			
		||||
    public ZNpcsPlusApi(NpcRegistryImpl npcRegistry, NpcTypeRegistryImpl typeRegistry, EntityPropertyRegistryImpl propertyRegistry, SkinCache skinCache) {
 | 
			
		||||
        this.npcRegistry = npcRegistry;
 | 
			
		||||
        this.typeRegistry = typeRegistry;
 | 
			
		||||
        this.propertyRegistry = propertyRegistry;
 | 
			
		||||
        this.skinDescriptorFactory = new SkinDescriptorFactoryImpl(skinCache);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
| 
						 | 
				
			
			@ -33,4 +38,9 @@ public class ZNpcsPlusApi implements NpcApi {
 | 
			
		|||
    public EntityPropertyRegistry getPropertyRegistry() {
 | 
			
		||||
        return propertyRegistry;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public SkinDescriptorFactory getSkinDescriptorFactory() {
 | 
			
		||||
        return skinDescriptorFactory;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,38 @@
 | 
			
		|||
package lol.pyr.znpcsplus.skin;
 | 
			
		||||
 | 
			
		||||
import lol.pyr.znpcsplus.api.skin.SkinDescriptor;
 | 
			
		||||
import lol.pyr.znpcsplus.api.skin.SkinDescriptorFactory;
 | 
			
		||||
import lol.pyr.znpcsplus.skin.cache.SkinCache;
 | 
			
		||||
import lol.pyr.znpcsplus.skin.descriptor.FetchingDescriptor;
 | 
			
		||||
import lol.pyr.znpcsplus.skin.descriptor.MirrorDescriptor;
 | 
			
		||||
import lol.pyr.znpcsplus.skin.descriptor.PrefetchedDescriptor;
 | 
			
		||||
 | 
			
		||||
public class SkinDescriptorFactoryImpl implements SkinDescriptorFactory {
 | 
			
		||||
    private final SkinCache skinCache;
 | 
			
		||||
    private final MirrorDescriptor mirrorDescriptor;
 | 
			
		||||
 | 
			
		||||
    public SkinDescriptorFactoryImpl(SkinCache skinCache) {
 | 
			
		||||
        this.skinCache = skinCache;
 | 
			
		||||
        mirrorDescriptor = new MirrorDescriptor(skinCache);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public SkinDescriptor createMirrorDescriptor() {
 | 
			
		||||
        return mirrorDescriptor;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public SkinDescriptor createRefreshingDescriptor(String playerName) {
 | 
			
		||||
        return new FetchingDescriptor(skinCache, playerName);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public SkinDescriptor createStaticDescriptor(String playerName) {
 | 
			
		||||
        return PrefetchedDescriptor.forPlayer(skinCache, playerName).join();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public SkinDescriptor createStaticDescriptor(String texture, String signature) {
 | 
			
		||||
        return new PrefetchedDescriptor(new Skin(texture, signature));
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
		Reference in a new issue