*/
class Bot {
+ private $db_section = NULL;
public function load($uplink, $oldDatas = null) {
public function readDB($value) {
}
-
+
+ public function getDBSection() {
+ return $this->db_section;
+ }
+
+ public function setDBSection($section) {
+ $this->db_section = $section;
+ }
}
?>
\ No newline at end of file
public function autosave() {
foreach($this->loadedBots as $name => $bot) {
- if(array_key_exists(strtolower($name), $this->botDatabases)) {
+ if($bot->getDBSection()) {
$db = $bot->writeDB();
- $this->saxdb->setSection($this->botDatabases[strtolower($name)],$db);
+ $this->saxdb->setSection($bot->getDBSection(),$db);
}
}
$this->save();
if(!(array_key_exists(strtolower($name), $this->loadedBots))) return false;
//unload bot
$bot = $this->loadedBots[strtolower($name)];
- if(array_key_exists(strtolower($name), $this->botDatabases)) {
+ if($bot->getDBSection()) {
$db = $bot->writeDB();
- $this->saxdb->setSection($this->botDatabases[strtolower($name)],$db);
- unset($this->botDatabases[strtolower($name)]);
+ $this->saxdb->setSection($bot->getDBSection(),$db);
}
ModCMD::unbindBot($bot);
$bot->unload(false);
if(!$botfile) break;
//rehash bot
$bot = $this->loadedBots[strtolower($name)];
- if(array_key_exists(strtolower($name), $this->botDatabases)) {
+ if($bot->getDBSection()) {
$db = $bot->writeDB();
- $this->saxdb->setSection($this->botDatabases[strtolower($name)],$db);
- unset($this->botDatabases[strtolower($name)]);
+ $this->saxdb->setSection($bot->getDBSection(),$db);
}
ModCMD::unbindBot($bot);
$data = $bot->unload(true);
private function addDBsection($bot, $section) {
if(!is_a($bot, "Bot")) return false;
- $name = null;
- foreach($this->loadedBots as $botname => $cbot) {
- if($cbot === $bot) {
- $name = $botname;
- break;
- }
- }
- if($name == null) return false;
- if(array_key_exists(strtolower($name), $this->botDatabases)) {
- return false;
- }
- $this->botDatabases[strtolower($name)] = $section;
+ $bot->setDBSection($section);
$bot->readDB($this->saxdb->getSection($section));
}
private function serializeDB($db) {
$dbstring = "";
foreach($db as $name => $value) {
- if(!is_array($value) && !is_string($value) && !is_numeric($value)) continue;
+ if(!is_array($value) && !is_string($value) && !is_numeric($value)) {
+ echo"invalid type ".gettype($value)."\n";
+ continue;
+ }
$dbstring .= "\"".str_replace("\"","\\\"", $name)."\"";
if(is_array($value)) {
$dbstring .= "{";
if(!array_key_exists("users", $this->db)) {
$this->db['users'] = array();
}
- $this->db['users'][$auth] = $pulseUser->MemberName;
+ $this->db['users'][$auth] = strval($pulseUser->MemberName);
$this->uplink->notice($this->pulsebot, $user, "WhatPulse user '".$pulseUserName."' added (Keys: ".number_format(floatval($pulseUser->MemberKeys),0,',','.').", Clicks: ".number_format(floatval($pulseUser->MemberClicks),0,',','.').").");
}
break;