@Override
  public void registerEvent(
      Class<? extends Event> event,
      Listener listener,
      EventPriority priority,
      EventExecutor executor,
      Plugin plugin) {

    delegate.registerEvent(event, listener, priority, getWrappedExecutor(executor), plugin);
  }
 @Override
 public Plugin[] getPlugins() {
   return delegate.getPlugins();
 }
 @Override
 public void registerInterface(Class<? extends PluginLoader> loader)
     throws IllegalArgumentException {
   delegate.registerInterface(loader);
 }
 @Override
 public void unsubscribeFromPermission(String permission, Permissible permissable) {
   delegate.unsubscribeFromPermission(permission, permissable);
 }
 @Override
 public void subscribeToPermission(String permission, Permissible permissable) {
   delegate.subscribeToPermission(permission, permissable);
 }
 @Override
 public void removePermission(String name) {
   delegate.removePermission(name);
 }
 @Override
 public void recalculatePermissionDefaults(Permission permission) {
   delegate.recalculatePermissionDefaults(permission);
 }
 @Override
 public Plugin loadPlugin(File file)
     throws InvalidPluginException, InvalidDescriptionException, UnknownDependencyException {
   return delegate.loadPlugin(file);
 }
 @Override
 public void enablePlugin(Plugin plugin) {
   delegate.enablePlugin(plugin);
 }
 @Override
 public void disablePlugins() {
   delegate.disablePlugins();
 }
 @Override
 public void disablePlugin(Plugin plugin) {
   delegate.disablePlugin(plugin);
 }
 @Override
 public void clearPlugins() {
   delegate.clearPlugins();
 }
 @Override
 public void callEvent(Event event) throws IllegalStateException {
   delegate.callEvent(event);
 }
 @Override
 public void addPermission(Permission perm) {
   delegate.addPermission(perm);
 }
 @Override
 public boolean isPluginEnabled(String name) {
   return delegate.isPluginEnabled(name);
 }
 @Override
 public boolean isPluginEnabled(Plugin plugin) {
   return delegate.isPluginEnabled(plugin);
 }
 @Override
 public Set<Permissible> getDefaultPermSubscriptions(boolean op) {
   return delegate.getDefaultPermSubscriptions(op);
 }
 @Override
 public Plugin[] loadPlugins(File directory) {
   return delegate.loadPlugins(directory);
 }
 @Override
 public Set<Permission> getDefaultPermissions(boolean op) {
   return delegate.getDefaultPermissions(op);
 }
 @Override
 public void removePermission(Permission perm) {
   delegate.removePermission(perm);
 }
 @Override
 public Permission getPermission(String name) {
   return delegate.getPermission(name);
 }
 @Override
 public void subscribeToDefaultPerms(boolean op, Permissible permissable) {
   delegate.subscribeToDefaultPerms(op, permissable);
 }
 @Override
 public Set<Permissible> getPermissionSubscriptions(String permission) {
   return delegate.getPermissionSubscriptions(permission);
 }
 @Override
 public void unsubscribeFromDefaultPerms(boolean op, Permissible permissable) {
   delegate.unsubscribeFromDefaultPerms(op, permissable);
 }
 @Override
 public Set<Permission> getPermissions() {
   return delegate.getPermissions();
 }
 @Override
 public boolean useTimings() {
   return delegate.useTimings();
 }
 @Override
 public Plugin getPlugin(String name) {
   return delegate.getPlugin(name);
 }