From 6ac32df219e6c00a404a3bec847ad87a9b699ad6 Mon Sep 17 00:00:00 2001 From: Thinkofdeath Date: Sun, 4 Jan 2015 23:25:31 +0000 Subject: Redirect execute through our command system and allow entities to be CommandSenders --- .../org/bukkit/craftbukkit/entity/CraftEntity.java | 99 ++++++++++++++++++++++ 1 file changed, 99 insertions(+) (limited to 'src') diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java index b7e9d8fd..dee0d4ef 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java @@ -1,6 +1,7 @@ package org.bukkit.craftbukkit.entity; import java.util.List; +import java.util.Set; import java.util.UUID; import net.minecraft.server.*; @@ -14,10 +15,28 @@ import org.bukkit.craftbukkit.CraftWorld; import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; import org.bukkit.metadata.MetadataValue; +import org.bukkit.permissions.PermissibleBase; +import org.bukkit.permissions.Permission; +import org.bukkit.permissions.PermissionAttachment; +import org.bukkit.permissions.PermissionAttachmentInfo; +import org.bukkit.permissions.ServerOperator; import org.bukkit.plugin.Plugin; import org.bukkit.util.Vector; public abstract class CraftEntity implements org.bukkit.entity.Entity { + private static final PermissibleBase perm = new PermissibleBase(new ServerOperator() { + + @Override + public boolean isOp() { + return false; + } + + @Override + public void setOp(boolean value) { + + } + }); + protected final CraftServer server; protected Entity entity; private EntityDamageEvent lastDamageEvent; @@ -436,4 +455,84 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity { public boolean isCustomNameVisible() { return getHandle().getCustomNameVisible(); } + + @Override + public void sendMessage(String message) { + + } + + @Override + public void sendMessage(String[] messages) { + + } + + @Override + public String getName() { + return getHandle().getName(); + } + + @Override + public boolean isPermissionSet(String name) { + return perm.isPermissionSet(name); + } + + @Override + public boolean isPermissionSet(Permission perm) { + return CraftEntity.perm.isPermissionSet(perm); + } + + @Override + public boolean hasPermission(String name) { + return perm.hasPermission(name); + } + + @Override + public boolean hasPermission(Permission perm) { + return this.perm.hasPermission(perm); + } + + @Override + public PermissionAttachment addAttachment(Plugin plugin, String name, boolean value) { + return perm.addAttachment(plugin, name, value); + } + + @Override + public PermissionAttachment addAttachment(Plugin plugin) { + return perm.addAttachment(plugin); + } + + @Override + public PermissionAttachment addAttachment(Plugin plugin, String name, boolean value, int ticks) { + return perm.addAttachment(plugin, name, value, ticks); + } + + @Override + public PermissionAttachment addAttachment(Plugin plugin, int ticks) { + return perm.addAttachment(plugin, ticks); + } + + @Override + public void removeAttachment(PermissionAttachment attachment) { + perm.removeAttachment(attachment); + } + + @Override + public void recalculatePermissions() { + perm.recalculatePermissions(); + } + + @Override + public Set getEffectivePermissions() { + return perm.getEffectivePermissions(); + } + + @Override + public boolean isOp() { + return perm.isOp(); + } + + @Override + public void setOp(boolean value) { + perm.setOp(value); + } } -- cgit v1.2.3