diff --git a/src/org/yi/acru/bukkit/Lockette/Lockette.java b/src/org/yi/acru/bukkit/Lockette/Lockette.java index 74691ab..c3aab7d 100644 --- a/src/org/yi/acru/bukkit/Lockette/Lockette.java +++ b/src/org/yi/acru/bukkit/Lockette/Lockette.java @@ -40,6 +40,7 @@ public class Lockette extends PluginCore{ private static boolean registered = false; private final LocketteBlockListener blockListener = new LocketteBlockListener(this); private final LocketteEntityListener entityListener = new LocketteEntityListener(this); + private final LocketteInventoryListener inventoryListener = new LocketteInventoryListener(this); private final LockettePlayerListener playerListener = new LockettePlayerListener(this); private final LockettePrefixListener prefixListener = new LockettePrefixListener(this); private final LocketteWorldListener worldListener = new LocketteWorldListener(this); @@ -127,6 +128,7 @@ else if((build >= 685) && (build <= 703)){ if(!registered){ blockListener.registerEvents(); entityListener.registerEvents(); + inventoryListener.registerEvents(); playerListener.registerEvents(); prefixListener.registerEvents(); worldListener.registerEvents(); @@ -395,7 +397,7 @@ protected void loadStrings(boolean reload, String fileName){ // Load in the alternate sign strings. altPrivate = strings.getString("alternate-private-tag"); - if((altPrivate == null) || altPrivate.isEmpty() || (original && altPrivate.equals("Privé"))){ + if((altPrivate == null) || altPrivate.isEmpty() || (original && altPrivate.equals("Priv�"))){ altPrivate = "Private"; strings.set("alternate-private-tag", altPrivate); } @@ -418,7 +420,7 @@ protected void loadStrings(boolean reload, String fileName){ altEveryone = "["+altEveryone+"]"; altOperators = strings.getString("alternate-operators-tag"); - if((altOperators == null) || altOperators.isEmpty() || (original && altOperators.equals("Opérateurs"))){ + if((altOperators == null) || altOperators.isEmpty() || (original && altOperators.equals("Op�rateurs"))){ altOperators = "Operators"; strings.set("alternate-operators-tag", altOperators); stringChanged = true; diff --git a/src/org/yi/acru/bukkit/Lockette/LocketteInventoryListener.java b/src/org/yi/acru/bukkit/Lockette/LocketteInventoryListener.java new file mode 100644 index 0000000..51bcd12 --- /dev/null +++ b/src/org/yi/acru/bukkit/Lockette/LocketteInventoryListener.java @@ -0,0 +1,57 @@ +package org.yi.acru.bukkit.Lockette; + +import org.bukkit.block.BlockState; +import org.bukkit.block.DoubleChest; + +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.inventory.InventoryMoveItemEvent; + +import org.bukkit.inventory.InventoryHolder; + +import org.bukkit.plugin.PluginManager; + +public class LocketteInventoryListener implements Listener { + private static Lockette plugin; + + public LocketteInventoryListener(Lockette instance) { + plugin = instance; + } + + protected void registerEvents() { + + PluginManager pm = plugin.getServer().getPluginManager(); + + pm.registerEvents(this, plugin); + } + + //******************************************************************************************************************** + // Start of event section + + @EventHandler(priority = EventPriority.HIGHEST) + public void onInventoryMoveItem(InventoryMoveItemEvent event) { + InventoryHolder sourceHolder = event.getSource().getHolder(); + if (sourceHolder instanceof DoubleChest) { + // checking one side is sufficient + sourceHolder = ((DoubleChest)sourceHolder).getLeftSide(); + } + if (sourceHolder instanceof BlockState) { + if (Lockette.isProtected( ((BlockState)sourceHolder).getBlock() )) { + event.setCancelled(true); + return; + } + } + + InventoryHolder destHolder = event.getDestination().getHolder(); + if (destHolder instanceof DoubleChest) { + destHolder = ((DoubleChest)destHolder).getLeftSide(); + } + if (destHolder instanceof BlockState) { + if (Lockette.isProtected( ((BlockState)destHolder).getBlock() )) { + event.setCancelled(true); + return; + } + } + } +}