ibravo – Interfaces¶
The ibravo module holds the interfaces required to implement plugins and hooks.
Interface Bases¶
These are the base interface classes for Bravo. Plugin developers probably will not inherit from these; they are used purely to express common plugin functionality.
- class bravo.ibravo.IBravoPlugin[source]¶
Bases: zope.interface.Interface
Interface for plugins.
This interface stores common metadata used during plugin discovery.
- class bravo.ibravo.ISortedPlugin[source]¶
Bases: bravo.ibravo.IBravoPlugin
Parent interface for sorted plugins.
Sorted plugins have an innate and automatic ordering inside lists thanks to the ability to advertise their dependencies.
Plugins¶
- class bravo.ibravo.IAutomaton[source]¶
Bases: bravo.ibravo.IBravoPlugin
An automaton.
Automatons are given blocks from chunks which interest them, and may do processing on those blocks.
- class bravo.ibravo.IChatCommand[source]¶
Bases: bravo.ibravo.ICommand
Interface for chat commands.
Chat commands are invoked from the chat inside clients, so they are always called by a specific client.
This interface is specifically designed to exist comfortably side-by-side with IConsoleCommand.
- class bravo.ibravo.IConsoleCommand[source]¶
Bases: bravo.ibravo.ICommand
Interface for console commands.
Console commands are invoked from a console or some other location with two defining attributes: Access restricted to superusers, and no user issuing the command. As such, no access control list applies to them, but they must be given usernames to operate on explicitly.
- class bravo.ibravo.IRecipe[source]¶
Bases: bravo.ibravo.IBravoPlugin
A description for creating materials from other materials.
- class bravo.ibravo.ISeason[source]¶
Bases: bravo.ibravo.IBravoPlugin
Seasons are transformational stages run during certain days to emulate an environment.
- class bravo.ibravo.ISerializer[source]¶
Bases: bravo.ibravo.IBravoPlugin
Class that understands how to serialize several different kinds of objects to and from disk-friendly formats.
Implementors of this interface are expected to provide a uniform implementation of their serialization technique.
- class bravo.ibravo.ITerrainGenerator[source]¶
Bases: bravo.ibravo.ISortedPlugin
Interface for terrain generators.
- class bravo.ibravo.IWorldResource[source]¶
Bases: bravo.ibravo.IBravoPlugin, twisted.web.resource.IResource
Interface for a world specific web resource.
Hooks¶
- class bravo.ibravo.IPreBuildHook[source]¶
Bases: bravo.ibravo.ISortedPlugin
Hook for actions to be taken before a block is placed.
- class bravo.ibravo.IPostBuildHook[source]¶
Bases: bravo.ibravo.ISortedPlugin
Hook for actions to be taken after a block is placed.
- class bravo.ibravo.IDigHook[source]¶
Bases: bravo.ibravo.ISortedPlugin
Hook for actions to be taken after a block is dug up.
- class bravo.ibravo.ISignHook[source]¶
Bases: bravo.ibravo.ISortedPlugin
Hook for actions to be taken after a sign is updated.
This hook fires both on sign creation and sign editing.
- class bravo.ibravo.IUseHook[source]¶
Bases: bravo.ibravo.ISortedPlugin
Hook for actions to be taken when a player interacts with an entity.
Each plugin needs to specify a list of entity types it is interested in in advance, and it will only be called for those.