From 32611fd1d6dec7ea908310c1db6b0704ffbd6a3b Mon Sep 17 00:00:00 2001 From: YoyoNow Date: Thu, 27 Aug 2026 11:01:36 +0200 Subject: [PATCH] Fix GameModeConfig --- .../src/de/steamwar/sql/GameModeConfig.java | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/CommonCore/SQL/src/de/steamwar/sql/GameModeConfig.java b/CommonCore/SQL/src/de/steamwar/sql/GameModeConfig.java index 5de77887..454f768a 100644 --- a/CommonCore/SQL/src/de/steamwar/sql/GameModeConfig.java +++ b/CommonCore/SQL/src/de/steamwar/sql/GameModeConfig.java @@ -30,6 +30,7 @@ import java.time.LocalDateTime; import java.util.*; import java.util.function.Function; import java.util.stream.Collectors; +import java.util.stream.Stream; @ToString public final class GameModeConfig { @@ -710,13 +711,26 @@ public final class GameModeConfig { Map, Integer> Limited = new HashMap<>(); for (Map entry : loader.getMapList("Limited")) { int amount = (Integer) entry.get("Amount"); - Set materials = new HashSet<>((List) entry.get("Materials")); + Set materials = Stream.of((List) entry.get("Materials")) + .filter(Objects::nonNull) + .flatMap(List::stream) + .map(String::toUpperCase) + .map(material -> { + try { + return loader.materialMapper.apply(material); + } catch (Exception e) { + return null; + } + }) + .filter(Objects::nonNull) + .collect(Collectors.toSet()); + if (amount == 0) { materials.forEach(material -> { - Limited.put(Collections.singleton(loader.materialMapper.apply(material.toUpperCase())), 0); + Limited.put(Collections.singleton(material), 0); }); } else { - Limited.put(Collections.unmodifiableSet(materials.stream().map(String::toUpperCase).map(loader.materialMapper).collect(Collectors.toSet())), amount); + Limited.put(materials, amount); } } SQLWrapper.impl.getMaterialWithGreaterBlastResistance(MaxBlastResistance).forEach(material -> {