From eca6ea722bff84b7d315c0620b1c46ffb2212cb0 Mon Sep 17 00:00:00 2001 From: Henning Berge Date: Wed, 23 Nov 2022 10:46:20 +0100 Subject: [PATCH] fix item tag groups linting errors and confusion --- src/engine/config/config-handler.ts | 30 +++++++-------------- src/plugins/commands/groups-debug.plugin.ts | 4 +-- 2 files changed, 12 insertions(+), 22 deletions(-) diff --git a/src/engine/config/config-handler.ts b/src/engine/config/config-handler.ts index 41118ef8d..0f798af10 100644 --- a/src/engine/config/config-handler.ts +++ b/src/engine/config/config-handler.ts @@ -73,24 +73,14 @@ export async function loadGameConfigurations(): Promise { /** * find all items in all select groups - * @param groupKey string or array of string of which to find items connected with + * @param groupKeys array of string of which to find items connected with * @return itemsKeys array of itemkeys in all select groups */ -export const findItemTagsInGroup = (groupKey: string | string[]): string[] => { - if(!groupKey) { - return []; - } - - if(Array.isArray(groupKey)) { - const collection: Record = {} - groupKey.forEach((currentGroup) => { - const items = findItemTagsInGroup(currentGroup); - items.forEach((item) => collection[item] = true) - }) - return Object.keys(collection) - } - - return Object.keys(itemGroupMap[groupKey] || {}) +export const findItemTagsInGroups = (groupKeys: string[]): string[] => { + return Object.keys(groupKeys.reduce>((all, groupKey)=> { + const items = itemGroupMap[groupKey] || {}; + return { ...all, ...items }; + }, {})); } @@ -103,7 +93,7 @@ export const findItemTagsInGroupFilter = (groupKeys: string[]): string[] => { if(!groupKeys || groupKeys.length === 0) { return []; } - let collection: Record | undefined = undefined + let collection: Record | undefined = undefined; groupKeys.forEach((groupKey) => { if(!collection) { collection = { ...(itemGroupMap[groupKey] || {}) }; @@ -115,10 +105,10 @@ export const findItemTagsInGroupFilter = (groupKeys: string[]): string[] => { if(!(existingItemKey in current)) { delete collection[existingItemKey]; } - }) - }) + }); + }); - return Object.keys(collection) + return Object.keys(collection); } diff --git a/src/plugins/commands/groups-debug.plugin.ts b/src/plugins/commands/groups-debug.plugin.ts index 141364f67..5988c4ea3 100644 --- a/src/plugins/commands/groups-debug.plugin.ts +++ b/src/plugins/commands/groups-debug.plugin.ts @@ -1,5 +1,5 @@ import { commandActionHandler } from '@engine/action'; -import { findItemTagsInGroup, findItemTagsInGroupFilter } from '@engine/config/config-handler'; +import { findItemTagsInGroups, findItemTagsInGroupFilter } from '@engine/config/config-handler'; const selectGroups: commandActionHandler = ({ player, args, isConsole }) => { const groups: string | number = args.groupkeys; @@ -8,7 +8,7 @@ const selectGroups: commandActionHandler = ({ player, args, isConsole }) => { return; } player.sendLogMessage('results:', isConsole); - findItemTagsInGroup(groups.split(',')).forEach((itemName) => { + findItemTagsInGroups(groups.split(',')).forEach((itemName) => { player.sendLogMessage(itemName, isConsole); }); return;