Skip to content

Commit

Permalink
Banner base color is optional
Browse files Browse the repository at this point in the history
  • Loading branch information
fullwall committed Jan 24, 2017
1 parent f44d7fa commit 93c8be0
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 6 deletions.
6 changes: 4 additions & 2 deletions src/main/java/net/citizensnpcs/api/ai/goals/WanderGoal.java
Expand Up @@ -4,6 +4,7 @@

import org.bukkit.Location;
import org.bukkit.block.Block;
import org.bukkit.block.BlockFace;
import org.bukkit.event.EventHandler;
import org.bukkit.event.HandlerList;
import org.bukkit.event.Listener;
Expand Down Expand Up @@ -35,8 +36,9 @@ private Location findRandomPosition() {
int x = base.getBlockX() + random.nextInt(2 * xrange) - xrange;
int y = base.getBlockY() + random.nextInt(2 * yrange) - yrange;
int z = base.getBlockZ() + random.nextInt(2 * xrange) - xrange;
Block block = base.getWorld().getBlockAt(x, y - 2, z);
if (MinecraftBlockExaminer.canStandOn(block)) {
Block block = base.getWorld().getBlockAt(x, y, z);
if (MinecraftBlockExaminer.canStandOn(block)
&& MinecraftBlockExaminer.canStandIn(block.getRelative(BlockFace.UP).getType())) {
found = block.getLocation().add(0, 1, 0);
break;
}
Expand Down
20 changes: 16 additions & 4 deletions src/main/java/net/citizensnpcs/api/util/ItemStorage.java
Expand Up @@ -39,7 +39,9 @@

public class ItemStorage {
private static void deserialiseBanner(DataKey root, Banner meta) {
meta.setBaseColor(DyeColor.valueOf(root.getString("banner.basecolor")));
if (root.keyExists("banner.basecolor")) {
meta.setBaseColor(DyeColor.valueOf(root.getString("banner.basecolor")));
}
if (root.keyExists("banner.patterns")) {
for (DataKey sub : root.getRelative("banner.patterns").getIntegerSubKeys()) {
Pattern pattern = new Pattern(DyeColor.valueOf(sub.getString("color")),
Expand Down Expand Up @@ -160,7 +162,9 @@ private static void deserialiseMeta(DataKey root, ItemStack res) {

if (root.keyExists("banner")) {
BannerMeta meta = ensureMeta(res);
meta.setBaseColor(DyeColor.valueOf(root.getString("banner.basecolor")));
if (root.keyExists("banner.basecolor")) {
meta.setBaseColor(DyeColor.valueOf(root.getString("banner.basecolor")));
}
if (root.keyExists("banner.patterns")) {
for (DataKey sub : root.getRelative("banner.patterns").getIntegerSubKeys()) {
Pattern pattern = new Pattern(DyeColor.valueOf(sub.getString("color")),
Expand Down Expand Up @@ -250,7 +254,11 @@ public static void saveItem(DataKey key, ItemStack item) {
}

private static void serialiseBanner(DataKey root, Banner banner) {
root.setString("basecolor", banner.getBaseColor().name());
if (banner.getBaseColor() != null) {
root.setString("basecolor", banner.getBaseColor().name());
} else {
root.removeKey("basecolor");
}
List<org.bukkit.block.banner.Pattern> patterns = banner.getPatterns();
root.removeKey("patterns");
for (int i = 0; i < patterns.size(); i++) {
Expand Down Expand Up @@ -407,7 +415,11 @@ private static void serialiseMeta(DataKey key, ItemMeta meta) {
if (meta instanceof BannerMeta) {
BannerMeta banner = (BannerMeta) meta;
DataKey root = key.getRelative("banner");
root.setString("basecolor", banner.getBaseColor().name());
if (banner.getBaseColor() != null) {
root.setString("basecolor", banner.getBaseColor().name());
} else {
root.removeKey("basecolor");
}
List<org.bukkit.block.banner.Pattern> patterns = banner.getPatterns();
root.removeKey("patterns");
for (int i = 0; i < patterns.size(); i++) {
Expand Down

0 comments on commit 93c8be0

Please sign in to comment.