From 555bb76428ae513f733f9d34b084b38d745b327d Mon Sep 17 00:00:00 2001 From: KHobbits Date: Tue, 1 Jan 2013 18:39:23 +0000 Subject: [PATCH] Cleanup --- .../essentials/EssentialsPlayerListener.java | 33 +++++++++++++++---- .../essentials/commands/Commandinvsee.java | 17 +++++++++- 2 files changed, 42 insertions(+), 8 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java index d06b30aee..9a309ea6c 100644 --- a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java +++ b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java @@ -26,6 +26,7 @@ import org.bukkit.event.inventory.InventoryType; import org.bukkit.event.player.*; import org.bukkit.event.player.PlayerLoginEvent.Result; import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; +import org.bukkit.inventory.Inventory; import org.bukkit.inventory.InventoryHolder; import org.bukkit.inventory.ItemStack; @@ -528,10 +529,13 @@ public class EssentialsPlayerListener implements Listener @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) public void onInventoryClickEvent(final InventoryClickEvent event) { - if (event.getView().getTopInventory().getType() == InventoryType.PLAYER) + final Inventory top = event.getView().getTopInventory(); + final InventoryType type = top.getType(); + + if (type == InventoryType.PLAYER) { final User user = ess.getUser(event.getWhoClicked()); - final InventoryHolder invHolder = event.getView().getTopInventory().getHolder(); + final InventoryHolder invHolder = top.getHolder(); if (invHolder != null && invHolder instanceof HumanEntity) { final User invOwner = ess.getUser((HumanEntity)invHolder); @@ -543,7 +547,7 @@ public class EssentialsPlayerListener implements Listener } } } - else if (event.getView().getTopInventory().getType() == InventoryType.ENDER_CHEST) + else if (type == InventoryType.ENDER_CHEST) { final User user = ess.getUser(event.getWhoClicked()); if (user.isEnderSee() && (!user.isAuthorized("essentials.enderchest.modify"))) @@ -551,7 +555,7 @@ public class EssentialsPlayerListener implements Listener event.setCancelled(true); } } - else if (event.getView().getTopInventory().getType() == InventoryType.WORKBENCH) + else if (type == InventoryType.WORKBENCH) { User user = ess.getUser(event.getWhoClicked()); if (user.isRecipeSee()) @@ -559,22 +563,32 @@ public class EssentialsPlayerListener implements Listener event.setCancelled(true); } } + else if (type == InventoryType.CHEST && top.getSize() == 9) + { + User user = ess.getUser(event.getWhoClicked()); + if (user.isInvSee()) + { + event.setCancelled(true); + } + } } @EventHandler(priority = EventPriority.MONITOR) public void onInventoryCloseEvent(final InventoryCloseEvent event) { - if (event.getView().getTopInventory().getType() == InventoryType.PLAYER) + final Inventory top = event.getView().getTopInventory(); + final InventoryType type = top.getType(); + if (type == InventoryType.PLAYER) { final User user = ess.getUser(event.getPlayer()); user.setInvSee(false); } - else if (event.getView().getTopInventory().getType() == InventoryType.ENDER_CHEST) + else if (type == InventoryType.ENDER_CHEST) { final User user = ess.getUser(event.getPlayer()); user.setEnderSee(false); } - if (event.getView().getTopInventory().getType() == InventoryType.WORKBENCH) + else if (type == InventoryType.WORKBENCH) { final User user = ess.getUser(event.getPlayer()); if (user.isRecipeSee()) @@ -583,6 +597,11 @@ public class EssentialsPlayerListener implements Listener event.getView().getTopInventory().clear(); } } + else if (type == InventoryType.CHEST && top.getSize() == 9) + { + final User user = ess.getUser(event.getPlayer()); + user.setInvSee(false); + } } @EventHandler(priority = EventPriority.LOW, ignoreCancelled = true) diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandinvsee.java b/Essentials/src/com/earth2me/essentials/commands/Commandinvsee.java index 3964dbe67..29f69c22a 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandinvsee.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandinvsee.java @@ -2,6 +2,7 @@ package com.earth2me.essentials.commands; import com.earth2me.essentials.User; import org.bukkit.Server; +import org.bukkit.inventory.Inventory; public class Commandinvsee extends EssentialsCommand @@ -10,6 +11,8 @@ public class Commandinvsee extends EssentialsCommand { super("invsee"); } + + //This method has a hidden param, which if given will display the armour slots. #easteregg @Override protected void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception @@ -18,8 +21,20 @@ public class Commandinvsee extends EssentialsCommand { throw new NotEnoughArgumentsException(); } + final User invUser = getPlayer(server, args, 0); + Inventory inv; + + if (args.length > 1) + { + inv = server.createInventory(user, 9, "Equipped"); + inv.setContents(invUser.getInventory().getArmorContents()); + } + else + { + inv = invUser.getInventory(); + } + user.openInventory(inv); user.setInvSee(true); - user.openInventory(invUser.getInventory()); } }