set_module_filter

Syntax

native set_module_filter(const handler[]);

Description

Sets a module/library filter, letting the plugin intercept and handle an
automatic module requirement.

Note

This has to be used inside the plugin_native() forward, otherwise it
has no effect.

Note

This is useful for creating plugins that can dynamically decide which
modules or features to use at runtime, often necessary for cross-mod
plugins. It allows to deploy a single version of the plugin instead
of compiling multiple versions for each use-case.

Note

For a list of possible libtypes see the LibType enum in amxconst.inc

Note

The handler will be called in the following manner:

public module_filter(const library[], LibType:type)

  library     - Shortname of library or class that is required
  libtrype    - Type of requirement being checked (library/module or class)

Note

The handler should return PLUGIN_CONTINUE to let the error through the
filter (which will result in the plugin failing to load), or
PLUGIN_HANDLED to imply that load can continue without the module.

Note

Errors occuring inside the handler will not be filtered and cause the
plugin to fail load as if the handler returned PLUGIN_CONTINUE.

Return

0 on success, -1 if filtering is not available, -2 if handler
could not be found.