diff --git a/locales/bsb_en_US.yml b/locales/bsb_en_US.yml index 024e2100d..432148da1 100755 --- a/locales/bsb_en_US.yml +++ b/locales/bsb_en_US.yml @@ -411,6 +411,11 @@ island: To: "Cleared reset limit" Wait: "You have to wait [time] seconds before you can do that again." YouHave: "You have [number] resets left." + sign: + line0: "Welcome!" + line1: "[player]" + line2: "" + line3: "" subtitle: "by tastybento" subtitlecolor: "blue" teleport: "Teleporting you to your island. (/[label] help for more info)" diff --git a/src/main/java/us/tastybento/bskyblock/api/panels/Panel.java b/src/main/java/us/tastybento/bskyblock/api/panels/Panel.java index 8541c4ab5..4e410002d 100644 --- a/src/main/java/us/tastybento/bskyblock/api/panels/Panel.java +++ b/src/main/java/us/tastybento/bskyblock/api/panels/Panel.java @@ -1,11 +1,12 @@ package us.tastybento.bskyblock.api.panels; +import java.util.Map; + import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.bukkit.inventory.Inventory; -import us.tastybento.bskyblock.listeners.PanelListener; -import java.util.Map; +import us.tastybento.bskyblock.listeners.PanelListener; public class Panel { diff --git a/src/main/java/us/tastybento/bskyblock/api/panels/PanelItem.java b/src/main/java/us/tastybento/bskyblock/api/panels/PanelItem.java index 146629d3f..310352142 100644 --- a/src/main/java/us/tastybento/bskyblock/api/panels/PanelItem.java +++ b/src/main/java/us/tastybento/bskyblock/api/panels/PanelItem.java @@ -1,13 +1,13 @@ package us.tastybento.bskyblock.api.panels; +import java.util.Arrays; + import org.bukkit.enchantments.Enchantment; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemFlag; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; -import java.util.Arrays; - public class PanelItem { private ItemStack item; diff --git a/src/main/java/us/tastybento/bskyblock/api/panels/builders/PanelItemBuilder.java b/src/main/java/us/tastybento/bskyblock/api/panels/builders/PanelItemBuilder.java index e214d5ee8..874e301a8 100644 --- a/src/main/java/us/tastybento/bskyblock/api/panels/builders/PanelItemBuilder.java +++ b/src/main/java/us/tastybento/bskyblock/api/panels/builders/PanelItemBuilder.java @@ -1,6 +1,7 @@ package us.tastybento.bskyblock.api.panels.builders; import org.bukkit.inventory.ItemStack; + import us.tastybento.bskyblock.api.panels.PanelItem; public class PanelItemBuilder { diff --git a/src/main/java/us/tastybento/bskyblock/database/managers/AbstractDatabaseHandler.java b/src/main/java/us/tastybento/bskyblock/database/managers/AbstractDatabaseHandler.java index bfa546a81..e4a851154 100644 --- a/src/main/java/us/tastybento/bskyblock/database/managers/AbstractDatabaseHandler.java +++ b/src/main/java/us/tastybento/bskyblock/database/managers/AbstractDatabaseHandler.java @@ -7,7 +7,6 @@ import java.util.List; import org.bukkit.plugin.Plugin; -import us.tastybento.bskyblock.BSkyBlock; import us.tastybento.bskyblock.database.DatabaseConnecter; /** diff --git a/src/main/java/us/tastybento/bskyblock/database/managers/island/NewIsland.java b/src/main/java/us/tastybento/bskyblock/database/managers/island/NewIsland.java index 8e2eb5873..b7276ee6c 100644 --- a/src/main/java/us/tastybento/bskyblock/database/managers/island/NewIsland.java +++ b/src/main/java/us/tastybento/bskyblock/database/managers/island/NewIsland.java @@ -113,20 +113,20 @@ public class NewIsland { // Create island new IslandBuilder(island) .setPlayer(player) - .setDefaultChestItems(Settings.chestItems) + .setChestItems(Settings.chestItems) .setType(IslandType.ISLAND) .build(); if (Settings.netherGenerate && Settings.netherIslands && IslandWorld.getNetherWorld() != null) { new IslandBuilder(island) .setPlayer(player) - .setDefaultChestItems(Settings.chestItems) + .setChestItems(Settings.chestItems) .setType(IslandType.NETHER) .build(); } if (Settings.endGenerate && Settings.endIslands && IslandWorld.getEndWorld() != null) { new IslandBuilder(island) .setPlayer(player) - .setDefaultChestItems(Settings.chestItems) + .setChestItems(Settings.chestItems) .setType(IslandType.END) .build(); } diff --git a/src/main/java/us/tastybento/bskyblock/island/builders/IslandBuilder.java b/src/main/java/us/tastybento/bskyblock/island/builders/IslandBuilder.java index 08d7dc0b3..321757c52 100644 --- a/src/main/java/us/tastybento/bskyblock/island/builders/IslandBuilder.java +++ b/src/main/java/us/tastybento/bskyblock/island/builders/IslandBuilder.java @@ -2,6 +2,7 @@ package us.tastybento.bskyblock.island.builders; import java.util.UUID; +import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.TreeType; @@ -12,7 +13,6 @@ import org.bukkit.block.BlockState; import org.bukkit.block.Sign; import org.bukkit.entity.EntityType; import org.bukkit.entity.Player; -import org.bukkit.inventory.InventoryHolder; import org.bukkit.inventory.ItemStack; import org.bukkit.material.Chest; @@ -40,7 +40,7 @@ public class IslandBuilder { private World world; private IslandType type = IslandType.ISLAND; //private List companionNames = new ArrayList<>(); - private ItemStack[] defaultChestItems; + private ItemStack[] chestItems; //private List companions = new ArrayList<>(); private UUID playerUUID; private String playerName; @@ -87,10 +87,10 @@ public class IslandBuilder { /** - * @param defaultChestItems the defaultChestItems to set + * @param chestItems the default chestItems to set */ - public IslandBuilder setDefaultChestItems(ItemStack[] defaultChestItems) { - this.defaultChestItems = defaultChestItems; + public IslandBuilder setChestItems(ItemStack[] chestItems) { + this.chestItems = chestItems; return this; } @@ -316,8 +316,8 @@ public class IslandBuilder { int y = 0; for (y = islandHeight + 4; y < islandHeight + 5; y++) { - for (int x_space = x - 2; x_space <= x + 2; x_space++) { - for (int z_space = z - 2; z_space <= z + 2; z_space++) { + for (int x_space = x - 3; x_space <= x + 3; x_space++) { + for (int z_space = z - 3; z_space <= z + 3; z_space++) { world.getBlockAt(x_space, y, z_space).setType(Material.NETHER_BRICK); } } @@ -377,6 +377,7 @@ public class IslandBuilder { y = islandHeight; // Add tree (natural) Location treeLoc = new Location(world, x, y + 5D, z); + treeLoc.getBlock().getRelative(BlockFace.DOWN).setType(Material.NETHERRACK); world.generateTree(treeLoc, TreeType.TREE); // Place the cow //Location location = new Location(world, x, (islandHeight + 5), z - 2); @@ -398,8 +399,8 @@ public class IslandBuilder { int y = 0; // Add some grass for (y = islandHeight + 4; y < islandHeight + 5; y++) { - for (int x_space = x - 2; x_space <= x + 2; x_space++) { - for (int z_space = z - 2; z_space <= z + 2; z_space++) { + for (int x_space = x - 3; x_space <= x + 3; x_space++) { + for (int z_space = z - 3; z_space <= z + 3; z_space++) { world.getBlockAt(x_space, y, z_space).setType(Material.END_BRICKS); } } @@ -478,7 +479,7 @@ public class IslandBuilder { if (this.playerUUID != null) { Sign sign = (Sign) blockToChange.getState(); for (int i=0; i<4; i++) { - sign.setLine(i, BSkyBlock.getPlugin().getLocale(playerUUID).get("signLine" + i).replace("[player]", playerName)); + sign.setLine(i, BSkyBlock.getPlugin().getLocale(playerUUID).get("island.sign.line" + i).replace("[player]", playerName)); } ((org.bukkit.material.Sign) sign.getData()).setFacingDirection(BlockFace.NORTH); sign.update(); @@ -492,11 +493,15 @@ public class IslandBuilder { BlockState state = blockToChange.getState(); Chest chest = new Chest(BlockFace.SOUTH); state.setData(chest); - if (defaultChestItems.length > 0) { - InventoryHolder ih = (InventoryHolder) state; - ih.getInventory().setContents(defaultChestItems); - } state.update(); + if (chestItems.length > 0) { + Bukkit.getLogger().info("DEBUG: chest items = " + chestItems.toString()); + org.bukkit.block.Chest chestBlock = (org.bukkit.block.Chest) state; + chestBlock.getInventory().addItem(chestItems); + chestBlock.update(); + } else { + Bukkit.getLogger().info("DEBUG: no chest items"); + } } } diff --git a/src/main/java/us/tastybento/bskyblock/listeners/NetherPortals.java b/src/main/java/us/tastybento/bskyblock/listeners/NetherPortals.java index 85f28e895..3290d1328 100644 --- a/src/main/java/us/tastybento/bskyblock/listeners/NetherPortals.java +++ b/src/main/java/us/tastybento/bskyblock/listeners/NetherPortals.java @@ -6,12 +6,14 @@ import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.World; import org.bukkit.World.Environment; +import org.bukkit.block.BlockState; import org.bukkit.entity.Vehicle; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.entity.EntityPortalEvent; import org.bukkit.event.player.PlayerPortalEvent; +import org.bukkit.event.world.StructureGrowEvent; import us.tastybento.bskyblock.BSkyBlock; import us.tastybento.bskyblock.config.Settings; @@ -27,7 +29,7 @@ import us.tastybento.bskyblock.util.VaultHelper; public class NetherPortals implements Listener { private final BSkyBlock plugin; - private final static boolean DEBUG = false; + private final static boolean DEBUG = true; public NetherPortals(BSkyBlock plugin) { this.plugin = plugin; @@ -223,7 +225,7 @@ public class NetherPortals implements Listener { plugin.getLogger().warning("Creating nether island for " + event.getPlayer().getName()); new IslandBuilder(island) .setPlayer(event.getPlayer()) - .setDefaultChestItems(Settings.chestItems) + .setChestItems(Settings.chestItems) .setType(IslandType.NETHER) .build(); } @@ -246,4 +248,33 @@ public class NetherPortals implements Listener { } } + /** + * Converts trees to gravel and glowstone + * + * @param e + */ + @EventHandler(priority = EventPriority.LOW, ignoreCancelled = true) + public void onTreeGrow(final StructureGrowEvent e) { + if (DEBUG) + plugin.getLogger().info("DEBUG: " + e.getEventName()); + + if (!Settings.netherTrees) { + return; + } + if (!Settings.netherGenerate || IslandWorld.getNetherWorld() == null) { + return; + } + // Check world + if (!e.getLocation().getWorld().equals(IslandWorld.getNetherWorld())) { + return; + } + for (BlockState b : e.getBlocks()) { + if (b.getType() == Material.LOG || b.getType() == Material.LOG_2) { + b.setType(Material.GRAVEL); + } else if (b.getType() == Material.LEAVES || b.getType() == Material.LEAVES_2) { + b.setType(Material.GLOWSTONE); + } + } + } + } \ No newline at end of file diff --git a/src/main/java/us/tastybento/bskyblock/listeners/PanelListener.java b/src/main/java/us/tastybento/bskyblock/listeners/PanelListener.java index a1331ab25..cd2b73ed8 100644 --- a/src/main/java/us/tastybento/bskyblock/listeners/PanelListener.java +++ b/src/main/java/us/tastybento/bskyblock/listeners/PanelListener.java @@ -1,5 +1,8 @@ package us.tastybento.bskyblock.listeners; +import java.util.HashMap; +import java.util.UUID; + import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; @@ -8,14 +11,10 @@ import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.inventory.InventoryCloseEvent; import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.inventory.Inventory; -import org.bukkit.inventory.ItemStack; + import us.tastybento.bskyblock.BSkyBlock; import us.tastybento.bskyblock.api.panels.ClickType; import us.tastybento.bskyblock.api.panels.Panel; -import us.tastybento.bskyblock.api.panels.PanelItem; - -import java.util.HashMap; -import java.util.UUID; public class PanelListener implements Listener { diff --git a/src/main/java/us/tastybento/bskyblock/panels/LanguagePanel.java b/src/main/java/us/tastybento/bskyblock/panels/LanguagePanel.java index fb4b24903..ded7ce445 100644 --- a/src/main/java/us/tastybento/bskyblock/panels/LanguagePanel.java +++ b/src/main/java/us/tastybento/bskyblock/panels/LanguagePanel.java @@ -3,6 +3,7 @@ package us.tastybento.bskyblock.panels; import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; + import us.tastybento.bskyblock.BSkyBlock; import us.tastybento.bskyblock.api.panels.ClickType; import us.tastybento.bskyblock.api.panels.Panel;