<?php
/***************************************************************************************************
 * BeBot - An Anarchy Online & Age of Conan Chat Automaton
 * Copyright (C) 2004 Jonas Jax
 * Copyright (C) 2005-2010 Thomas Juberg, ShadowRealm Creations and the BeBot development team.
 *
 * Developed by:
 * - Alreadythere (RK2)
 * - Blondengy (RK1)
 * - Blueeagl3 (RK1)
 * - Glarawyn (RK1)
 * - Khalem (RK1)
 * - Naturalistic (RK1)
 * - Temar (RK1)
 *
 * See Credits file for all acknowledgements.
 ***************************************************************************************************
 * AutoReconnect module for Bebot
 * This module will auto reconnect the bot at a given interval.
 *
 * Author:    Kentarii [Ragnarok] @ EN Fury PvP
 * E-mail:    Does not take a rocket scientist to figure out..
 * Website:    http://aoc.is-better-than.tv/
 ***************************************************************************************************
 * Installation:
 *        Copy AutoReconnect.phps to <bebot_dir>/custom/modules/AutoReconnect.php and restart bot
 * Configuration:
 *        Edit the cron interval below
 * Disable module:
 *        Rename AutoReconnect.php to _AutoReconnect.php and restart bot
 * Uninstallation:
 *        Delete <bebot_dir>/custom/modules/AutoReconnect.php and restart bot
 ***************************************************************************************************
 * Changelog:
 *    2011-02-09    0.0.1    First version
 ***************************************************************************************************
 */

$AutoReconnect = new AutoReconnect($bot);

class 
AutoReconnect extends BaseActiveModule {
    var 
$bot;
    var 
$version;
    var 
$first_run;
    var 
$interval;

    function 
__construct(&$bot) {
        
parent::__construct(&$botget_class($this));
        
$this -> version '0.0.1';
        
$this -> first_run true;

        
// Accepted cron value examples: 2sec, 5min, 6hour
        // This value should never be below 2min due to the chat server relog restrictions
        
$this -> interval '24hour';

        
$this -> register_command('all''autoreconnect''ADMIN');
        
$this -> register_event('cron'$this -> interval);

        
$this -> help['description'] = "This module will auto reconnect the bot at a given interval.";
        
$this -> help['notes'] = "Written by Kentarii of Ragnarok @ PvP Fury, February 2011";
    }

    function 
command_handler($name$msg$origin) {
        
$this -> bot -> send_help($name'autoreconnect');
    }

    function 
cron() {
        if (
$this -> first_run) { // don't do anything the first time around
            
$this -> bot -> log("AUTORECONNECT""INFO""Cron event registered, bot will reconnect in '"$this -> interval ."'.");
            
$this -> first_run false;
        }
        else {
            
$this -> bot -> log("AUTORECONNECT""CRON""Reconnecting bot at given interval '"$this -> interval ."'...");
            
$this -> bot -> reconnect();
        }
    }
}
?>