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.SkinUtils;
|
||||||
import de.oliver.fancynpcs.skins.cache.SkinCacheFile;
|
import de.oliver.fancynpcs.skins.cache.SkinCacheFile;
|
||||||
import de.oliver.fancynpcs.skins.cache.SkinCacheMemory;
|
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.tests.PlaceholderApiEnv;
|
||||||
import de.oliver.fancynpcs.tracker.TurnToPlayerTracker;
|
import de.oliver.fancynpcs.tracker.TurnToPlayerTracker;
|
||||||
import de.oliver.fancynpcs.tracker.VisibilityTracker;
|
import de.oliver.fancynpcs.tracker.VisibilityTracker;
|
||||||
@@ -209,7 +211,7 @@ public class FancyNpcs extends JavaPlugin implements FancyNpcsPlugin {
|
|||||||
actionManager.registerAction(new NeedPermissionAction());
|
actionManager.registerAction(new NeedPermissionAction());
|
||||||
actionManager.registerAction(new PlaySoundAction());
|
actionManager.registerAction(new PlaySoundAction());
|
||||||
|
|
||||||
skinManager = new SkinManagerImpl(new SkinCacheFile(), new SkinCacheMemory());
|
skinManager = new SkinManagerImpl(new SkinCacheFile(), new SkinCacheMemory(), MojangQueue.get(), MineSkinQueue.get());
|
||||||
OldSkinCacheMigrator.migrate();
|
OldSkinCacheMigrator.migrate();
|
||||||
|
|
||||||
textConfig = new TextConfig("#E33239", "#AD1D23", "#81E366", "#E3CA66", "#E36666", "");
|
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 fileCache;
|
||||||
private final SkinCache memCache;
|
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.fileCache = fileCache;
|
||||||
this.memCache = memCache;
|
this.memCache = memCache;
|
||||||
|
this.mojangQueue = mojangQueue;
|
||||||
|
this.mineSkinQueue = mineSkinQueue;
|
||||||
|
|
||||||
File skinsDir = new File(SKINS_DIRECTORY);
|
File skinsDir = new File(SKINS_DIRECTORY);
|
||||||
if (!skinsDir.exists()) {
|
if (!skinsDir.exists()) {
|
||||||
@@ -82,11 +86,11 @@ public class SkinManagerImpl implements SkinManager, Listener {
|
|||||||
return cached;
|
return cached;
|
||||||
}
|
}
|
||||||
|
|
||||||
MojangQueue.get().add(new MojangQueue.SkinRequest(uuid.toString(), variant));
|
mojangQueue.add(new MojangQueue.SkinRequest(uuid.toString(), variant));
|
||||||
|
|
||||||
// GenerateRequest genReq = GenerateRequest.user(uuid);
|
// GenerateRequest genReq = GenerateRequest.user(uuid);
|
||||||
// genReq.variant(Variant.valueOf(variant.name()));
|
// 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);
|
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 + "')");
|
throw new SkinLoadException(SkinLoadException.Reason.INVALID_URL, "(URL = '" + url + "')");
|
||||||
}
|
}
|
||||||
genReq.variant(Variant.valueOf(variant.name()));
|
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);
|
return new SkinData(url, variant);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -138,7 +142,7 @@ public class SkinManagerImpl implements SkinManager, Listener {
|
|||||||
|
|
||||||
GenerateRequest genReq = GenerateRequest.upload(file);
|
GenerateRequest genReq = GenerateRequest.upload(file);
|
||||||
genReq.variant(Variant.valueOf(variant.name()));
|
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);
|
return new SkinData(filePath, variant);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package de.oliver.fancynpcs.skins.mineskin;
|
|||||||
import de.oliver.fancynpcs.FancyNpcs;
|
import de.oliver.fancynpcs.FancyNpcs;
|
||||||
import de.oliver.fancynpcs.api.skins.SkinData;
|
import de.oliver.fancynpcs.api.skins.SkinData;
|
||||||
import de.oliver.fancynpcs.api.skins.SkinGeneratedEvent;
|
import de.oliver.fancynpcs.api.skins.SkinGeneratedEvent;
|
||||||
|
import de.oliver.fancynpcs.skins.SkinGenerationQueue;
|
||||||
import de.oliver.fancynpcs.skins.SkinManagerImpl;
|
import de.oliver.fancynpcs.skins.SkinManagerImpl;
|
||||||
import org.mineskin.data.SkinInfo;
|
import org.mineskin.data.SkinInfo;
|
||||||
import org.mineskin.data.Variant;
|
import org.mineskin.data.Variant;
|
||||||
@@ -13,7 +14,7 @@ import java.util.Queue;
|
|||||||
import java.util.concurrent.ScheduledFuture;
|
import java.util.concurrent.ScheduledFuture;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
public class MineSkinQueue {
|
public class MineSkinQueue implements SkinGenerationQueue<MineSkinQueue.SkinRequest> {
|
||||||
private static MineSkinQueue INSTANCE;
|
private static MineSkinQueue INSTANCE;
|
||||||
|
|
||||||
private final MineSkinAPI api;
|
private final MineSkinAPI api;
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package de.oliver.fancynpcs.skins.mojang;
|
|||||||
import de.oliver.fancynpcs.FancyNpcs;
|
import de.oliver.fancynpcs.FancyNpcs;
|
||||||
import de.oliver.fancynpcs.api.skins.SkinData;
|
import de.oliver.fancynpcs.api.skins.SkinData;
|
||||||
import de.oliver.fancynpcs.api.skins.SkinGeneratedEvent;
|
import de.oliver.fancynpcs.api.skins.SkinGeneratedEvent;
|
||||||
|
import de.oliver.fancynpcs.skins.SkinGenerationQueue;
|
||||||
import de.oliver.fancynpcs.skins.SkinManagerImpl;
|
import de.oliver.fancynpcs.skins.SkinManagerImpl;
|
||||||
import de.oliver.fancynpcs.skins.mineskin.RatelimitException;
|
import de.oliver.fancynpcs.skins.mineskin.RatelimitException;
|
||||||
|
|
||||||
@@ -11,7 +12,7 @@ import java.util.Queue;
|
|||||||
import java.util.concurrent.ScheduledFuture;
|
import java.util.concurrent.ScheduledFuture;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
public class MojangQueue {
|
public class MojangQueue implements SkinGenerationQueue<MojangQueue.SkinRequest> {
|
||||||
|
|
||||||
private static MojangQueue INSTANCE;
|
private static MojangQueue INSTANCE;
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,8 @@ import de.oliver.fancynpcs.FancyNpcs;
|
|||||||
import de.oliver.fancynpcs.api.skins.SkinData;
|
import de.oliver.fancynpcs.api.skins.SkinData;
|
||||||
import de.oliver.fancynpcs.skins.SkinManagerImpl;
|
import de.oliver.fancynpcs.skins.SkinManagerImpl;
|
||||||
import de.oliver.fancynpcs.skins.cache.SkinCacheMemory;
|
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.FPBeforeEach;
|
||||||
import de.oliver.plugintests.annotations.FPTest;
|
import de.oliver.plugintests.annotations.FPTest;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
@@ -19,7 +21,7 @@ public class SkinManagerTest {
|
|||||||
@FPBeforeEach
|
@FPBeforeEach
|
||||||
public void setUp(Player player) {
|
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")
|
@FPTest(name = "Test fetch skin by UUID")
|
||||||
|
|||||||
Reference in New Issue
Block a user