diff --git a/backend/chat/chat-listeners/active-user-handler.js b/backend/chat/chat-listeners/active-user-handler.js index f3cb9d829..0a4529da1 100644 --- a/backend/chat/chat-listeners/active-user-handler.js +++ b/backend/chat/chat-listeners/active-user-handler.js @@ -190,7 +190,7 @@ exports.addActiveUser = async (chatUser, includeInOnline = false, forceActive = ...(chatUser.isVip ? ['vip'] : []) ], profilePicUrl: (await chatHelpers.getUserProfilePicUrl(chatUser.userId)), - disableViewerList: !!user.disableViewerList + disableViewerList: !!user?.disableViewerList }; if (user == null) { diff --git a/backend/effects/queues/effect-queue-runner.js b/backend/effects/queues/effect-queue-runner.js index 216c230f0..b4fc36f5d 100644 --- a/backend/effects/queues/effect-queue-runner.js +++ b/backend/effects/queues/effect-queue-runner.js @@ -51,12 +51,13 @@ class EffectQueue { }, this.interval * 1000); } else if (this.mode === "auto") { effectRunner.runEffects(runEffectsContext) - .then(() => { - resolve(this.runQueue()); - }) .catch(err => { logger.warn(`Error while processing effects for queue ${this.id}`, err); - resolve(this.runQueue()); + }) + .finally(() => { + setTimeout(() => { + resolve(this.runQueue()); + }, (this.interval || 0) * 1000); }); } else if (this.mode === "custom") { effectRunner.runEffects(runEffectsContext) @@ -66,16 +67,6 @@ class EffectQueue { setTimeout(() => { resolve(this.runQueue()); }, (duration || 0) * 1000); - } else if (this.mode === "sequential") { - effectRunner.runEffects(runEffectsContext) - .catch(err => { - logger.warn(`Error while processing effects for queue ${this.id}`, err); - }) - .finally(() => { - setTimeout(() => { - resolve(this.runQueue()); - }, (this.interval || 0) * 1000); - }); } else { resolve(); } diff --git a/gui/app/controllers/effect-queues.controller.js b/gui/app/controllers/effect-queues.controller.js index 2f59c963b..10996b9f6 100644 --- a/gui/app/controllers/effect-queues.controller.js +++ b/gui/app/controllers/effect-queues.controller.js @@ -37,9 +37,9 @@ } }, { - name: "INTERVAL", + name: "INTERVAL/DELAY", icon: "fa-clock", - cellTemplate: `{{(data.mode === 'interval' || data.mode === 'sequential') ? data.interval + 's' : 'n/a'}}`, + cellTemplate: `{{(data.mode === 'interval' || data.mode === 'auto') ? (data.interval || 0) + 's' : 'n/a'}}`, cellController: () => {} } ]; diff --git a/gui/app/directives/modals/effect-queues/addOrEditEffectQueueModal.js b/gui/app/directives/modals/effect-queues/addOrEditEffectQueueModal.js index 436c3228b..07909e6dd 100644 --- a/gui/app/directives/modals/effect-queues/addOrEditEffectQueueModal.js +++ b/gui/app/directives/modals/effect-queues/addOrEditEffectQueueModal.js @@ -47,8 +47,8 @@ -
- +
+
diff --git a/gui/app/services/effect-queues.service.js b/gui/app/services/effect-queues.service.js index cf7702476..35cd8f5ca 100644 --- a/gui/app/services/effect-queues.service.js +++ b/gui/app/services/effect-queues.service.js @@ -41,21 +41,15 @@ }, { id: "auto", - display: "Delay", - description: "Requires a 'Delay Effect' to be present to have any effect.", - iconClass: "fa-hourglass-half" + display: "Sequential", + description: "Runs effect list in the queue sequentially. Priority items will be added before non-priority. Optional delay defaults to 0s.", + iconClass: "fa-arrow-down-1-9" }, { id: "interval", display: "Interval", description: "Runs effect lists on a set interval.", iconClass: "fa-stopwatch" - }, - { - id: "sequential", - display: "Sequential", - description: "Runs effects in the list sequentially. Priority items will be added before non-priority. Optional delay defaults to 0s.", - iconClass: "fa-arrow-down-1-9" } ];