<?php
/******************************* PHP-P10 v2 *****************************
- * Copyright (C) 2011 Philipp Kreil (pk910) *
+ * Copyright (C) 2011-2012 Philipp Kreil (pk910) *
* *
* This program is free software: you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation, either version 3 of the License, or *
* (at your option) any later version. *
- * *
+ * *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* along with this program. If not, see <http://www.gnu.org/licenses/>. *
* *
************************************************************************
- *
+ *
* Bots/IPv6.class.php
*
* IPv6 bot...
private $uplink;
private $ipv6;
private $cache = array(
- 0 => array(),
- 1 => array()
- );
-
+ 0 => array(),
+ 1 => array()
+ );
+
public function load($uplink, $old = false) {
$this->uplink = $uplink;
if(!$old) {
} else {
$this->ipv6 = $old;
}
-
+
ModCMD::bind($this, BIND_JOIN, "recive_join");
ModCMD::bind($this, BIND_CHANMODE, "recive_mode");
ModCMD::bind($this, BIND_KICK, "recive_kick");
ModCMD::bind($this, BIND_QUIT, "recive_quit");
}
-
+
public function unload($rehash = false) {
if($rehash) {
return $this->ipv6;
$this->uplink->delUser($this->ipv6, "Bye.");
}
}
-
+
public function loop() {
for($i = 0; $i < 2; $i++) {
foreach($this->cache[$i] as $id => $cache) {
}
}
}
-
+
private function botOppedOnChannel($channel) {
$privs = $channel->getUserPrivs($this->ipv6);
return ($privs & P10_Channel::USERPRIV_OPED);
}
-
+
public function recive_join($user, $channel, $isBurst) {
if(!$this->botOppedOnChannel($channel)) return false;
if($user->getIP()->isIPv6()) {
$this->uplink->mode($this->ipv6, $channel, "+v ".$user->getNumeric());
}
}
-
+
public function recive_mode($user, $channel, $modes) {
if($user->getModes()->hasMode('o') || !$this->botOppedOnChannel($channel)) return false;
if(array_key_exists($user->getNumeric(), $this->cache[0]) && $this->cache[0][$user->getNumeric()]['time'] > time()) {
$modes = implode(" ",$mode);
$this->uplink->mode($this->ipv6, $channel, $modes);
}
-
+
public function recive_kick($user, $target, $channel, $modes) {
if($user->getModes()->hasMode('o') || !$this->botOppedOnChannel($channel)) return false;
if(array_key_exists($user->getNumeric(), $this->cache[1]) && $this->cache[1][$user->getNumeric()]['time'] > time()) {
$this->cache[1][$user->getNumeric()] = time() + 600;
}
}
-
+
public function recive_quit($user, $reason) {
if($user === $this->ipv6) {
$this->load($this->uplink);