From c6a403c7b53d201ad1c6c7bdc98dd4495ad5ea82 Mon Sep 17 00:00:00 2001 From: Grafe Date: Fri, 8 Feb 2013 16:40:14 +0100 Subject: [PATCH] Fixed hangings Signed-off-by: Grafe --- src/com/dre/dungeonsxl/P.java | 28 +++++++++++-------- .../dungeonsxl/listener/HangingListener.java | 18 ++++++++++++ 2 files changed, 34 insertions(+), 12 deletions(-) create mode 100644 src/com/dre/dungeonsxl/listener/HangingListener.java diff --git a/src/com/dre/dungeonsxl/P.java b/src/com/dre/dungeonsxl/P.java index 298027c1..02af68ac 100644 --- a/src/com/dre/dungeonsxl/P.java +++ b/src/com/dre/dungeonsxl/P.java @@ -36,6 +36,7 @@ import com.dre.dungeonsxl.game.MobSpawner; import com.dre.dungeonsxl.listener.BlockListener; import com.dre.dungeonsxl.listener.CommandListener; import com.dre.dungeonsxl.listener.EntityListener; +import com.dre.dungeonsxl.listener.HangingListener; import com.dre.dungeonsxl.listener.PlayerListener; import com.dre.dungeonsxl.listener.WorldListener; @@ -43,10 +44,11 @@ public class P extends JavaPlugin{ public static P p; //Listener - private static Listener entitylistener; - private static Listener playerlistener; - private static Listener blocklistener; - private static Listener worldlistener; + private static Listener entityListener; + private static Listener playerListener; + private static Listener blockListener; + private static Listener worldListener; + private static Listener hangingListener; //Main Config Reader public MainConfig mainConfig; @@ -86,15 +88,17 @@ public class P extends JavaPlugin{ this.setupPermissions(); //Listener - entitylistener = new EntityListener(); - playerlistener = new PlayerListener(); - blocklistener = new BlockListener(); - worldlistener = new WorldListener(); + entityListener = new EntityListener(); + playerListener = new PlayerListener(); + blockListener = new BlockListener(); + worldListener = new WorldListener(); + hangingListener = new HangingListener(); - Bukkit.getServer().getPluginManager().registerEvents(entitylistener,this); - Bukkit.getServer().getPluginManager().registerEvents(playerlistener,this); - Bukkit.getServer().getPluginManager().registerEvents(blocklistener,this); - Bukkit.getServer().getPluginManager().registerEvents(worldlistener,this); + Bukkit.getServer().getPluginManager().registerEvents(entityListener,this); + Bukkit.getServer().getPluginManager().registerEvents(playerListener,this); + Bukkit.getServer().getPluginManager().registerEvents(blockListener,this); + Bukkit.getServer().getPluginManager().registerEvents(worldListener,this); + Bukkit.getServer().getPluginManager().registerEvents(hangingListener,this); //Load All this.loadAll(); diff --git a/src/com/dre/dungeonsxl/listener/HangingListener.java b/src/com/dre/dungeonsxl/listener/HangingListener.java new file mode 100644 index 00000000..e884f357 --- /dev/null +++ b/src/com/dre/dungeonsxl/listener/HangingListener.java @@ -0,0 +1,18 @@ +package com.dre.dungeonsxl.listener; + +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.hanging.HangingBreakByEntityEvent; + +import com.dre.dungeonsxl.game.GameWorld; + +public class HangingListener implements Listener{ + + @EventHandler + public void onHangingBreakByEntity(HangingBreakByEntityEvent event){ + GameWorld gworld = GameWorld.get(event.getEntity().getWorld()); + if(gworld!=null){ + event.setCancelled(true); + } + } +}