From 8662f3b47a51234ef877056435fccb037c84778d Mon Sep 17 00:00:00 2001 From: Julian Krings Date: Thu, 21 Aug 2025 13:50:21 +0200 Subject: [PATCH] update ItemsAdder namespaces on load data --- .../core/link/data/ItemAdderDataProvider.java | 38 ++++++++++--------- .../iris/core/link/data/NexoDataProvider.java | 8 ---- .../iris/core/service/ExternalDataSVC.java | 4 +- 3 files changed, 23 insertions(+), 27 deletions(-) diff --git a/core/src/main/java/com/volmit/iris/core/link/data/ItemAdderDataProvider.java b/core/src/main/java/com/volmit/iris/core/link/data/ItemAdderDataProvider.java index d80330069..5327578bd 100644 --- a/core/src/main/java/com/volmit/iris/core/link/data/ItemAdderDataProvider.java +++ b/core/src/main/java/com/volmit/iris/core/link/data/ItemAdderDataProvider.java @@ -7,11 +7,12 @@ import com.volmit.iris.engine.framework.Engine; import com.volmit.iris.util.collection.KMap; import com.volmit.iris.util.collection.KSet; import com.volmit.iris.util.data.IrisCustomData; -import com.volmit.iris.util.scheduling.J; import dev.lone.itemsadder.api.CustomBlock; import dev.lone.itemsadder.api.CustomStack; +import dev.lone.itemsadder.api.Events.ItemsAdderLoadDataEvent; import org.bukkit.block.Block; import org.bukkit.block.data.BlockData; +import org.bukkit.event.EventHandler; import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; @@ -31,12 +32,12 @@ public class ItemAdderDataProvider extends ExternalDataProvider { @Override public void init() { - try { - updateNamespaces(); - } catch (Throwable e) { - Iris.warn("Failed to update ItemAdder namespaces: " + e.getMessage()); - J.s(this::updateNamespaces, 20); - } + updateNamespaces(); + } + + @EventHandler + public void onLoadData(ItemsAdderLoadDataEvent event) { + updateNamespaces(); } @NotNull @@ -68,33 +69,36 @@ public class ItemAdderDataProvider extends ExternalDataProvider { public @NotNull Collection<@NotNull Identifier> getTypes(@NotNull DataType dataType) { return switch (dataType) { case ENTITY -> List.of(); - case ITEM -> updateNamespaces(dataType, CustomStack.getNamespacedIdsInRegistry() + case ITEM -> CustomStack.getNamespacedIdsInRegistry() .stream() .map(Identifier::fromString) - .toList()); - case BLOCK -> updateNamespaces(dataType, CustomBlock.getNamespacedIdsInRegistry() + .toList(); + case BLOCK -> CustomBlock.getNamespacedIdsInRegistry() .stream() .map(Identifier::fromString) - .toList()); + .toList(); }; } private void updateNamespaces() { - getTypes(DataType.ITEM); - getTypes(DataType.BLOCK); + try { + updateNamespaces(DataType.ITEM); + updateNamespaces(DataType.BLOCK); + } catch (Throwable e) { + Iris.warn("Failed to update ItemAdder namespaces: " + e.getMessage()); + } } - private Collection updateNamespaces(DataType dataType, Collection ids) { - var namespaces = ids.stream().map(Identifier::namespace).collect(Collectors.toSet()); + private void updateNamespaces(DataType dataType) { + var namespaces = getTypes(dataType).stream().map(Identifier::namespace).collect(Collectors.toSet()); var currentNamespaces = dataType == DataType.ITEM ? itemNamespaces : blockNamespaces; currentNamespaces.removeIf(n -> !namespaces.contains(n)); currentNamespaces.addAll(namespaces); - return ids; } @Override public boolean isValidProvider(@NotNull Identifier id, DataType dataType) { if (dataType == DataType.ENTITY) return false; - return dataType == DataType.ITEM ? this.itemNamespaces.contains(id.namespace()) : this.blockNamespaces.contains(id.namespace()); + return dataType == DataType.ITEM ? itemNamespaces.contains(id.namespace()) : blockNamespaces.contains(id.namespace()); } } diff --git a/core/src/main/java/com/volmit/iris/core/link/data/NexoDataProvider.java b/core/src/main/java/com/volmit/iris/core/link/data/NexoDataProvider.java index 998fbf06f..58baa6e59 100644 --- a/core/src/main/java/com/volmit/iris/core/link/data/NexoDataProvider.java +++ b/core/src/main/java/com/volmit/iris/core/link/data/NexoDataProvider.java @@ -26,11 +26,8 @@ import org.jetbrains.annotations.NotNull; import java.util.Collection; import java.util.List; import java.util.MissingResourceException; -import java.util.concurrent.atomic.AtomicBoolean; public class NexoDataProvider extends ExternalDataProvider { - private final AtomicBoolean failed = new AtomicBoolean(false); - public NexoDataProvider() { super("Nexo"); } @@ -125,9 +122,4 @@ public class NexoDataProvider extends ExternalDataProvider { if (dataType == DataType.ENTITY) return false; return "nexo".equalsIgnoreCase(id.namespace()); } - - @Override - public boolean isReady() { - return super.isReady() && !failed.get(); - } } diff --git a/core/src/main/java/com/volmit/iris/core/service/ExternalDataSVC.java b/core/src/main/java/com/volmit/iris/core/service/ExternalDataSVC.java index 49303b60c..42d82d3ab 100644 --- a/core/src/main/java/com/volmit/iris/core/service/ExternalDataSVC.java +++ b/core/src/main/java/com/volmit/iris/core/service/ExternalDataSVC.java @@ -69,8 +69,8 @@ public class ExternalDataSVC implements IrisService { @EventHandler public void onPluginEnable(PluginEnableEvent e) { - if (activeProviders.stream().noneMatch(p -> p.getPlugin().equals(e.getPlugin()))) { - providers.stream().filter(p -> p.isReady() && p.getPlugin().equals(e.getPlugin())).findFirst().ifPresent(edp -> { + if (activeProviders.stream().noneMatch(p -> e.getPlugin().equals(p.getPlugin()))) { + providers.stream().filter(p -> p.isReady() && e.getPlugin().equals(p.getPlugin())).findFirst().ifPresent(edp -> { activeProviders.add(edp); edp.init(); Iris.instance.registerListener(edp);