Rewrote teleport handling.

This commit is contained in:
Garbage Mule
2011-10-14 02:41:41 +02:00
parent 5165eda6df
commit fb678cc89f
3 changed files with 36 additions and 3 deletions
+35 -2
View File
@@ -623,8 +623,41 @@ public class MAListener implements ArenaListener
arena.playerLeave(p);
}
public void onPlayerTeleport(PlayerTeleportEvent event)
{
if (!arena.enabled || !arena.setup || arena.allowWarp || arena.edit)
return;
Location to = event.getTo();
Location from = event.getFrom();
Player p = event.getPlayer();
if (arena.inRegion(from))
{
// Covers the case in which both locations are in the arena.
if ((arena.inRegion(to) && arena.running) || isWarp(to) || to.equals(arena.locations.get(p)))
return;
MAUtils.tellPlayer(p, Msg.WARP_FROM_ARENA);
event.setCancelled(true);
}
else if (arena.inRegion(to))
{
if (isWarp(from) || to.equals(arena.locations.get(p)))
return;
MAUtils.tellPlayer(p, Msg.WARP_TO_ARENA);
event.setCancelled(true);
}
}
private boolean isWarp(Location l)
{
return l.equals(arena.arenaLoc) || l.equals(arena.lobbyLoc) || l.equals(arena.spectatorLoc);
}
/*public void onPlayerTeleport(PlayerTeleportEvent event)
{
if (!arena.running || arena.edit || !arena.enabled || !arena.setup || arena.allowWarp)
return;
@@ -668,7 +701,7 @@ public class MAListener implements ArenaListener
event.setCancelled(true);
return;
}
}
}*/
public void onPlayerCommandPreprocess(PlayerCommandPreprocessEvent event)
{