From 09a77e98cc15d8f434572718225757157518c158 Mon Sep 17 00:00:00 2001 From: Jonathan Williams Date: Tue, 3 Dec 2013 13:57:43 -0800 Subject: [PATCH] Prevent Enderdragon from creating portal. --- .../game/arcade/game/games/uhc/UHC.java | 33 +++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/uhc/UHC.java b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/uhc/UHC.java index 81472ac74..4831adce4 100644 --- a/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/uhc/UHC.java +++ b/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/game/games/uhc/UHC.java @@ -33,6 +33,7 @@ import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.block.BlockBreakEvent; import org.bukkit.event.block.BlockPlaceEvent; +import org.bukkit.event.entity.EntityCreatePortalEvent; import org.bukkit.event.entity.EntityDamageByEntityEvent; import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.entity.EntityDeathEvent; @@ -185,12 +186,40 @@ public class UHC extends TeamGame } @EventHandler - public void endPortalTransfer(PlayerPortalEvent event) + public void endPortalTransfer(final PlayerPortalEvent event) { + System.out.println(event.getCause()); if (event.getCause() == TeleportCause.END_PORTAL) { event.setCancelled(true); - event.getPlayer().teleport(((CraftServer)Bukkit.getServer()).getHandle().getServer().getPlayerList().calculateTarget(event.getPlayer().getLocation(), ((CraftWorld)Bukkit.getWorld("world_the_end")).getHandle())); + + if (event.getPlayer().getLocation().getWorld() == Bukkit.getWorld("world_the_end")) + { + System.out.println("in teleport place"); + Bukkit.getScheduler().scheduleSyncDelayedTask(Manager.GetPlugin(), new Runnable() + { + public void run() + { + if (event.getPlayer().isOnline()) + { + System.out.println("Teleporting player back to world: " + new Location(WorldData.World, 2.5, 70, 0.5)); + event.getPlayer().teleport(new Location(event.getPlayer().getWorld(), 2.5, 70, 0.5)); + event.getPlayer().sendMessage("Hi, get back in your world."); + } + } + }, 2L); + } + else + event.getPlayer().teleport(((CraftServer)Bukkit.getServer()).getHandle().getServer().getPlayerList().calculateTarget(event.getPlayer().getLocation(), ((CraftWorld)Bukkit.getWorld("world_the_end")).getHandle())); + } + } + + @EventHandler + public void endPortalCreation(final EntityCreatePortalEvent event) + { + if (event.getEntity() instanceof EnderDragon) + { + event.setCancelled(true); } }