diff --git a/src/main/java/fyi/tiko/battletowers/BattleTowersPlugin.java b/src/main/java/fyi/tiko/battletowers/BattleTowersPlugin.java index 7720d1b..f68feaa 100644 --- a/src/main/java/fyi/tiko/battletowers/BattleTowersPlugin.java +++ b/src/main/java/fyi/tiko/battletowers/BattleTowersPlugin.java @@ -35,7 +35,7 @@ public final class BattleTowersPlugin extends JavaPlugin { ); getServer().getPluginManager().registerEvents( - new TowerBossDeathListener(), this + new TowerBossDeathListener(towerKey), this ); getLogger().info("BattleTowers enabled!"); diff --git a/src/main/java/fyi/tiko/battletowers/boss/TowerBossDeathListener.java b/src/main/java/fyi/tiko/battletowers/boss/TowerBossDeathListener.java index 730f894..0b2b3be 100644 --- a/src/main/java/fyi/tiko/battletowers/boss/TowerBossDeathListener.java +++ b/src/main/java/fyi/tiko/battletowers/boss/TowerBossDeathListener.java @@ -1,25 +1,34 @@ package fyi.tiko.battletowers.boss; +import org.bukkit.NamespacedKey; import org.bukkit.entity.IronGolem; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.entity.EntityDeathEvent; - -import static fyi.tiko.battletowers.BattleTowersPlugin.instance; +import org.bukkit.persistence.PersistentDataType; public class TowerBossDeathListener implements Listener { + private final NamespacedKey towerKey; + + public TowerBossDeathListener(NamespacedKey towerKey) { + this.towerKey = towerKey; + } @EventHandler - public void onBossDeath(EntityDeathEvent event) { + public void onBossDeath(final EntityDeathEvent event) { - if (!(event.getEntity() instanceof IronGolem golem)) return; + if (!(event.getEntity() instanceof IronGolem golem)) { + return; + } - var data = golem.getPersistentDataContainer().get( - instance().towerKey(), - org.bukkit.persistence.PersistentDataType.STRING + final var data = golem.getPersistentDataContainer().get( + towerKey, + PersistentDataType.STRING ); - if (data == null) return; + if (data == null) { + return; + } // Tower Collapse Start TowerDestroyer.startCollapse(golem.getLocation(), event.getEntity().getKiller()); diff --git a/src/main/java/fyi/tiko/battletowers/loot/TowerChestListener.java b/src/main/java/fyi/tiko/battletowers/loot/TowerChestListener.java index 0195dfe..27b90e8 100644 --- a/src/main/java/fyi/tiko/battletowers/loot/TowerChestListener.java +++ b/src/main/java/fyi/tiko/battletowers/loot/TowerChestListener.java @@ -1,6 +1,7 @@ package fyi.tiko.battletowers.loot; import fyi.tiko.battletowers.boss.TowerBossSpawner; +import org.bukkit.block.Chest; import org.bukkit.entity.IronGolem; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; @@ -11,7 +12,7 @@ public class TowerChestListener implements Listener { @EventHandler public void onChestOpen(InventoryOpenEvent event) { - if (!(event.getInventory().getHolder() instanceof org.bukkit.block.Chest)) { + if (!(event.getInventory().getHolder() instanceof Chest)) { return; } @@ -19,9 +20,7 @@ public class TowerChestListener implements Listener { // Search nearby golems for (var entity : player.getNearbyEntities(8, 8, 8)) { - if (entity instanceof IronGolem golem) { - if (!golem.hasAI()) { TowerBossSpawner.wakeUp(golem); golem.setTarget(player);