From 54c29cff460b986c0c33a94843ed88ea3c70a3d7 Mon Sep 17 00:00:00 2001 From: XiaoMoMi Date: Thu, 5 Jun 2025 16:03:54 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BA=94=E7=94=A8merges?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../config/template/TemplateManagerImpl.java | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/TemplateManagerImpl.java b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/TemplateManagerImpl.java index 01c594e03..4e6e1a650 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/TemplateManagerImpl.java +++ b/core/src/main/java/net/momirealms/craftengine/core/plugin/config/template/TemplateManagerImpl.java @@ -107,13 +107,15 @@ public class TemplateManagerImpl implements TemplateManager { Map results = new LinkedHashMap<>(); for (Object processedTemplate : processedTemplates) { if (processedTemplate instanceof Map anotherMap) { - Map castedMap = MiscUtils.castToMap(anotherMap, false); - deepMergeMaps(results, castedMap); + deepMergeMaps(results, MiscUtils.castToMap(anotherMap, false)); } } if (processingResult.overrides() instanceof Map overrides) { results.putAll(MiscUtils.castToMap(overrides, false)); } + if (processingResult.merges() instanceof Map merges) { + deepMergeMaps(results, MiscUtils.castToMap(merges, false)); + } processCallBack.accept(results); } else if (firstTemplate instanceof List) { List results = new ArrayList<>(); @@ -124,10 +126,13 @@ public class TemplateManagerImpl implements TemplateManager { } } if (processingResult.overrides() instanceof List overrides) { - processCallBack.accept(overrides); - } else { - processCallBack.accept(results); + results.clear(); + results.addAll(overrides); } + if (processingResult.merges() instanceof List merges) { + results.addAll(merges); + } + processCallBack.accept(results); } else { Object overrides = processingResult.overrides(); if (overrides != null) {