I am attempting to process a command that is being run via /execute (vanilla command that makes targeted entities run another command with inherited permissions) from nearby entities (including players, mobs and arrows). It does not work in any fashion at all, for no clear reason. public boolean onCommand(CommandSender sender, Command cmd, String label, String args) ..... logger.info(sender.getName()); if(sender instanceof Player) logger.info("Player"); if(sender instanceof Entity) logger.info("Entity"); if(sender instanceof BlockCommandSender) logger.info("block"); if(sender instanceof LivingEntity) logger.info("Living"); if(sender instanceof ConsoleCommandSender) logger.info("ccs"); The following code return the sender name and applicable types when run directly by a player or console, but if run on a player via /execute @p, all if( instanceof ) tests fail and only the name is returned. The same behavior results from making an entity run the command. The issue appears to be that commands run via /execute cannot be cast into Entity or Player and are not recognized as such, but the same command run directly is. I would prefer an explanation of what is going on, if anyone has one, not questions about why i would even want to do this (easy interaction with commandblocks and other plugins), and suggestions to not even try.