From 40ee15c2f6955d78fe5b8ff3a287598dd57ad772 Mon Sep 17 00:00:00 2001 From: Lexi Date: Tue, 12 Oct 2021 23:09:06 -0400 Subject: [PATCH] Fix missing Responses in TimedEffect --- pom.xml | 2 +- src/main/java/dev/qixils/crowdcontrol/TimedEffect.java | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) 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() {