Basis bot

Hier volgt een opzetje voor de basis bot, het framework vanwaaruit je werkt

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<?php

// De IRC class
require_once('../pear/SmartIRC.php');

// De bot class
class myBot {

    // Constructor
    function myBot() {
    }


    // Reactie op het help commando
    function help(&$irc, &$data) {
        $irc->message(SMARTIRC_TYPE_CHANNEL, $data->channel, 'U zei "' . $data->message . '"?');
    }
}


// Command line vars
$args = $_SERVER['argv'];
$host = ((isset($args[1]) && !empty($args[1])) ? $args[1] : 'irc.xs4all.nl');
$channel = ((isset($args[2]) && !empty($args[2])) ? $args[2] : '#phpircbot-test');

// Initialisatie
$bot = &new myBot();
$irc = &new Net_SmartIRC();
$irc->setDebug(SMARTIRC_DEBUG_ALL);
$irc->setLogfile('./mybot.log'); // Log file
$irc->setLogdestination(SMARTIRC_FILE);
$irc->setAutoReconnect(true); // Auto reconnect?
$irc->setUseSockets(true);

// Handlers, reageert op de regex '!help.*' met de functie 'help'
$irc->registerActionhandler(SMARTIRC_TYPE_CHANNEL, '!help.*', $bot, 'help');

$irc->connect($host, 6667); // Verbind
$irc->login('MyBot', 'MyBot 1.0', 0, 'mybot'); // Log in
$irc->join(array($channel)); // Kies kanaal
$irc->listen(); // Ga luisteren
$irc->disconnect(); // Doei =)

?>


als je deze op windows zou aanroepen:
c:\php\cli\php -q c:\scripts\ircbots\mybot\mybot.php irc.server.org #kanaal
Gaat de bot draaien, en elke keer als je iets wat met de regex '!help.*' matcht reageert hij met: 'U zei "!help[***]"?'.

« Lees de omschrijving en reacties

Inhoudsopgave

  1. Inleiding
  2. Basis bot
  3. Handlers toevoegen
  4. IRC Commando's
  5. Windows Batch bestand
  6. Referentie

PHP tutorial opties

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.