virtual ~Version() {}
};
-/** The Event class is a unicast message directed at all modules.
- * When the class is properly instantiated it may be sent to all modules
- * using the Send() method, which will trigger the OnEvent method in
- * all modules passing the object as its parameter.
- */
-class CoreExport Event : public classbase
-{
- public:
- /** This is a pointer to the sender of the message, which can be used to
- * directly trigger events, or to create a reply.
- */
- ModuleRef source;
- /** The event identifier.
- * This is arbitary text which should be used to distinguish
- * one type of event from another.
- */
- const std::string id;
-
- /** Create a new Event
- */
- Event(Module* src, const std::string &eventid);
- /** Send the Event.
- * The return result of an Event::Send() will always be NULL as
- * no replies are expected.
- */
- void Send();
-};
-
class CoreExport DataProvider : public ServiceProvider
{
public:
*/
enum Implementation
{
- I_BEGIN,
I_OnUserConnect, I_OnUserQuit, I_OnUserDisconnect, I_OnUserJoin, I_OnUserPart,
I_OnSendSnotice, I_OnUserPreJoin, I_OnUserPreKick, I_OnUserKick, I_OnOper, I_OnInfo, I_OnWhois,
I_OnUserPreInvite, I_OnUserInvite, I_OnUserPreMessage, I_OnUserPreNick,
I_OnUnloadModule, I_OnBackgroundTimer, I_OnPreCommand, I_OnCheckReady, I_OnCheckInvite,
I_OnRawMode, I_OnCheckKey, I_OnCheckLimit, I_OnCheckBan, I_OnCheckChannelBan, I_OnExtBanCheck,
I_OnStats, I_OnChangeLocalUserHost, I_OnPreTopicChange,
- I_OnPostTopicChange, I_OnEvent, I_OnGlobalOper, I_OnPostConnect,
+ I_OnPostTopicChange, I_OnPostConnect,
I_OnChangeLocalUserGECOS, I_OnUserRegister, I_OnChannelPreDelete, I_OnChannelDelete,
I_OnPostOper, I_OnSyncNetwork, I_OnSetAway, I_OnPostCommand, I_OnPostJoin,
I_OnWhoisLine, I_OnBuildNeighborList, I_OnGarbageCollect, I_OnSetConnectClass,
*/
virtual void OnPostTopicChange(User* user, Channel* chan, const std::string &topic);
- /** Called whenever an Event class is sent to all modules by another module.
- * You should *always* check the value of Event::id to determine the event type.
- * @param event The Event class being received
- */
- virtual void OnEvent(Event& event);
-
/** Called whenever a password check is to be made. Replaces the old OldOperCompare API.
* The password field (from the config file) is in 'password' and is to be compared against
* 'input'. This method allows for encryption of passwords (oper, connect:allow, die/restart, etc).
*/
virtual ModResult OnPassCompare(Extensible* ex, const std::string &password, const std::string &input, const std::string& hashtype);
- /** Called whenever a user is given usermode +o, anywhere on the network.
- * You cannot override this and prevent it from happening as it is already happened and
- * such a task must be performed by another server. You can however bounce modes by sending
- * servermodes out to reverse mode changes.
- * @param user The user who is opering
- */
- virtual void OnGlobalOper(User* user);
-
/** Called after a user has fully connected and all modules have executed OnUserConnect
* This event is informational only. You should not change any user information in this
* event. To do so, use the OnUserConnect method to change the state of local users.
*/
bool SetPriority(Module* mod, Implementation i, Priority s, Module* which = NULL);
- /** Backwards compat interface */
- inline bool SetPriority(Module* mod, Implementation i, Priority s, Module** dptr)
- {
- return SetPriority(mod, i, s, *dptr);
- }
-
/** Change the priority of all events in a module.
* @param mod The module to set the priority of
* @param s The priority of all events in the module.