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() {