Update to fix bugs. Still WIP.

This commit is contained in:
Tastybento 2017-12-09 11:43:35 -08:00
parent 323720598a
commit 01baad3eba
10 changed files with 71 additions and 29 deletions

View File

@ -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)"

View File

@ -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 {

View File

@ -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;

View File

@ -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 {

View File

@ -7,7 +7,6 @@ import java.util.List;
import org.bukkit.plugin.Plugin;
import us.tastybento.bskyblock.BSkyBlock;
import us.tastybento.bskyblock.database.DatabaseConnecter;
/**

View File

@ -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();
}

View File

@ -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<String> companionNames = new ArrayList<>();
private ItemStack[] defaultChestItems;
private ItemStack[] chestItems;
//private List<Entity> 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");
}
}
}

View File

@ -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);
}
}
}
}

View File

@ -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 {

View File

@ -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;