summaryrefslogtreecommitdiffstats
path: root/src/main
diff options
context:
space:
mode:
authorThinkofdeath <thinkofdeath@spigotmc.org>2014-12-12 10:33:54 +0000
committerThinkofdeath <thinkofdeath@spigotmc.org>2014-12-12 10:33:54 +0000
commit54888dfafbe296594d421301fc80227effc1a83d (patch)
treec3c9ff02a2bb13304c7a9321f9406674d732551f /src/main
parent81db41b4d2ae94938e78bc93c7a31d3f8ef1a7b8 (diff)
downloadcraftbukkit-54888dfafbe296594d421301fc80227effc1a83d.tar
craftbukkit-54888dfafbe296594d421301fc80227effc1a83d.tar.gz
craftbukkit-54888dfafbe296594d421301fc80227effc1a83d.tar.lz
craftbukkit-54888dfafbe296594d421301fc80227effc1a83d.tar.xz
craftbukkit-54888dfafbe296594d421301fc80227effc1a83d.zip
Wrap player's ICommandListener so that our permission system can handle permission
for vanilla commands
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/org/bukkit/craftbukkit/command/ListenerWrapper.java69
-rw-r--r--src/main/java/org/bukkit/craftbukkit/command/VanillaCommandWrapper.java2
2 files changed, 70 insertions, 1 deletions
diff --git a/src/main/java/org/bukkit/craftbukkit/command/ListenerWrapper.java b/src/main/java/org/bukkit/craftbukkit/command/ListenerWrapper.java
new file mode 100644
index 00000000..817312e9
--- /dev/null
+++ b/src/main/java/org/bukkit/craftbukkit/command/ListenerWrapper.java
@@ -0,0 +1,69 @@
+package org.bukkit.craftbukkit.command;
+
+import net.minecraft.server.BlockPosition;
+import net.minecraft.server.Entity;
+import net.minecraft.server.EnumCommandResult;
+import net.minecraft.server.IChatBaseComponent;
+import net.minecraft.server.ICommandListener;
+import net.minecraft.server.Vec3D;
+import net.minecraft.server.World;
+
+public class ListenerWrapper implements ICommandListener {
+
+ private final ICommandListener listener;
+
+ public ListenerWrapper(ICommandListener listener) {
+ this.listener = listener;
+ }
+
+ @Override
+ public String getName() {
+ return listener.getName();
+ }
+
+ @Override
+ public IChatBaseComponent getScoreboardDisplayName() {
+ return listener.getScoreboardDisplayName();
+ }
+
+ @Override
+ public void sendMessage(IChatBaseComponent icbc) {
+ listener.sendMessage(icbc);
+ }
+
+ @Override
+ public boolean a(int i, String string) {
+ return true; // Give access to all commands as we do our own perm check
+ }
+
+ @Override
+ public BlockPosition getChunkCoordinates() {
+ return listener.getChunkCoordinates();
+ }
+
+ @Override
+ public Vec3D d() {
+ return listener.d();
+ }
+
+ @Override
+ public World getWorld() {
+ return listener.getWorld();
+ }
+
+ @Override
+ public Entity f() {
+ return listener.f();
+ }
+
+ @Override
+ public boolean getSendCommandFeedback() {
+ return listener.getSendCommandFeedback();
+ }
+
+ @Override
+ public void a(EnumCommandResult ecr, int i) {
+ listener.a(ecr, i);
+ }
+
+}
diff --git a/src/main/java/org/bukkit/craftbukkit/command/VanillaCommandWrapper.java b/src/main/java/org/bukkit/craftbukkit/command/VanillaCommandWrapper.java
index 3ccbd775..1c88b4a9 100644
--- a/src/main/java/org/bukkit/craftbukkit/command/VanillaCommandWrapper.java
+++ b/src/main/java/org/bukkit/craftbukkit/command/VanillaCommandWrapper.java
@@ -127,7 +127,7 @@ public final class VanillaCommandWrapper extends VanillaCommand {
private ICommandListener getListener(CommandSender sender) {
if (sender instanceof Player) {
- return ((CraftPlayer) sender).getHandle();
+ return new ListenerWrapper(((CraftPlayer) sender).getHandle());
}
if (sender instanceof BlockCommandSender) {
return ((CraftBlockCommandSender) sender).getTileEntity();