This commit is contained in:
KHobbits 2013-01-01 18:39:23 +00:00
parent 5c9d3c6b1a
commit 555bb76428
2 changed files with 42 additions and 8 deletions

View file

@ -26,6 +26,7 @@ import org.bukkit.event.inventory.InventoryType;
import org.bukkit.event.player.*; import org.bukkit.event.player.*;
import org.bukkit.event.player.PlayerLoginEvent.Result; import org.bukkit.event.player.PlayerLoginEvent.Result;
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.InventoryHolder; import org.bukkit.inventory.InventoryHolder;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
@ -528,10 +529,13 @@ public class EssentialsPlayerListener implements Listener
@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
public void onInventoryClickEvent(final InventoryClickEvent event) 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 User user = ess.getUser(event.getWhoClicked());
final InventoryHolder invHolder = event.getView().getTopInventory().getHolder(); final InventoryHolder invHolder = top.getHolder();
if (invHolder != null && invHolder instanceof HumanEntity) if (invHolder != null && invHolder instanceof HumanEntity)
{ {
final User invOwner = ess.getUser((HumanEntity)invHolder); 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()); final User user = ess.getUser(event.getWhoClicked());
if (user.isEnderSee() && (!user.isAuthorized("essentials.enderchest.modify"))) if (user.isEnderSee() && (!user.isAuthorized("essentials.enderchest.modify")))
@ -551,7 +555,7 @@ public class EssentialsPlayerListener implements Listener
event.setCancelled(true); event.setCancelled(true);
} }
} }
else if (event.getView().getTopInventory().getType() == InventoryType.WORKBENCH) else if (type == InventoryType.WORKBENCH)
{ {
User user = ess.getUser(event.getWhoClicked()); User user = ess.getUser(event.getWhoClicked());
if (user.isRecipeSee()) if (user.isRecipeSee())
@ -559,22 +563,32 @@ public class EssentialsPlayerListener implements Listener
event.setCancelled(true); 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) @EventHandler(priority = EventPriority.MONITOR)
public void onInventoryCloseEvent(final InventoryCloseEvent event) 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()); final User user = ess.getUser(event.getPlayer());
user.setInvSee(false); 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()); final User user = ess.getUser(event.getPlayer());
user.setEnderSee(false); user.setEnderSee(false);
} }
if (event.getView().getTopInventory().getType() == InventoryType.WORKBENCH) else if (type == InventoryType.WORKBENCH)
{ {
final User user = ess.getUser(event.getPlayer()); final User user = ess.getUser(event.getPlayer());
if (user.isRecipeSee()) if (user.isRecipeSee())
@ -583,6 +597,11 @@ public class EssentialsPlayerListener implements Listener
event.getView().getTopInventory().clear(); 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) @EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)

View file

@ -2,6 +2,7 @@ package com.earth2me.essentials.commands;
import com.earth2me.essentials.User; import com.earth2me.essentials.User;
import org.bukkit.Server; import org.bukkit.Server;
import org.bukkit.inventory.Inventory;
public class Commandinvsee extends EssentialsCommand public class Commandinvsee extends EssentialsCommand
@ -11,6 +12,8 @@ public class Commandinvsee extends EssentialsCommand
super("invsee"); super("invsee");
} }
//This method has a hidden param, which if given will display the armour slots. #easteregg
@Override @Override
protected void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception 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(); throw new NotEnoughArgumentsException();
} }
final User invUser = getPlayer(server, args, 0); 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.setInvSee(true);
user.openInventory(invUser.getInventory());
} }
} }