From cc1bb3cfe9819ac1cf4d9c83a76e2e35868cd360 Mon Sep 17 00:00:00 2001 From: AlexTheCoder Date: Fri, 10 Mar 2017 14:59:54 -0500 Subject: [PATCH] Make outposts utilize the Clan Banner of their owner --- .../clans/clans/siege/outpost/Outpost.java | 4 +-- .../clans/siege/outpost/OutpostType.java | 26 +++++++++++++------ 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/siege/outpost/Outpost.java b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/siege/outpost/Outpost.java index 09ed9dcbc..337c3e402 100644 --- a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/siege/outpost/Outpost.java +++ b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/siege/outpost/Outpost.java @@ -149,7 +149,7 @@ public class Outpost implements Listener _preHologram2.start(); } - _blocks = _type.createBuildQueue(_origin, _ownerClan.Clans); + _blocks = _type.createBuildQueue(_origin, _ownerClan.Clans, _ownerClan); _state = token.OutpostState; @@ -498,7 +498,7 @@ public class Outpost implements Listener _lifetimeLeft.start(); _state = OutpostState.CONSTRUCTING; - _blocks = new LinkedHashMap<>(_buildQueue = _type.createBuildQueue(_origin, _ownerClan.Clans)); + _blocks = new LinkedHashMap<>(_buildQueue = _type.createBuildQueue(_origin, _ownerClan.Clans, _ownerClan)); _ownerClan.inform("Siege", "Your Outpost is now being constructed.", null); diff --git a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/siege/outpost/OutpostType.java b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/siege/outpost/OutpostType.java index 134e6b000..53e4979a6 100644 --- a/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/siege/outpost/OutpostType.java +++ b/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/clans/siege/outpost/OutpostType.java @@ -1,27 +1,29 @@ package mineplex.game.clans.clans.siege.outpost; import java.io.File; -import java.io.FileInputStream; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; -import org.bukkit.DyeColor; import org.bukkit.Location; import org.bukkit.Material; +import org.bukkit.block.banner.Pattern; import mineplex.core.common.block.schematic.Schematic; import mineplex.core.common.block.schematic.UtilSchematic; import mineplex.core.common.util.UtilWorld; +import mineplex.game.clans.clans.ClanInfo; import mineplex.game.clans.clans.ClansManager; +import mineplex.game.clans.clans.banners.BannerManager; +import mineplex.game.clans.clans.banners.BannerPattern; +import mineplex.game.clans.clans.banners.ClanBanner; import mineplex.game.clans.clans.siege.outpost.build.OutpostBlock; import mineplex.game.clans.clans.siege.outpost.build.OutpostBlockBanner; -import net.minecraft.server.v1_8_R3.NBTTagCompound; public enum OutpostType { MK_I(1, 3, 6) { - public LinkedHashMap createBuildQueue(Location location, ClansManager clans) + public LinkedHashMap createBuildQueue(Location location, ClansManager clans, ClanInfo owner) { LinkedHashMap build = new LinkedHashMap<>(); @@ -232,7 +234,7 @@ public enum OutpostType } }, MK_II(2, 5, 25) { - public LinkedHashMap createBuildQueue(Location location, ClansManager clans) + public LinkedHashMap createBuildQueue(Location location, ClansManager clans, ClanInfo owner) { try { @@ -292,7 +294,7 @@ public enum OutpostType } }, MK_III(3, 5, 25) { - public LinkedHashMap createBuildQueue(Location location, ClansManager clans) + public LinkedHashMap createBuildQueue(Location location, ClansManager clans, ClanInfo owner) { try { @@ -300,6 +302,8 @@ public enum OutpostType File file = new File("schematic" + File.separator + "outpost_mk_III.schematic"); Schematic schematic = UtilSchematic.loadSchematic(file); + BannerManager bm = clans.getBannerManager(); + ClanBanner cb = bm.LoadedBanners.get(owner.getName()); for (int y = 0; y < schematic.getHeight(); y++) { @@ -319,10 +323,16 @@ public enum OutpostType if (Material.getMaterial(schematic.getBlock(x, y, z)).name().contains("BANNER")) { - build.put(UtilWorld.locToStr(loc), new OutpostBlockBanner(build, loc, schematic.getBlock(x, y, z), schematic.getData(x, y, z), DyeColor.RED)); + if (cb == null) + { + continue; + } + build.put(UtilWorld.locToStr(loc), new OutpostBlockBanner(build, loc, schematic.getBlock(x, y, z), schematic.getData(x, y, z), cb.getBaseColor(), (Pattern[]) cb.getPatterns().stream().map(BannerPattern::getBukkitPattern).toArray())); } else + { build.put(UtilWorld.locToStr(loc), new OutpostBlock(build, loc, schematic.getBlock(x, y, z), schematic.getData(x, y, z))); + } } } } @@ -374,7 +384,7 @@ public enum OutpostType return _id; } - public abstract LinkedHashMap createBuildQueue(Location location, ClansManager clans); + public abstract LinkedHashMap createBuildQueue(Location location, ClansManager clans, ClanInfo owner); public abstract Location getCoreLocation(Location location);