diff --git a/src/backend/effects/queues/effect-queue-manager.js b/src/backend/effects/queues/effect-queue-manager.js index 3bb2fa8e9..f596da276 100644 --- a/src/backend/effects/queues/effect-queue-manager.js +++ b/src/backend/effects/queues/effect-queue-manager.js @@ -101,7 +101,7 @@ class EffectQueueManager extends JsonDbManager { } item.queue = effectQueueRunner.getQueue(itemId); - + item.length = item.queue.length; return item; } diff --git a/src/backend/variables/builtin/utility/get-effect-queue-length.ts b/src/backend/variables/builtin/utility/get-effect-queue-length.ts new file mode 100644 index 000000000..432c8e383 --- /dev/null +++ b/src/backend/variables/builtin/utility/get-effect-queue-length.ts @@ -0,0 +1,23 @@ +import { ReplaceVariable } from "../../../../types/variables"; +import { OutputDataType, VariableCategory } from "../../../../shared/variable-constants"; + +import effectQueueManager from "../../../effects/queues/effect-queue-manager"; + +const model : ReplaceVariable = { + definition: { + handle: "effectQueueLength", + usage: "effectQueueLength[queueName]", + description: "Returns the length of an effect queue. Useful for showing queue length in a command response.", + categories: [VariableCategory.ADVANCED], + possibleDataOutput: [OutputDataType.TEXT] + }, + evaluator: async (_trigger, text = "") => { + const selectedQueue = effectQueueManager.getAllItems().find((queue) => queue.name === text); + if (selectedQueue) { + return selectedQueue.length.toString(); + } + return "Unknown"; + } +}; + +export default model; \ No newline at end of file diff --git a/src/backend/variables/builtin/utility/index.ts b/src/backend/variables/builtin/utility/index.ts index af7bf5536..2894fb083 100644 --- a/src/backend/variables/builtin/utility/index.ts +++ b/src/backend/variables/builtin/utility/index.ts @@ -9,6 +9,7 @@ import fileExists from './file-exists'; import fileLineCount from './file-line-count'; import fileRead from './file-read'; import filesInDirectory from './files-in-directory'; +import getEffectQueueLength from "./get-effect-queue-length" import loopCount from './loop-count'; import loopItem from './loop-item'; import quickstore from './quick-store'; @@ -27,6 +28,7 @@ export default [ fileLineCount, fileRead, filesInDirectory, + getEffectQueueLength, loopCount, loopItem, quickstore,