From d6633d56763e7298a309f4bab571a03b28deb641 Mon Sep 17 00:00:00 2001 From: Marcel <8513034+MrEAlderson@users.noreply.github.com> Date: Wed, 4 Sep 2024 22:01:19 +0200 Subject: [PATCH 1/2] Undo oopsie regarding team chest locks --- .../metallicgoat/tweaksaddon/tweaks/misc/LockTeamChest.java | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/main/java/me/metallicgoat/tweaksaddon/tweaks/misc/LockTeamChest.java b/src/main/java/me/metallicgoat/tweaksaddon/tweaks/misc/LockTeamChest.java index a6e324d..bb8f35e 100644 --- a/src/main/java/me/metallicgoat/tweaksaddon/tweaks/misc/LockTeamChest.java +++ b/src/main/java/me/metallicgoat/tweaksaddon/tweaks/misc/LockTeamChest.java @@ -7,7 +7,6 @@ import de.marcely.bedwars.tools.location.XYZYP; import me.metallicgoat.tweaksaddon.config.MainConfig; import org.bukkit.Location; -import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; @@ -18,9 +17,7 @@ public class LockTeamChest implements Listener { // Many people will want team chests disabled, use this with only regular chests @EventHandler public void playerOpenArenaChest(PlayerOpenArenaChestEvent event) { - final Block teamChestBlock = event.getChestBlock(); - - if (!MainConfig.lock_team_chest_enabled || teamChestBlock.getType() == Material.ENDER_CHEST) + if (!MainConfig.lock_team_chest_enabled || !event.isTeamChest()) return; final Arena arena = event.getArena(); From fc34f39dc536db66dc95ea140dfa1f9aa1fceed2 Mon Sep 17 00:00:00 2001 From: Marcel <8513034+MrEAlderson@users.noreply.github.com> Date: Sat, 21 Sep 2024 18:24:35 +0200 Subject: [PATCH 2/2] Improve logic to avoid ender portal creation --- .../gentiers/dragons/DragonFollowTask.java | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/main/java/me/metallicgoat/tweaksaddon/gentiers/dragons/DragonFollowTask.java b/src/main/java/me/metallicgoat/tweaksaddon/gentiers/dragons/DragonFollowTask.java index 2d48569..b8450d7 100644 --- a/src/main/java/me/metallicgoat/tweaksaddon/gentiers/dragons/DragonFollowTask.java +++ b/src/main/java/me/metallicgoat/tweaksaddon/gentiers/dragons/DragonFollowTask.java @@ -5,6 +5,7 @@ import de.marcely.bedwars.api.event.arena.RoundEndEvent; import de.marcely.bedwars.api.game.spawner.Spawner; import de.marcely.bedwars.tools.Helper; +import de.marcely.bedwars.tools.NMSHelper; import de.marcely.bedwars.tools.location.XYZ; import de.marcely.bedwars.tools.location.XYZYP; import me.metallicgoat.tweaksaddon.MBedwarsTweaksPlugin; @@ -21,6 +22,7 @@ import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; +import org.bukkit.event.entity.EntityCreatePortalEvent; import org.bukkit.event.entity.EntityDeathEvent; import org.bukkit.event.entity.EntityExplodeEvent; import org.bukkit.scheduler.BukkitRunnable; @@ -159,8 +161,18 @@ public void onDragonDeath(EntityDeathEvent event) { // TODO Find a better way... There might not be // (Possibly remove and use packet to send death effect) - // Hacky way to remove the dragon so the portal never gets created - Bukkit.getScheduler().runTaskLater(MBedwarsTweaksPlugin.getInstance(), this::remove, 20L * 6); + // Hacky way to remove the dragon so the portal never gets created (gets created at tick 200) + if (NMSHelper.get().getVersion() >= 9) + Bukkit.getScheduler().runTaskLater(MBedwarsTweaksPlugin.getInstance(), this::remove, 198L); + } + + // This works for 1.8.8, but got broken with 1.9+ + @EventHandler + public void onEntityCreatePortalEvent(EntityCreatePortalEvent event) { + if (event.getEntity() != dragon) + return; + + event.setCancelled(true); } private void updateTarget() {