From df074b9ff5e72d457e5f44b3b0d0132c07682880 Mon Sep 17 00:00:00 2001 From: EpicKnarvik97 Date: Fri, 12 Feb 2021 01:35:55 +0100 Subject: [PATCH] Adds an entity portal event listener which fixes the infuriating bug which caused empty minecarts to disappear into the nether --- .../stargate/listener/EntityEventListener.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/main/java/net/knarcraft/stargate/listener/EntityEventListener.java b/src/main/java/net/knarcraft/stargate/listener/EntityEventListener.java index dafec9d..bab95f6 100644 --- a/src/main/java/net/knarcraft/stargate/listener/EntityEventListener.java +++ b/src/main/java/net/knarcraft/stargate/listener/EntityEventListener.java @@ -5,8 +5,10 @@ import net.knarcraft.stargate.PortalHandler; import net.knarcraft.stargate.Stargate; import org.bukkit.block.Block; import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; import org.bukkit.event.entity.EntityExplodeEvent; +import org.bukkit.event.entity.EntityPortalEvent; /** * This listener listens for any relevant events on portal entities @@ -14,6 +16,18 @@ import org.bukkit.event.entity.EntityExplodeEvent; @SuppressWarnings("unused") public class EntityEventListener implements Listener { + /** + * This event handler prevents sending entities to the normal nether instead of the stargate target + * @param event

The event to check and possibly cancel

+ */ + @EventHandler(priority = EventPriority.HIGHEST) + public void onPortalEvent(EntityPortalEvent event) { + Portal portal = PortalHandler.getByAdjacentEntrance(event.getFrom()); + if (portal != null) { + event.setCancelled(true); + } + } + /** * This method catches any explosion events *