Annotation Interface PluginDescriptor


@Retention(RUNTIME) @Target(TYPE) @Documented public @interface PluginDescriptor
Annotation that provides metadata for a Storm plugin.

Every plugin class must be annotated with @PluginDescriptor to be recognized and loaded by the plugin system. This annotation provides essential information about the plugin including its name, description, and behavior settings.

Example usage:


 @PluginDescriptor(
     name = "Auto Fisher",
     description = "Automatically catches fish at various locations",
     tags = {"fishing", "skilling", "automation"},
     enabledByDefault = false
 )
 public class AutoFisherPlugin extends Plugin {
     // Plugin implementation
 }
 

See Also:
  • Required Element Summary

    Required Elements
    Modifier and Type
    Required Element
    Description
    The display name of the plugin.
  • Optional Element Summary

    Optional Elements
    Modifier and Type
    Optional Element
    Description
    Internal name used for configuration storage.
    Names of plugins that conflict with this plugin.
    A short, one-line summary of the plugin.
    boolean
    Whether the plugin should be enabled by default on first run.
    boolean
    Whether the plugin should be hidden from the plugin list.
    Keywords used when searching for plugins.
  • Element Details

    • name

      String name
      The display name of the plugin.

      This name is shown to users in the plugin list and configuration panel. It should be descriptive and concise.

      Returns:
      the plugin's display name
    • configName

      String configName
      Internal name used for configuration storage.

      If not specified, the plugin name will be used. This should be a stable identifier that doesn't change between versions to preserve user settings.

      Returns:
      the internal configuration name, or empty string to use the plugin name
      Default:
      ""
    • description

      String description
      A short, one-line summary of the plugin.

      This description is displayed in the plugin list to help users understand what the plugin does.

      Returns:
      a brief description of the plugin's functionality
      Default:
      ""
    • tags

      String[] tags
      Keywords used when searching for plugins.

      Tags help users find plugins through the search functionality. Each tag should be lowercase and contain no spaces.

      Example: tags = {"combat", "pvm", "boss"}

      Returns:
      an array of search tags
      Default:
      {}
    • conflicts

      String[] conflicts
      Names of plugins that conflict with this plugin.

      When this plugin is enabled, any plugins whose name or conflicts value matches entries in this list will be automatically disabled. Use this to prevent incompatible plugins from running simultaneously.

      Example: conflicts = {"Other Combat Plugin", "Similar Feature"}

      Returns:
      an array of conflicting plugin names
      Default:
      {}
    • hidden

      boolean hidden
      Whether the plugin should be hidden from the plugin list.

      Hidden plugins are not shown to users but can still be managed programmatically. Useful for internal or utility plugins.

      Returns:
      true if the plugin should be hidden, false otherwise (default)
      Default:
      false
    • enabledByDefault

      boolean enabledByDefault
      Whether the plugin should be enabled by default on first run.

      Note: This only works for core plugins bundled with Storm. SDN and external plugins will always start disabled regardless of this setting.

      Returns:
      true if the plugin should be enabled by default, false otherwise (default)
      Default:
      false