diff --git a/pom.xml b/pom.xml index 3751fb8..17b66f9 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ dev.qixils.crowdcontrol java-crowd-control - 2.1.0 + 2.1.1 java-crowd-control Library for interacting with a crowdcontrol.live server diff --git a/src/main/java/dev/qixils/crowdcontrol/TimedEffect.java b/src/main/java/dev/qixils/crowdcontrol/TimedEffect.java index 1a89188..eccd214 100644 --- a/src/main/java/dev/qixils/crowdcontrol/TimedEffect.java +++ b/src/main/java/dev/qixils/crowdcontrol/TimedEffect.java @@ -90,15 +90,16 @@ public void queue() throws IllegalStateException { if (startedAt != -1) throw new IllegalStateException("Effect has already started"); - if (!ACTIVE_EFFECTS.containsKey(effect)) { + TimedEffect activeEffect = ACTIVE_EFFECTS.get(effect); + + if (activeEffect == null || (activeEffect.isComplete() && (!QUEUED_EFFECTS.containsKey(effect) || QUEUED_EFFECTS.get(effect).isEmpty()))) { start(); return; } Queue queue = QUEUED_EFFECTS.computeIfAbsent(effect, $ -> new ConcurrentLinkedQueue<>()); - if (!queue.isEmpty()) - cc.dispatchResponse(Response.builder().id(id).type(Response.ResultType.QUEUE).build()); queue.add(this); + cc.dispatchResponse(Response.builder().id(id).type(Response.ResultType.QUEUE).build()); } private void start() {