docs: @EventHandler("action")
      private void onAction(PluginEvent event) {
          PluginException exception = null;
          PluginAction action = event.getAction();
          boolean debug = log.isDebugEnabled();
  
          if (pluginEventListeners1 != null) {
              for (IPluginEvent listener : new ArrayList<>(pluginEventListeners1)) {
                  try {
                      if (debug) {
                          log.debug("Invoking IPluginEvent.on" + WordUtils.capitalizeFully(action.name()) + " for listener "
                                  + listener);
                      }
  
                      switch (action) {
                          case LOAD:
                              listener.onLoad(this);
                              continue;
  
                          case UNLOAD:
                              listener.onUnload();
                              continue;
  
                          case ACTIVATE:
                              listener.onActivate();
                              continue;
  
                          case INACTIVATE:
                              listener.onInactivate();
                              continue;
                      }
                  } catch (Throwable e) {
                      exception = createChainedException(action.name(), e, exception);
                  }
              }
          }
  
          if (pluginEventListeners2 != null) {
              for (IPluginEventListener listener : new ArrayList<>(pluginEventListeners2)) {
                  try {
                      if (debug) {
                          log.debug("Delivering " + action.name() + " event to IPluginEventListener listener " + listener);
                      }
                      listener.onPluginEvent(event);
                  } catch (Throwable e) {
                      exception = createChainedException(action.name(), e, exception);
                  }
              }
          }
  
          if (action == PluginAction.LOAD) {
              doAfterLoad();
          }
  
          if (exception != null) {
              throw exception;
          }
      }