In order to create a module you must start by defining your module class and tell Wollabot to register it. This is done like this:
class MyModule extends Wollabot_Module { function MyModule () { // Constructor for your module } } $wollabot->register_module("MyModule");
This is pretty much the most simple module you can make. It does completely nothing. In order to add some functionality, we need to use a bind-method. We have quite a few bind-methods, but in our example we will use bind_prefix() for the sake of simplicity. The methods bind_prefix() binds a user-defined method in the current class to a given prefix in a IRC message (either channel, query or notice). It takes two arguments: method and prefix. Let us start out by making a greet function, that greet everyone who writes 'hello' in your channel.
class MyModule extends Wollabot_Module { function MyModule () { $this->bind_prefix('say_hello', 'hello'); } function say_hello ($data) { $this->send_privmsg($data['channel'], "Hello ".$data['nick']); } } $wollabot->register_module("MyModule");
Here we see how the method say_hello() take exactly one argument, being an array of data from the IRC message that triggered it. The data array consists of the following elements:
$data['from'] => The user who sent the message (in the form of nick!user@host $data['nick'] => The nickname of the user who sent the message $data['ident'] => The ident of the user who sent the message (username) $data['host'] => The host of the user who sent the message $data['channel'] => The channel in which the message was written (if given) $data['message'] => The actual message $data['message_exploded'] => The actual mesasge exploded by space $data['type'] => The message type - refer to WOLLABOT_TYPE_* constants $data['raw'] => The raw message directly from socket $data['raw_exploded'] => The raw message directly from socket exploded by space