* Added source link for edit on github * Updated formatting issues * Updated formatting issues * Updated formatting issues
3.6 KiB
source: Extensions/IRC-Bot-Extensions.md
Quick Guide
Okay this is a very quick walk-through in writing own commands
for the IRC-Bot.
First of all, create a file in includes/ircbot
, the file-name should be in this format: command.inc.php
.
When editing the file, do not open nor close PHP-tags.
Any variable you assign will be discarded as soon as your command returns.
Some variables, specially all listed under $this->
, have special meanings or effects.
Before a command is executed, the IRC-Bot ensures that the MySQL-Socket is working, that $this->user
points to the right user and that the user is authenticated.
Below you will find a table with related functions and attributes.
You can chain-load any built-in command by calling $this->_command("My Parameters")
.
You cannot chain-load external commands.
To enable your command, edit your config.php
and add something like this:
...
$config['irc_external'][] = "mycommand";
...
See: Example
Functions and Attributes
... that are accessible from within an extension
Functions
Function( (Type) $Variable [= Default] [,...] ) | Returns | Description |
---|---|---|
$this->getChan( ) |
String |
Returns channel of current event. |
$this->getData( (boolean) $Block = false ) |
String/Boolean |
Returns a line from the IRC-Buffer if it's not matched against any other command . If $Block is true , wait until a suitable line is returned. |
$this->getUser( ) |
String |
Returns nick of current user. Not to confuse with $this->user ! |
$this->get_user( ) |
Array |
See $this->user in Attributes. |
$this->irc_raw( (string) $Protocol ) |
Boolean |
Sends raw IRC-Protocol. |
$this->isAuthd( ) |
Boolean |
true if the user is authenticated. |
$this->joinChan( (string) $Channel ) |
Boolean |
Joins given $Channel . |
$this->log( (string) $Message ) |
Boolean |
Logs given $Message into STDOUT . |
$this->read( (string) $Buffer ) |
String/Boolean |
Returns a line from given $Buffer or false if there's nothing suitable inside the Buffer. Please use $this->getData() for handler-safe data retrieval. |
$this->respond( (string) $Message ) |
Boolean |
Responds to the request auto-detecting channel or private message. |
Attributes
Attribute | Type | Description |
---|---|---|
$params |
String |
Contains all arguments that are passed to the .command . |
$this->chan |
Array |
Channels that are configured. |
$this->commands |
Array |
Contains accessible commands . |
$this->config |
Array |
Contains $config from config.php . |
$this->data |
String |
Contains raw IRC-Protocol. |
$this->debug |
Boolean |
Debug-Flag. |
$this->external |
Array |
Contains loaded extra commands . |
$this->nick |
String |
Bot's nick on the IRC. |
$this->pass |
String |
IRC-Server's passphrase. |
$this->port |
Int |
IRC-Server's port-number. |
$this->server |
String |
IRC-Server's hostname. |
$this->ssl |
Boolean |
SSL-Flag. |
$this->tick |
Int |
Interval to check buffers in microseconds. |
$this->user |
Array |
Array containing details about the user that sent the request . |
Example!
includes/ircbot/join-ng.inc.php
if( $this->user['level'] != 10 ) {
return $this->respond("Sorry only admins can make me join.");
}
if( $this->getChan() == "#noc") {
$this->respond("Joining $params");
$this->joinChan($params);
} else {
$this->respond("Sorry, only people from #noc can make join.");
}
config.php
...
$config['irc_external'][] = "join-ng";
...