summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKHobbits <rob@khobbits.co.uk>2012-04-05 03:22:49 +0100
committerKHobbits <rob@khobbits.co.uk>2012-04-05 03:22:49 +0100
commitad592553109fb72a933f88da01bdd8cb46fbc6e6 (patch)
treea532fbd581158ec95baca7d628b8c0b88888b290
parent5cd57f6b5e4749fb592ece5553112ec005dffdb1 (diff)
downloadEssentials-ad592553109fb72a933f88da01bdd8cb46fbc6e6.tar
Essentials-ad592553109fb72a933f88da01bdd8cb46fbc6e6.tar.gz
Essentials-ad592553109fb72a933f88da01bdd8cb46fbc6e6.tar.lz
Essentials-ad592553109fb72a933f88da01bdd8cb46fbc6e6.tar.xz
Essentials-ad592553109fb72a933f88da01bdd8cb46fbc6e6.zip
Jail update, jailed people can't attack other players.
-rw-r--r--Essentials/src/com/earth2me/essentials/Jails.java27
1 files changed, 20 insertions, 7 deletions
diff --git a/Essentials/src/com/earth2me/essentials/Jails.java b/Essentials/src/com/earth2me/essentials/Jails.java
index 00c9d8999..7353aee08 100644
--- a/Essentials/src/com/earth2me/essentials/Jails.java
+++ b/Essentials/src/com/earth2me/essentials/Jails.java
@@ -9,12 +9,16 @@ import java.util.logging.Level;
import java.util.logging.Logger;
import org.bukkit.Bukkit;
import org.bukkit.Location;
+import org.bukkit.entity.Entity;
+import org.bukkit.entity.EntityType;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.event.block.BlockDamageEvent;
import org.bukkit.event.block.BlockPlaceEvent;
+import org.bukkit.event.entity.EntityDamageByEntityEvent;
+import org.bukkit.event.entity.EntityDamageEvent.DamageCause;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerRespawnEvent;
@@ -38,10 +42,8 @@ public class Jails extends AsyncStorageObjectHolder<com.earth2me.essentials.sett
{
enabled = true;
final PluginManager pluginManager = ess.getServer().getPluginManager();
- final JailBlockListener blockListener = new JailBlockListener();
- final JailPlayerListener playerListener = new JailPlayerListener();
+ final JailListener blockListener = new JailListener();
pluginManager.registerEvents(blockListener, ess);
- pluginManager.registerEvents(playerListener, ess);
}
@Override
@@ -179,7 +181,7 @@ public class Jails extends AsyncStorageObjectHolder<com.earth2me.essentials.sett
}
- private class JailBlockListener implements Listener
+ private class JailListener implements Listener
{
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
public void onBlockBreak(final BlockBreakEvent event)
@@ -210,11 +212,22 @@ public class Jails extends AsyncStorageObjectHolder<com.earth2me.essentials.sett
event.setCancelled(true);
}
}
- }
+ @EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
+ public void onEntityDamageByEntity(final EntityDamageByEntityEvent event)
+ {
+ if (event.getCause() != DamageCause.ENTITY_ATTACK || event.getEntity().getType() != EntityType.PLAYER)
+ {
+ return;
+ }
+ final Entity damager = event.getDamager();
+ final User user = ess.getUser(damager);
+ if (user.isJailed())
+ {
+ event.setCancelled(true);
+ }
+ }
- private class JailPlayerListener implements Listener
- {
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
public void onPlayerInteract(final PlayerInteractEvent event)
{