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