diff --git a/src/main/java/world/bentobox/bentobox/api/panels/reader/TemplateReader.java b/src/main/java/world/bentobox/bentobox/api/panels/reader/TemplateReader.java index f913b207b..12a29189c 100644 --- a/src/main/java/world/bentobox/bentobox/api/panels/reader/TemplateReader.java +++ b/src/main/java/world/bentobox/bentobox/api/panels/reader/TemplateReader.java @@ -6,12 +6,6 @@ package world.bentobox.bentobox.api.panels.reader; - -import java.io.File; -import java.io.IOException; -import java.util.HashMap; -import java.util.Map; - import org.bukkit.Material; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.InvalidConfigurationException; @@ -20,6 +14,12 @@ import org.bukkit.event.inventory.ClickType; import org.eclipse.jdt.annotation.NonNull; import org.eclipse.jdt.annotation.Nullable; +import java.io.File; +import java.io.IOException; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + import com.google.common.base.Enums; import world.bentobox.bentobox.api.panels.Panel; @@ -345,6 +345,30 @@ public class TemplateReader }); } } + else if (section.isList("actions")) + { + // Read Click data as list which allows to have duplicate click types. + + List> actionList = section.getMapList("actions"); + + if (!actionList.isEmpty()) + { + actionList.forEach(valueMap -> { + ClickType clickType = Enums.getIfPresent(ClickType.class, + String.valueOf(valueMap.get("click-type")).toUpperCase()).orNull(); + + if (clickType != null) + { + ItemTemplateRecord.ActionRecords actionData = + new ItemTemplateRecord.ActionRecords(clickType, + valueMap.containsKey("type") ? String.valueOf(valueMap.get("type")) : null, + valueMap.containsKey("content") ? String.valueOf(valueMap.get("content")) : null, + valueMap.containsKey("tooltip") ? String.valueOf(valueMap.get("tooltip")) : null); + itemRecord.addAction(actionData); + } + }); + } + } // Add item to the map if (reusableItemMap != null && itemKey != null)