From 477f60ae033bc4f63528d78d62fa8335e6deafbc Mon Sep 17 00:00:00 2001 From: Florian CUNY Date: Sun, 29 Sep 2019 10:26:39 +0200 Subject: [PATCH] Added Banner patterns support in Blueprints Implements https://github.com/BentoBoxWorld/BentoBox/issues/961 --- .../blueprints/BlueprintClipboard.java | 7 ++++++ .../bentobox/blueprints/BlueprintPaster.java | 7 ++++++ .../dataobjects/BlueprintBlock.java | 22 +++++++++++++++++++ .../dataobjects/BlueprintEntity.java | 3 +++ 4 files changed, 39 insertions(+) diff --git a/src/main/java/world/bentobox/bentobox/blueprints/BlueprintClipboard.java b/src/main/java/world/bentobox/bentobox/blueprints/BlueprintClipboard.java index 822a3cac9..36205c4e8 100644 --- a/src/main/java/world/bentobox/bentobox/blueprints/BlueprintClipboard.java +++ b/src/main/java/world/bentobox/bentobox/blueprints/BlueprintClipboard.java @@ -14,6 +14,7 @@ import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.World; +import org.bukkit.block.Banner; import org.bukkit.block.Block; import org.bukkit.block.BlockState; import org.bukkit.block.CreatureSpawner; @@ -288,6 +289,12 @@ public class BlueprintClipboard { cs.setSpawnRange(spawner.getSpawnRange()); b.setCreatureSpawner(cs); } + + // Banners + if (blockState instanceof Banner) { + b.setBannerPatterns(((Banner) blockState).getPatterns()); + } + this.bpBlocks.put(pos, b); return true; } diff --git a/src/main/java/world/bentobox/bentobox/blueprints/BlueprintPaster.java b/src/main/java/world/bentobox/bentobox/blueprints/BlueprintPaster.java index 8a3732fa6..792c2e225 100644 --- a/src/main/java/world/bentobox/bentobox/blueprints/BlueprintPaster.java +++ b/src/main/java/world/bentobox/bentobox/blueprints/BlueprintPaster.java @@ -11,6 +11,7 @@ import org.bukkit.ChatColor; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.World; +import org.bukkit.block.Banner; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; import org.bukkit.block.BlockState; @@ -246,6 +247,12 @@ public class BlueprintPaster { spawner.setSpawnRange(s.getSpawnRange()); bs.update(true, false); } + // Banners + if (bs instanceof Banner) { + Banner banner = (Banner) bs; + banner.setPatterns(bpBlock.getBannerPatterns()); + banner.update(true, false); + } } /** diff --git a/src/main/java/world/bentobox/bentobox/blueprints/dataobjects/BlueprintBlock.java b/src/main/java/world/bentobox/bentobox/blueprints/dataobjects/BlueprintBlock.java index cacda5cf8..a54c38a0b 100644 --- a/src/main/java/world/bentobox/bentobox/blueprints/dataobjects/BlueprintBlock.java +++ b/src/main/java/world/bentobox/bentobox/blueprints/dataobjects/BlueprintBlock.java @@ -4,6 +4,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import org.bukkit.block.banner.Pattern; import org.bukkit.inventory.ItemStack; import com.google.gson.annotations.Expose; @@ -22,6 +23,11 @@ public class BlueprintBlock { private Map inventory; @Expose private BlueprintCreatureSpawner creatureSpawner; + /** + * @since 1.8.0 + */ + @Expose + private List bannerPatterns; public BlueprintBlock(String blockData) { this.blockData = blockData; @@ -82,4 +88,20 @@ public class BlueprintBlock { public void setCreatureSpawner(BlueprintCreatureSpawner creatureSpawner) { this.creatureSpawner = creatureSpawner; } + + /** + * @return list of the banner patterns + * @since 1.8.0 + */ + public List getBannerPatterns() { + return bannerPatterns; + } + + /** + * @param bannerPatterns the banner Patterns to set + * @since 1.8.0 + */ + public void setBannerPatterns(List bannerPatterns) { + this.bannerPatterns = bannerPatterns; + } } diff --git a/src/main/java/world/bentobox/bentobox/blueprints/dataobjects/BlueprintEntity.java b/src/main/java/world/bentobox/bentobox/blueprints/dataobjects/BlueprintEntity.java index 3ee5dea54..e42cd2eb9 100644 --- a/src/main/java/world/bentobox/bentobox/blueprints/dataobjects/BlueprintEntity.java +++ b/src/main/java/world/bentobox/bentobox/blueprints/dataobjects/BlueprintEntity.java @@ -41,6 +41,9 @@ public class BlueprintEntity { @Expose private Style style; + /** + * @since 1.8.0 + */ public void configureEntity(Entity e) { if (e instanceof Colorable) { ((Colorable) e).setColor(color);