summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKHobbits <rob@khobbits.co.uk>2012-08-21 20:02:20 +0100
committerKHobbits <rob@khobbits.co.uk>2012-08-21 20:44:09 +0100
commite324a21b60075a902e4262ed33735a47e346a773 (patch)
treeb055fc035defd38a826f613860d15b7febc10428
parentb9cfd44588ed35d061614d65cb34be5ba9a502a1 (diff)
downloadEssentials-e324a21b60075a902e4262ed33735a47e346a773.tar
Essentials-e324a21b60075a902e4262ed33735a47e346a773.tar.gz
Essentials-e324a21b60075a902e4262ed33735a47e346a773.tar.lz
Essentials-e324a21b60075a902e4262ed33735a47e346a773.tar.xz
Essentials-e324a21b60075a902e4262ed33735a47e346a773.zip
New command: /enderchest [player] (alias /endersee and /echest)
This command lets you look inside your or another players enderchest New Permissions: essentials.enderchest - Access to the command essentials.enderchest.others - Lets you look at other enderchests essentials.enderchest.modify - Lets you modify other enderchests
-rw-r--r--Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java20
-rw-r--r--Essentials/src/com/earth2me/essentials/User.java12
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandenderchest.java30
-rw-r--r--Essentials/src/com/earth2me/essentials/commands/Commandinvsee.java7
-rw-r--r--Essentials/src/plugin.yml4
5 files changed, 67 insertions, 6 deletions
diff --git a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java
index 2fe03ebce..7468f0771 100644
--- a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java
+++ b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java
@@ -12,6 +12,7 @@ import java.util.List;
import java.util.Locale;
import java.util.logging.Level;
import java.util.logging.Logger;
+import net.minecraft.server.InventoryEnderChest;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.entity.HumanEntity;
@@ -25,6 +26,7 @@ import org.bukkit.event.inventory.InventoryType;
import org.bukkit.event.player.PlayerLoginEvent.Result;
import org.bukkit.event.player.*;
import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
+import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.InventoryHolder;
import org.bukkit.inventory.ItemStack;
@@ -433,12 +435,15 @@ public class EssentialsPlayerListener implements Listener
@EventHandler(priority = EventPriority.LOWEST)
public void onInventoryClickEvent(final InventoryClickEvent event)
{
+ ess.getLogger().info("Detected invent click");
if (event.getView().getTopInventory().getType() == InventoryType.PLAYER)
{
+ ess.getLogger().info("This is a player/player inventory click");
final User user = ess.getUser(event.getWhoClicked());
final InventoryHolder invHolder = event.getView().getTopInventory().getHolder();
if (invHolder != null && invHolder instanceof HumanEntity)
{
+ ess.getLogger().info("Confirmed the top inventory belongs to a valid human.");
final User invOwner = ess.getUser((HumanEntity)invHolder);
if (user.isInvSee() && (!user.isAuthorized("essentials.invsee.modify")
|| invOwner.isAuthorized("essentials.invsee.preventmodify")
@@ -448,6 +453,14 @@ public class EssentialsPlayerListener implements Listener
}
}
}
+ else if (event.getView().getTopInventory().getType() == InventoryType.ENDER_CHEST)
+ {
+ final User user = ess.getUser(event.getWhoClicked());
+ if (user.isEnderSee() && (!user.isAuthorized("essentials.enderchest.modify")))
+ {
+ event.setCancelled(true);
+ }
+ }
}
@EventHandler(priority = EventPriority.MONITOR)
@@ -458,5 +471,10 @@ public class EssentialsPlayerListener implements Listener
final User user = ess.getUser(event.getPlayer());
user.setInvSee(false);
}
+ else if (event.getView().getTopInventory().getType() == InventoryType.ENDER_CHEST)
+ {
+ final User user = ess.getUser(event.getPlayer());
+ user.setEnderSee(false);
+ }
}
-}
+} \ No newline at end of file
diff --git a/Essentials/src/com/earth2me/essentials/User.java b/Essentials/src/com/earth2me/essentials/User.java
index 5b6eff1fb..e4551f111 100644
--- a/Essentials/src/com/earth2me/essentials/User.java
+++ b/Essentials/src/com/earth2me/essentials/User.java
@@ -27,6 +27,7 @@ public class User extends UserData implements Comparable<User>, IReplyTo, IUser
private boolean hidden = false;
private transient Location afkPosition = null;
private boolean invSee = false;
+ private boolean enderSee = false;
private static final Logger logger = Logger.getLogger("Minecraft");
User(final Player base, final IEssentials ess)
@@ -612,6 +613,17 @@ public class User extends UserData implements Comparable<User>, IReplyTo, IUser
{
invSee = set;
}
+
+ public boolean isEnderSee()
+ {
+ return enderSee;
+ }
+
+ public void setEnderSee(final boolean set)
+ {
+ enderSee = set;
+ }
+
private transient long teleportInvulnerabilityTimestamp = 0;
public void enableInvulnerabilityAfterTeleport()
diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandenderchest.java b/Essentials/src/com/earth2me/essentials/commands/Commandenderchest.java
new file mode 100644
index 000000000..bd707d392
--- /dev/null
+++ b/Essentials/src/com/earth2me/essentials/commands/Commandenderchest.java
@@ -0,0 +1,30 @@
+package com.earth2me.essentials.commands;
+
+import com.earth2me.essentials.User;
+import org.bukkit.Server;
+
+
+public class Commandenderchest extends EssentialsCommand
+{
+ public Commandenderchest()
+ {
+ super("enderchest");
+ }
+
+ @Override
+ protected void run(final Server server, final User user, final String commandLabel, final String[] args) throws Exception
+ {
+ if (args.length > 0 && user.isAuthorized("essentials.enderchest.others"))
+ {
+ final User invUser = getPlayer(server, args, 0);
+ user.openInventory(invUser.getEnderChest());
+ user.setEnderSee(true);
+ }
+ else
+ {
+ user.openInventory(user.getEnderChest());
+ user.setEnderSee(false);
+ }
+
+ }
+}
diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandinvsee.java b/Essentials/src/com/earth2me/essentials/commands/Commandinvsee.java
index a4a659e97..3964dbe67 100644
--- a/Essentials/src/com/earth2me/essentials/commands/Commandinvsee.java
+++ b/Essentials/src/com/earth2me/essentials/commands/Commandinvsee.java
@@ -1,10 +1,7 @@
package com.earth2me.essentials.commands;
-import static com.earth2me.essentials.I18n._;
import com.earth2me.essentials.User;
-import java.util.Arrays;
import org.bukkit.Server;
-import org.bukkit.inventory.ItemStack;
public class Commandinvsee extends EssentialsCommand
@@ -21,8 +18,8 @@ public class Commandinvsee extends EssentialsCommand
{
throw new NotEnoughArgumentsException();
}
- final User invUser = getPlayer(server, args, 0);
+ final User invUser = getPlayer(server, args, 0);
user.setInvSee(true);
- user.openInventory(invUser.getInventory());
+ user.openInventory(invUser.getInventory());
}
}
diff --git a/Essentials/src/plugin.yml b/Essentials/src/plugin.yml
index 1ef0a0aee..aa16a80f1 100644
--- a/Essentials/src/plugin.yml
+++ b/Essentials/src/plugin.yml
@@ -87,6 +87,10 @@ commands:
description: Enchants the item the user is holding.
usage: /<command> <enchantmentname> [level]
aliases: [enchantment,eenchant,eenchantment]
+ enderchest:
+ description: Lets you see inside an enderchest.
+ usage: /<command> [player]
+ aliases: [endersee,echest,eenderchest,eendersee,eechest]
essentials:
description: Reloads essentials.
usage: /<command>