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.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)

View File

@ -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());
}
}