mirror of
https://github.com/FancyInnovations/FancyPlugins.git
synced 2025-12-06 07:43:36 +00:00
fn: Add interface for skin generation queues
This commit is contained in:
@@ -35,6 +35,8 @@ import de.oliver.fancynpcs.skins.SkinManagerImpl;
|
||||
import de.oliver.fancynpcs.skins.SkinUtils;
|
||||
import de.oliver.fancynpcs.skins.cache.SkinCacheFile;
|
||||
import de.oliver.fancynpcs.skins.cache.SkinCacheMemory;
|
||||
import de.oliver.fancynpcs.skins.mineskin.MineSkinQueue;
|
||||
import de.oliver.fancynpcs.skins.mojang.MojangQueue;
|
||||
import de.oliver.fancynpcs.tests.PlaceholderApiEnv;
|
||||
import de.oliver.fancynpcs.tracker.TurnToPlayerTracker;
|
||||
import de.oliver.fancynpcs.tracker.VisibilityTracker;
|
||||
@@ -209,7 +211,7 @@ public class FancyNpcs extends JavaPlugin implements FancyNpcsPlugin {
|
||||
actionManager.registerAction(new NeedPermissionAction());
|
||||
actionManager.registerAction(new PlaySoundAction());
|
||||
|
||||
skinManager = new SkinManagerImpl(new SkinCacheFile(), new SkinCacheMemory());
|
||||
skinManager = new SkinManagerImpl(new SkinCacheFile(), new SkinCacheMemory(), MojangQueue.get(), MineSkinQueue.get());
|
||||
OldSkinCacheMigrator.migrate();
|
||||
|
||||
textConfig = new TextConfig("#E33239", "#AD1D23", "#81E366", "#E3CA66", "#E36666", "");
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
package de.oliver.fancynpcs.skins;
|
||||
|
||||
import java.util.concurrent.ScheduledFuture;
|
||||
|
||||
public interface SkinGenerationQueue<R> {
|
||||
|
||||
void run();
|
||||
|
||||
void add(R request);
|
||||
|
||||
ScheduledFuture<?> getScheduler();
|
||||
}
|
||||
@@ -37,10 +37,14 @@ public class SkinManagerImpl implements SkinManager, Listener {
|
||||
|
||||
private final SkinCache fileCache;
|
||||
private final SkinCache memCache;
|
||||
private final SkinGenerationQueue<MojangQueue.SkinRequest> mojangQueue;
|
||||
private final SkinGenerationQueue<MineSkinQueue.SkinRequest> mineSkinQueue;
|
||||
|
||||
public SkinManagerImpl(SkinCache fileCache, SkinCache memCache) {
|
||||
public SkinManagerImpl(SkinCache fileCache, SkinCache memCache, SkinGenerationQueue<MojangQueue.SkinRequest> mojangQueue, SkinGenerationQueue<MineSkinQueue.SkinRequest> mineSkinQueue) {
|
||||
this.fileCache = fileCache;
|
||||
this.memCache = memCache;
|
||||
this.mojangQueue = mojangQueue;
|
||||
this.mineSkinQueue = mineSkinQueue;
|
||||
|
||||
File skinsDir = new File(SKINS_DIRECTORY);
|
||||
if (!skinsDir.exists()) {
|
||||
@@ -82,11 +86,11 @@ public class SkinManagerImpl implements SkinManager, Listener {
|
||||
return cached;
|
||||
}
|
||||
|
||||
MojangQueue.get().add(new MojangQueue.SkinRequest(uuid.toString(), variant));
|
||||
mojangQueue.add(new MojangQueue.SkinRequest(uuid.toString(), variant));
|
||||
|
||||
// GenerateRequest genReq = GenerateRequest.user(uuid);
|
||||
// genReq.variant(Variant.valueOf(variant.name()));
|
||||
// MineSkinQueue.get().add(new MineSkinQueue.SkinRequest(uuid.toString(), genReq));
|
||||
// mineSkinQueue.add(new MineSkinQueue.SkinRequest(uuid.toString(), genReq));
|
||||
return new SkinData(uuid.toString(), variant);
|
||||
}
|
||||
|
||||
@@ -120,7 +124,7 @@ public class SkinManagerImpl implements SkinManager, Listener {
|
||||
throw new SkinLoadException(SkinLoadException.Reason.INVALID_URL, "(URL = '" + url + "')");
|
||||
}
|
||||
genReq.variant(Variant.valueOf(variant.name()));
|
||||
MineSkinQueue.get().add(new MineSkinQueue.SkinRequest(url, genReq));
|
||||
mineSkinQueue.add(new MineSkinQueue.SkinRequest(url, genReq));
|
||||
return new SkinData(url, variant);
|
||||
}
|
||||
|
||||
@@ -138,7 +142,7 @@ public class SkinManagerImpl implements SkinManager, Listener {
|
||||
|
||||
GenerateRequest genReq = GenerateRequest.upload(file);
|
||||
genReq.variant(Variant.valueOf(variant.name()));
|
||||
MineSkinQueue.get().add(new MineSkinQueue.SkinRequest(filePath, genReq));
|
||||
mineSkinQueue.add(new MineSkinQueue.SkinRequest(filePath, genReq));
|
||||
return new SkinData(filePath, variant);
|
||||
}
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@ package de.oliver.fancynpcs.skins.mineskin;
|
||||
import de.oliver.fancynpcs.FancyNpcs;
|
||||
import de.oliver.fancynpcs.api.skins.SkinData;
|
||||
import de.oliver.fancynpcs.api.skins.SkinGeneratedEvent;
|
||||
import de.oliver.fancynpcs.skins.SkinGenerationQueue;
|
||||
import de.oliver.fancynpcs.skins.SkinManagerImpl;
|
||||
import org.mineskin.data.SkinInfo;
|
||||
import org.mineskin.data.Variant;
|
||||
@@ -13,7 +14,7 @@ import java.util.Queue;
|
||||
import java.util.concurrent.ScheduledFuture;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
public class MineSkinQueue {
|
||||
public class MineSkinQueue implements SkinGenerationQueue<MineSkinQueue.SkinRequest> {
|
||||
private static MineSkinQueue INSTANCE;
|
||||
|
||||
private final MineSkinAPI api;
|
||||
|
||||
@@ -3,6 +3,7 @@ package de.oliver.fancynpcs.skins.mojang;
|
||||
import de.oliver.fancynpcs.FancyNpcs;
|
||||
import de.oliver.fancynpcs.api.skins.SkinData;
|
||||
import de.oliver.fancynpcs.api.skins.SkinGeneratedEvent;
|
||||
import de.oliver.fancynpcs.skins.SkinGenerationQueue;
|
||||
import de.oliver.fancynpcs.skins.SkinManagerImpl;
|
||||
import de.oliver.fancynpcs.skins.mineskin.RatelimitException;
|
||||
|
||||
@@ -11,7 +12,7 @@ import java.util.Queue;
|
||||
import java.util.concurrent.ScheduledFuture;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
public class MojangQueue {
|
||||
public class MojangQueue implements SkinGenerationQueue<MojangQueue.SkinRequest> {
|
||||
|
||||
private static MojangQueue INSTANCE;
|
||||
|
||||
|
||||
@@ -4,6 +4,8 @@ import de.oliver.fancynpcs.FancyNpcs;
|
||||
import de.oliver.fancynpcs.api.skins.SkinData;
|
||||
import de.oliver.fancynpcs.skins.SkinManagerImpl;
|
||||
import de.oliver.fancynpcs.skins.cache.SkinCacheMemory;
|
||||
import de.oliver.fancynpcs.skins.mineskin.MineSkinQueue;
|
||||
import de.oliver.fancynpcs.skins.mojang.MojangQueue;
|
||||
import de.oliver.plugintests.annotations.FPBeforeEach;
|
||||
import de.oliver.plugintests.annotations.FPTest;
|
||||
import org.bukkit.entity.Player;
|
||||
@@ -19,7 +21,7 @@ public class SkinManagerTest {
|
||||
@FPBeforeEach
|
||||
public void setUp(Player player) {
|
||||
|
||||
skinFetcher = new SkinManagerImpl(new SkinCacheMemory(), new SkinCacheMemory());
|
||||
skinFetcher = new SkinManagerImpl(new SkinCacheMemory(), new SkinCacheMemory(), MojangQueue.get(), MineSkinQueue.get());
|
||||
}
|
||||
|
||||
@FPTest(name = "Test fetch skin by UUID")
|
||||
|
||||
Reference in New Issue
Block a user