From 3b93046731da3507129bd2665f8ed197e18fc475 Mon Sep 17 00:00:00 2001 From: Intelli Date: Tue, 22 Feb 2022 21:41:11 -0700 Subject: [PATCH] Fixed ClassCastException when rolling back banner inventory transactions --- .../java/net/coreprotect/database/Rollback.java | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/coreprotect/database/Rollback.java b/src/main/java/net/coreprotect/database/Rollback.java index 1b8dd4b..641a8d9 100644 --- a/src/main/java/net/coreprotect/database/Rollback.java +++ b/src/main/java/net/coreprotect/database/Rollback.java @@ -1689,9 +1689,24 @@ public class Rollback extends Queue { */ Material rowType = itemstack.getType(); + List metaList = (List) list; + if (!(metaList.get(0) instanceof List)) { + if (rowType.name().endsWith("_BANNER")) { + BannerMeta meta = (BannerMeta) itemstack.getItemMeta(); + for (Object value : metaList) { + if (value instanceof Map) { + Pattern pattern = new Pattern((Map) value); + meta.addPattern(pattern); + } + } + itemstack.setItemMeta(meta); + } + + return new Object[] { slot, faceData, itemstack }; + } + int itemCount = 0; Builder effectBuilder = FireworkEffect.builder(); - for (List> map : (List>>) list) { if (map.size() == 0) { if (itemCount == 3 && (rowType == Material.FIREWORK_ROCKET || rowType == Material.FIREWORK_STAR)) {