From 00a200ad006c3c9e58bdcb4f64bbea3e0fad9971 Mon Sep 17 00:00:00 2001 From: Oliver Date: Wed, 15 Jan 2025 18:32:55 +0100 Subject: [PATCH] more skin queue work --- .../oliver/fancynpcs/skins/MineSkinQueue.java | 34 +++++++++++-------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/src/main/java/de/oliver/fancynpcs/skins/MineSkinQueue.java b/src/main/java/de/oliver/fancynpcs/skins/MineSkinQueue.java index ac531a79..7e564e65 100644 --- a/src/main/java/de/oliver/fancynpcs/skins/MineSkinQueue.java +++ b/src/main/java/de/oliver/fancynpcs/skins/MineSkinQueue.java @@ -1,12 +1,15 @@ package de.oliver.fancynpcs.skins; import com.google.common.util.concurrent.ThreadFactoryBuilder; +import org.mineskin.data.SkinInfo; +import org.mineskin.request.GenerateRequest; import java.util.LinkedList; import java.util.Queue; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; +import java.util.function.Consumer; public class MineSkinQueue { @@ -14,7 +17,9 @@ public class MineSkinQueue { .setNameFormat("MineSkinQueue") .build()); private static MineSkinQueue INSTANCE; - private final Queue queue; + private final Queue queue; + + private long nextRequestTime = System.currentTimeMillis(); private MineSkinQueue() { this.queue = new LinkedList<>(); @@ -30,28 +35,29 @@ public static MineSkinQueue get() { return INSTANCE; } - public void add(Runnable runnable) { - this.queue.add(runnable); - } - private void run() { EXECUTOR.scheduleAtFixedRate(this::poll, 5, 60, TimeUnit.SECONDS); } private void poll() { - System.out.println("Polling queue"); if (this.queue.isEmpty()) { return; } - System.out.println("Running runnables"); - int counter = 0; - while (!this.queue.isEmpty() && counter < 9) { - Runnable runnable = this.queue.poll(); - if (runnable != null) { - runnable.run(); - } - counter++; + if (System.currentTimeMillis() < this.nextRequestTime) { + return; } + + SkinRequest req = this.queue.poll(); + + + } + + public void add(SkinRequest req) { + this.queue.add(req); + } + + + public record SkinRequest(GenerateRequest request, Consumer finish) { } }