+ /** The Implements function specifies which methods a module should receive events for.
+ * The char* parameter passed to this function contains a set of true or false values
+ * (1 or 0) which indicate wether each function is implemented. You must use the Iimplementation
+ * enum (documented elsewhere on this page) to mark functions as active. For example, to
+ * receive events for OnUserJoin():
+ *
+ * Implements[I_OnUserJoin] = 1;
+ *
+ * @param The implement list
+ */
+ virtual void Implements(char* Implements);
+
+ /** Used to set the 'priority' of a module (e.g. when it is called in relation to other modules.
+ * Some modules prefer to be called before other modules, due to their design. For example, a
+ * module which is expected to operate on complete information would expect to be placed last, so
+ * that any other modules which wish to adjust that information would execute before it, to be sure
+ * its information is correct. You can change your module's priority by returning one of:
+ *
+ * PRIORITY_FIRST - To place your module first in the list
+ *
+ * PRIORITY_LAST - To place your module last in the list
+ *
+ * PRIORITY_DONTCARE - To leave your module as it is (this is the default value, if you do not implement this function)
+ *
+ * The result of Server::PriorityBefore() - To move your module before another named module
+ *
+ * The result of Server::PriorityLast() - To move your module after another named module
+ *
+ * For a good working example of this method call, please see src/modules/m_spanningtree.cpp
+ * and src/modules/m_hostchange.so which make use of it. It is highly recommended that unless
+ * your module has a real need to reorder its priority, it should not implement this function,
+ * as many modules changing their priorities can make the system redundant.
+ */
+ virtual Priority Prioritize();