From 475f9b14164d74d6bf72cbdfb2f9170b21fb836d Mon Sep 17 00:00:00 2001 From: Tastybento Date: Thu, 25 Jan 2018 22:19:33 -0800 Subject: [PATCH] Made changes to fix events and support the FAWE addon. --- .../bskyblock/api/events/PremadeEvent.java | 19 ++++---- .../api/events/island/IslandEvent.java | 48 ++++++++++++++----- .../database/managers/island/NewIsland.java | 48 ++++++++++--------- .../bskyblock/database/objects/Island.java | 4 -- .../island/builders/IslandBuilder.java | 4 +- .../bskyblock/util/DeleteIslandChunks.java | 4 +- 6 files changed, 73 insertions(+), 54 deletions(-) diff --git a/src/main/java/us/tastybento/bskyblock/api/events/PremadeEvent.java b/src/main/java/us/tastybento/bskyblock/api/events/PremadeEvent.java index 2131aeb8e..9a5fa3fe6 100644 --- a/src/main/java/us/tastybento/bskyblock/api/events/PremadeEvent.java +++ b/src/main/java/us/tastybento/bskyblock/api/events/PremadeEvent.java @@ -5,15 +5,14 @@ import org.bukkit.event.HandlerList; public abstract class PremadeEvent extends Event { - public static final HandlerList handlers = new HandlerList(); - - @Override - public HandlerList getHandlers() { - return handlers; - } - - public static HandlerList getHandleList(){ - return handlers; - } + private static final HandlerList handlers = new HandlerList(); + @Override + public HandlerList getHandlers() { + return handlers; + } + + public static HandlerList getHandlerList() { + return handlers; + } } diff --git a/src/main/java/us/tastybento/bskyblock/api/events/island/IslandEvent.java b/src/main/java/us/tastybento/bskyblock/api/events/island/IslandEvent.java index 99dcd61ee..e7b937310 100644 --- a/src/main/java/us/tastybento/bskyblock/api/events/island/IslandEvent.java +++ b/src/main/java/us/tastybento/bskyblock/api/events/island/IslandEvent.java @@ -2,8 +2,10 @@ package us.tastybento.bskyblock.api.events.island; import java.util.UUID; +import org.bukkit.Bukkit; import org.bukkit.Location; +import us.tastybento.bskyblock.BSkyBlock; import us.tastybento.bskyblock.api.events.IslandBaseEvent; import us.tastybento.bskyblock.database.objects.Island; @@ -149,29 +151,51 @@ public class IslandEvent { public IslandBaseEvent build() { switch (reason) { case CREATE: - return new IslandCreateEvent(island, player, admin, location); + IslandCreateEvent create = new IslandCreateEvent(island, player, admin, location); + BSkyBlock.getInstance().getServer().getPluginManager().callEvent(create); + return create; case CREATED: - return new IslandCreatedEvent(island, player, admin, location); + IslandCreatedEvent created = new IslandCreatedEvent(island, player, admin, location); + BSkyBlock.getInstance().getServer().getPluginManager().callEvent(created); + return created; case DELETE: - return new IslandDeleteEvent(island, player, admin, location); + IslandDeleteEvent delete = new IslandDeleteEvent(island, player, admin, location); + BSkyBlock.getInstance().getServer().getPluginManager().callEvent(delete); + return delete; case DELETED: - return new IslandDeletedEvent(island, player, admin, location); + IslandDeletedEvent deleted = new IslandDeletedEvent(island, player, admin, location); + BSkyBlock.getInstance().getServer().getPluginManager().callEvent(deleted); + return deleted; case ENTER: - return new IslandEnterEvent(island, player, admin, location); + IslandEnterEvent enter = new IslandEnterEvent(island, player, admin, location); + BSkyBlock.getInstance().getServer().getPluginManager().callEvent(enter); + return enter; case EXIT: - return new IslandExitEvent(island, player, admin, location); + IslandExitEvent exit = new IslandExitEvent(island, player, admin, location); + BSkyBlock.getInstance().getServer().getPluginManager().callEvent(exit); + return exit; case LOCK: - return new IslandLockEvent(island, player, admin, location); + IslandLockEvent lock = new IslandLockEvent(island, player, admin, location); + BSkyBlock.getInstance().getServer().getPluginManager().callEvent(lock); + return lock; case RESET: - return new IslandResetEvent(island, player, admin, location); + IslandResetEvent reset = new IslandResetEvent(island, player, admin, location); + BSkyBlock.getInstance().getServer().getPluginManager().callEvent(reset); + return reset; case RESETTED: - return new IslandResettedEvent(island, player, admin, location); + IslandResettedEvent resetted = new IslandResettedEvent(island, player, admin, location); + BSkyBlock.getInstance().getServer().getPluginManager().callEvent(resetted); + return resetted; case UNLOCK: - return new IslandUnlockEvent(island, player, admin, location); + IslandUnlockEvent unlock = new IslandUnlockEvent(island, player, admin, location); + BSkyBlock.getInstance().getServer().getPluginManager().callEvent(unlock); + return unlock; default: - return new IslandGeneralEvent(island, player, admin, location); - + IslandGeneralEvent general = new IslandGeneralEvent(island, player, admin, location); + BSkyBlock.getInstance().getServer().getPluginManager().callEvent(general); + return general; } + } } } 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 a104cbd35..ee85bbc7e 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 @@ -20,7 +20,7 @@ import us.tastybento.bskyblock.island.builders.IslandBuilder.IslandType; * */ public class NewIsland { - private static final boolean DEBUG = false; + private static final boolean DEBUG = true; private BSkyBlock plugin; private Island island; private final Player player; @@ -123,13 +123,16 @@ public class NewIsland { plugin.getPlayers().setHomeLocation(playerUUID, next, 1); // Fire event + if (DEBUG) + plugin.getLogger().info("DEBUG: firing event"); IslandBaseEvent event = IslandEvent.builder() .involvedPlayer(player.getUniqueId()) .reason(reason) .island(island) .location(island.getCenter()) .build(); - plugin.getServer().getPluginManager().callEvent(event); + if (DEBUG) + plugin.getLogger().info("DEBUG: event cancelled status = " + event.isCancelled()); if (!event.isCancelled()) { // Create island new IslandBuilder(plugin, island) @@ -151,28 +154,27 @@ public class NewIsland { .setType(IslandType.END) .build(); } + // Teleport player to their island + plugin.getIslands().homeTeleport(player); + // Fire exit event + Reason reasonDone = Reason.CREATED; + switch (reason) { + case CREATE: + reasonDone = Reason.CREATED; + break; + case RESET: + reasonDone = Reason.RESETTED; + break; + default: + break; + } + event = IslandEvent.builder() + .involvedPlayer(player.getUniqueId()) + .reason(reasonDone) + .island(island) + .location(island.getCenter()) + .build(); } - // Teleport player to their island - plugin.getIslands().homeTeleport(player); - // Fire exit event - Reason reasonDone = Reason.CREATED; - switch (reason) { - case CREATE: - reasonDone = Reason.CREATED; - break; - case RESET: - reasonDone = Reason.RESETTED; - break; - default: - break; - } - event = IslandEvent.builder() - .involvedPlayer(player.getUniqueId()) - .reason(reasonDone) - .island(island) - .location(island.getCenter()) - .build(); - plugin.getServer().getPluginManager().callEvent(event); } /** diff --git a/src/main/java/us/tastybento/bskyblock/database/objects/Island.java b/src/main/java/us/tastybento/bskyblock/database/objects/Island.java index 8e702f1ab..cd3c7be2e 100755 --- a/src/main/java/us/tastybento/bskyblock/database/objects/Island.java +++ b/src/main/java/us/tastybento/bskyblock/database/objects/Island.java @@ -444,16 +444,12 @@ public class Island implements DataObject { if(locked){ // Lock the island IslandBaseEvent event = IslandEvent.builder().island(this).reason(Reason.LOCK).build(); - Bukkit.getServer().getPluginManager().callEvent(event); - if(!event.isCancelled()){ this.locked = locked; } } else { // Unlock the island IslandBaseEvent event = IslandEvent.builder().island(this).reason(Reason.UNLOCK).build(); - Bukkit.getServer().getPluginManager().callEvent(event); - if(!event.isCancelled()){ this.locked = locked; } 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 ae3dc2181..afea8f1f8 100644 --- a/src/main/java/us/tastybento/bskyblock/island/builders/IslandBuilder.java +++ b/src/main/java/us/tastybento/bskyblock/island/builders/IslandBuilder.java @@ -481,8 +481,8 @@ public class IslandBuilder { if (this.playerUUID != null) { Sign sign = (Sign) blockToChange.getState(); User user = User.getInstance(playerUUID); - for (int i = 1; i < 5; i++) { - sign.setLine(i, user.getTranslation("new-island.sign.line" + i, "[player]", playerName)); + for (int i = 0; i < 4; i++) { + sign.setLine(i, user.getTranslation("new-island.sign.line" + (i+1), "[player]", playerName)); } ((org.bukkit.material.Sign) sign.getData()).setFacingDirection(BlockFace.NORTH); sign.update(); diff --git a/src/main/java/us/tastybento/bskyblock/util/DeleteIslandChunks.java b/src/main/java/us/tastybento/bskyblock/util/DeleteIslandChunks.java index ed7bd594b..6eb7f0580 100644 --- a/src/main/java/us/tastybento/bskyblock/util/DeleteIslandChunks.java +++ b/src/main/java/us/tastybento/bskyblock/util/DeleteIslandChunks.java @@ -27,7 +27,6 @@ public class DeleteIslandChunks { //plugin.getLogger().info("DEBUG: deleting the island"); // Fire event IslandBaseEvent event = IslandEvent.builder().island(island).reason(Reason.DELETE).build(); - plugin.getServer().getPluginManager().callEvent(event); if (event.isCancelled()) return; final World world = island.getCenter().getWorld(); @@ -50,8 +49,7 @@ public class DeleteIslandChunks { } } // Fire event - IslandBaseEvent event1 = IslandEvent.builder().island(island).reason(Reason.DELETED).build(); - plugin.getServer().getPluginManager().callEvent(event1); + IslandEvent.builder().island(island).reason(Reason.DELETED).build(); }