some fixes

This commit is contained in:
kremsy
2013-11-09 19:26:57 +01:00
parent 985340d543
commit d0c0c0c53f
19 changed files with 539 additions and 523 deletions

View File

@ -17,15 +17,15 @@ class Stats {
/**
* Private properties
*/
private $mControl = null;
private $mc = null;
private $config = null;
/**
* Constuct stats manager
*/
public function __construct($mControl) {
$this->mControl = $mControl;
public function __construct($mc) {
$this->mc = $mc;
// Load config
$this->config = Tools::loadConfig('stats.ManiaControl.xml');
@ -35,11 +35,11 @@ class Stats {
$this->initTables();
// Register for needed callbacks
$this->iControl->callbacks->registerCallbackHandler(Callbacks::CB_MP_ENDMAP, $this, 'handleEndMap');
$this->iControl->callbacks->registerCallbackHandler(Callbacks::CB_MP_PLAYERCHAT, $this, 'handlePlayerChat');
$this->iControl->callbacks->registerCallbackHandler(Callbacks::CB_MP_PLAYERCONNECT, $this, 'handlePlayerConnect');
$this->iControl->callbacks->registerCallbackHandler(Callbacks::CB_MP_PLAYERDISCONNECT, $this, 'handlePlayerDisconnect');
$this->iControl->callbacks->registerCallbackHandler(Callbacks::CB_TM_PLAYERFINISH, $this, 'handlePlayerFinish');
$this->mc->callbacks->registerCallbackHandler(Callbacks::CB_MP_ENDMAP, $this, 'handleEndMap');
$this->mc->callbacks->registerCallbackHandler(Callbacks::CB_MP_PLAYERCHAT, $this, 'handlePlayerChat');
$this->mc->callbacks->registerCallbackHandler(Callbacks::CB_MP_PLAYERCONNECT, $this, 'handlePlayerConnect');
$this->mc->callbacks->registerCallbackHandler(Callbacks::CB_MP_PLAYERDISCONNECT, $this, 'handlePlayerDisconnect');
$this->mc->callbacks->registerCallbackHandler(Callbacks::CB_TM_PLAYERFINISH, $this, 'handlePlayerFinish');
}
/**
@ -78,7 +78,7 @@ class Stats {
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Tracks player stats' AUTO_INCREMENT=1;";
// Perform queries
if (!$this->iControl->database->multiQuery($query)) {
if (!$this->mc->database->multiQuery($query)) {
trigger_error("Creating stats tables failed.");
}
}
@ -120,7 +120,7 @@ class Stats {
}
// Perform query
if (!$this->iControl->database->multiQuery($multiquery)) {
if (!$this->mc->database->multiQuery($multiquery)) {
trigger_error("Perform queries on end map failed.");
}
}
@ -139,7 +139,7 @@ class Stats {
`Login`,
`chatCount`
) VALUES (
'" . $this->iControl->database->escape($login) . "',
'" . $this->mc->database->escape($login) . "',
1
) ON DUPLICATE KEY UPDATE
`chatCount` = `chatCount` + VALUES(`chatCount`)
@ -147,7 +147,7 @@ class Stats {
}
// Perform query
if (!$this->iControl->database->multiQuery($multiquery)) {
if (!$this->mc->database->multiQuery($multiquery)) {
trigger_error("Perform queries on player chat failed.");
}
}
@ -174,7 +174,7 @@ class Stats {
// Track server max players
if ($this->settings->track_server_max_players) {
$players = $this->iControl->server->getPlayers();
$players = $this->mc->server->getPlayers();
$multiquery .= "INSERT INTO `" . self::TABLE_STATS_SERVER . "` (
`day`,
`maxPlayerCount`
@ -193,7 +193,7 @@ class Stats {
`lastJoin`,
`connectCount`
) VALUES (
'" . $this->iControl->database->escape($login) . "',
'" . $this->mc->database->escape($login) . "',
NOW(),
1
) ON DUPLICATE KEY UPDATE
@ -203,7 +203,7 @@ class Stats {
}
// Perform query
if (!$this->iControl->database->multiQuery($multiquery)) {
if (!$this->mc->database->multiQuery($multiquery)) {
trigger_error("Perform queries on player connect failed.");
}
}
@ -218,9 +218,9 @@ class Stats {
// Track player playtime
if ($this->settings->track_player_playtime) {
$query = "SELECT `lastJoin` FROM `" . self::TABLE_STATS_PLAYERS . "`
WHERE `Login` = '" . $this->iControl->database->escape($login) . "'
WHERE `Login` = '" . $this->mc->database->escape($login) . "'
;";
$result = $this->iControl->database->query($query);
$result = $this->mc->database->query($query);
if (!$result) {
// Error
trigger_error("Error selecting player join time from '" . $login . "'.");
@ -230,12 +230,12 @@ class Stats {
while ($row = $result->fetch_object()) {
if (!property_exists($row, 'lastJoin')) continue;
$lastJoin = strtotime($row->lastJoin);
$lastJoin = ($lastJoin > $this->iControl->startTime ? $lastJoin : $this->iControl->startTime);
$lastJoin = ($lastJoin > $this->mc->startTime ? $lastJoin : $this->mc->startTime);
$multiquery .= "INSERT INTO `" . self::TABLE_STATS_PLAYERS . "` (
`Login`,
`playTime`
) VALUES (
'" . $this->iControl->database->escape($login) . "',
'" . $this->mc->database->escape($login) . "',
TIMESTAMPDIFF(SECOND, '" . Tools::timeToTimestamp($lastJoin) . "', NOW())
) ON DUPLICATE KEY UPDATE
`playTime` = `playTime` + VALUES(`playTime`)
@ -246,7 +246,7 @@ class Stats {
}
// Perform query
if (!$this->iControl->database->multiQuery($multiquery)) {
if (!$this->mc->database->multiQuery($multiquery)) {
trigger_error("Perform queries on player connect failed.");
}
}
@ -280,7 +280,7 @@ class Stats {
`Login`,
`finishCount`
) VALUES (
'" . $this->iControl->database->escape($login) . "',
'" . $this->mc->database->escape($login) . "',
1
) ON DUPLICATE KEY UPDATE
`finishCount` = `finishCount` + VALUES(`finishCount`)
@ -288,7 +288,7 @@ class Stats {
}
// Perform query
if (!$this->iControl->database->multiQuery($multiquery)) {
if (!$this->mc->database->multiQuery($multiquery)) {
trigger_error("Perform queries on player finish failed.");
}
}