first finish of dedimania plugin

This commit is contained in:
kremsy 2014-02-20 12:20:35 +01:00 committed by Steffen Schröder
parent 7f9ba73a2a
commit 5728381093
2 changed files with 193 additions and 41 deletions

View File

@ -2,6 +2,11 @@
namespace Dedimania; namespace Dedimania;
require_once "DedimaniaData.php"; require_once "DedimaniaData.php";
use FML\Controls\Control;
use FML\Controls\Frame;
use FML\Controls\Label;
use FML\Controls\Quad;
use FML\ManiaLink;
use ManiaControl\Callbacks\CallbackListener; use ManiaControl\Callbacks\CallbackListener;
use ManiaControl\Callbacks\CallbackManager; use ManiaControl\Callbacks\CallbackManager;
use ManiaControl\Callbacks\TimerListener; use ManiaControl\Callbacks\TimerListener;
@ -29,6 +34,14 @@ class Dedimania implements CallbackListener, TimerListener, Plugin {
const DEDIMANIA_UPDATESERVERPLAYERS = 'dedimania.UpdateServerPlayers'; const DEDIMANIA_UPDATESERVERPLAYERS = 'dedimania.UpdateServerPlayers';
const DEDIMANIA_SETCHALLENGETIMES = 'dedimania.SetChallengeTimes'; const DEDIMANIA_SETCHALLENGETIMES = 'dedimania.SetChallengeTimes';
const DEDIMANIA_WARNINGSANDTTR2 = 'dedimania.WarningsAndTTR2'; const DEDIMANIA_WARNINGSANDTTR2 = 'dedimania.WarningsAndTTR2';
const SETTING_WIDGET_TITLE = 'Widget Title';
const SETTING_WIDGET_POSX = 'Widget Position: X';
const SETTING_WIDGET_POSY = 'Widget Position: Y';
const SETTING_WIDGET_WIDTH = 'Widget Width';
const SETTING_WIDGET_LINESCOUNT = 'Widget Displayed Lines Count';
const SETTING_WIDGET_LINEHEIGHT = 'Widget Line Height';
const SETTING_SERVER_LOGINS = 'Serverlogins, splitted by ;';
const SETTING_DEDIMANIA_CODES = 'Dedimania Codes, splitted by ;';
/** /**
* Private Properties * Private Properties
@ -37,10 +50,9 @@ class Dedimania implements CallbackListener, TimerListener, Plugin {
private $maniaControl = null; private $maniaControl = null;
/** @var DedimaniaData $dedimaniaData */ /** @var DedimaniaData $dedimaniaData */
private $dedimaniaData = null; private $dedimaniaData = null;
private $manialink = null;
//private $lastSendManialink = array();
private $updateManialink = false; private $updateManialink = false;
private $checkpoints = array(); private $checkpoints = array();
private $init = false;
/** /**
* Prepares the Plugin * Prepares the Plugin
@ -49,7 +61,8 @@ class Dedimania implements CallbackListener, TimerListener, Plugin {
* @return mixed * @return mixed
*/ */
public static function prepare(ManiaControl $maniaControl) { public static function prepare(ManiaControl $maniaControl) {
// TODO: Implement prepare() method. $maniaControl->settingManager->initSetting(get_class(), self::SETTING_SERVER_LOGINS, '');
$maniaControl->settingManager->initSetting(get_class(), self::SETTING_DEDIMANIA_CODES, '');
} }
/** /**
@ -61,25 +74,54 @@ class Dedimania implements CallbackListener, TimerListener, Plugin {
public function load(ManiaControl $maniaControl) { public function load(ManiaControl $maniaControl) {
$this->maniaControl = $maniaControl; $this->maniaControl = $maniaControl;
return; $this->maniaControl->settingManager->initSetting($this, self::SETTING_WIDGET_TITLE, 'Dedimania');
$this->maniaControl->settingManager->initSetting($this, self::SETTING_WIDGET_POSX, -139);
$this->maniaControl->settingManager->initSetting($this, self::SETTING_WIDGET_POSY, 7);
$this->maniaControl->settingManager->initSetting($this, self::SETTING_WIDGET_WIDTH, 40);
$this->maniaControl->settingManager->initSetting($this, self::SETTING_WIDGET_LINEHEIGHT, 4);
$this->maniaControl->settingManager->initSetting($this, self::SETTING_WIDGET_LINESCOUNT, 15);
//TODO what was CB_IC_ClientUpdated?
$this->maniaControl->callbackManager->registerCallbackListener(MapManager::CB_BEGINMAP, $this, 'handleBeginMap'); $this->maniaControl->callbackManager->registerCallbackListener(MapManager::CB_BEGINMAP, $this, 'handleBeginMap');
$this->maniaControl->callbackManager->registerCallbackListener(MapManager::CB_ENDMAP, $this, 'handleEndMap'); $this->maniaControl->callbackManager->registerCallbackListener(MapManager::CB_ENDMAP, $this, 'handleMapEnd');
$this->maniaControl->callbackManager->registerCallbackListener(PlayerManager::CB_PLAYERCONNECT, $this, 'handlePlayerConnect'); $this->maniaControl->callbackManager->registerCallbackListener(PlayerManager::CB_PLAYERCONNECT, $this, 'handlePlayerConnect');
$this->maniaControl->callbackManager->registerCallbackListener(PlayerManager::CB_PLAYERCONNECT, $this, 'handlePlayerDisconnect'); $this->maniaControl->callbackManager->registerCallbackListener(PlayerManager::CB_PLAYERCONNECT, $this, 'handlePlayerDisconnect');
$this->maniaControl->callbackManager->registerCallbackListener(PlayerManager::CB_PLAYERINFOCHANGED, $this, 'handlePlayerInfoChanged');
$this->maniaControl->callbackManager->registerCallbackListener(CallbackManager::CB_TM_PLAYERCHECKPOINT, $this, 'handlePlayerCheckpoint'); $this->maniaControl->callbackManager->registerCallbackListener(CallbackManager::CB_TM_PLAYERCHECKPOINT, $this, 'handlePlayerCheckpoint');
$this->maniaControl->callbackManager->registerCallbackListener(CallbackManager::CB_TM_PLAYERFINISH, $this, 'handlePlayerFinish'); $this->maniaControl->callbackManager->registerCallbackListener(CallbackManager::CB_TM_PLAYERFINISH, $this, 'handlePlayerFinished');
$this->maniaControl->timerManager->registerTimerListening($this, 'updateEverySecond', 1000); $this->maniaControl->timerManager->registerTimerListening($this, 'updateEverySecond', 1000);
$this->maniaControl->timerManager->registerTimerListening($this, 'handleEveryMinute', 1000 * 60); $this->maniaControl->timerManager->registerTimerListening($this, 'handleEveryMinute', 1000 * 60);
$this->maniaControl->timerManager->registerTimerListening($this, 'updatePlayerList', 1000 * 60 * 3); $this->maniaControl->timerManager->registerTimerListening($this, 'updatePlayerList', 1000 * 60 * 3);
//TODO parse settings
// Open session // Open session
$serverInfo = $this->maniaControl->server->getInfo(); $serverInfo = $this->maniaControl->server->getInfo();
$serverVersion = $this->maniaControl->client->getVersion(); $serverVersion = $this->maniaControl->client->getVersion();
$packMask = substr($this->maniaControl->server->titleId, 2); $packMask = substr($this->maniaControl->server->titleId, 2);
$this->dedimaniaData = new DedimaniaData(".paragoncanyon", "a3ee654ac8", $serverInfo->path, $packMask, $serverVersion);
$logins = $this->maniaControl->settingManager->getSetting($this, self::SETTING_SERVER_LOGINS);
$codes = $this->maniaControl->settingManager->getSetting($this, self::SETTING_DEDIMANIA_CODES);
if ($logins == '' || $codes == '') {
throw new \Exception("No Dedimania Data Specified, check the settings!");
}
$logins = explode(";", $logins);
$codes = explode(";", $codes);
$dedimaniaCode = "";
foreach($logins as $key => $login) {
if ($login == $serverInfo->login) {
if (!isset($codes[$key])) {
throw new \Exception("No Dedimania Code Specified, check the settings!");
}
$dedimaniaCode = $codes[$key];
}
}
if ($dedimaniaCode == '') {
throw new \Exception("No Valid Serverlogin Specified, check the settings!");
}
$this->dedimaniaData = new DedimaniaData($serverInfo->login, $dedimaniaCode, $serverInfo->path, $packMask, $serverVersion);
$this->openDedimaniaSession(); $this->openDedimaniaSession();
} }
@ -101,13 +143,14 @@ class Dedimania implements CallbackListener, TimerListener, Plugin {
if (is_array($data)) { if (is_array($data)) {
foreach($data as $index => $methodResponse) { foreach($data as $index => $methodResponse) {
if (xmlrpc_is_fault($methodResponse)) { if (xmlrpc_is_fault($methodResponse)) {
$this->handleXmlRpcFault($methodResponse); $this->handleXmlRpcFault($methodResponse, self::DEDIMANIA_OPENSESSION);
} else if ($index <= 0) { } else if ($index <= 0) {
$responseData = $methodResponse[0]; $responseData = $methodResponse[0];
$this->dedimaniaData->sessionId = $responseData['SessionId']; $this->dedimaniaData->sessionId = $responseData['SessionId'];
if ($this->dedimaniaData->sessionId != '') { if ($this->dedimaniaData->sessionId != '') {
$this->maniaControl->log("Dedimania connection successfully established."); $this->maniaControl->log("Dedimania connection successfully established.");
$this->fetchDedimaniaRecords(); $this->fetchDedimaniaRecords();
$this->init = true;
} else { } else {
$this->maniaControl->log("Error while opening Dedimania Connection"); $this->maniaControl->log("Error while opening Dedimania Connection");
} }
@ -121,8 +164,15 @@ class Dedimania implements CallbackListener, TimerListener, Plugin {
* Handle 1Second callback * Handle 1Second callback
*/ */
public function updateEverySecond($time) { public function updateEverySecond($time) {
if (!$this->updateManialink) {
return;
}
$this->updateManialink = false; $this->updateManialink = false;
//TODO send manialink if (!$this->dedimaniaData->records) {
return;
}
$manialink = $this->buildManialink();
$this->maniaControl->manialinkManager->sendManialink($manialink);
} }
/** /**
@ -131,10 +181,11 @@ class Dedimania implements CallbackListener, TimerListener, Plugin {
* @param null $callback * @param null $callback
*/ */
public function handleEveryMinute($callback = null) { public function handleEveryMinute($callback = null) {
if (!$this->init)
return;
$this->checkDedimaniaSession(); $this->checkDedimaniaSession();
} }
/** /**
* Handle PlayerConnect callback * Handle PlayerConnect callback
* *
@ -145,7 +196,7 @@ class Dedimania implements CallbackListener, TimerListener, Plugin {
$data = array($this->dedimaniaData->sessionId, $player->login, $player->nickname, $player->path, $player->isSpectator); $data = array($this->dedimaniaData->sessionId, $player->login, $player->nickname, $player->path, $player->isSpectator);
$content = $this->encode_request(self::DEDIMANIA_PLAYERCONNECT, $data); $content = $this->encode_request(self::DEDIMANIA_PLAYERCONNECT, $data);
$this->maniaControl->fileReader->postData(self::DEDIMANIA_URL, function ($data, $error) { $this->maniaControl->fileReader->postData(self::DEDIMANIA_URL, function ($data, $error) use (&$player) {
if ($error != '') { if ($error != '') {
$this->maniaControl->log("Dedimania Error: " . $error); $this->maniaControl->log("Dedimania Error: " . $error);
} }
@ -154,7 +205,7 @@ class Dedimania implements CallbackListener, TimerListener, Plugin {
if (is_array($data)) { if (is_array($data)) {
foreach($data as $methodResponse) { foreach($data as $methodResponse) {
if (xmlrpc_is_fault($methodResponse)) { if (xmlrpc_is_fault($methodResponse)) {
$this->handleXmlRpcFault($methodResponse); $this->handleXmlRpcFault($methodResponse, self::DEDIMANIA_PLAYERCONNECT);
} }
} }
} else { } else {
@ -163,10 +214,12 @@ class Dedimania implements CallbackListener, TimerListener, Plugin {
var_dump($data); var_dump($data);
} }
} }
$manialink = $this->buildManialink();
$this->maniaControl->manialinkManager->sendManialink($manialink, $player->login);
return true; return true;
}, $content, true); }, $content, true);
//TODO send manialink to login
} }
/** /**
@ -188,7 +241,7 @@ class Dedimania implements CallbackListener, TimerListener, Plugin {
if (is_array($data)) { if (is_array($data)) {
foreach($data as $methodResponse) { foreach($data as $methodResponse) {
if (xmlrpc_is_fault($methodResponse)) { if (xmlrpc_is_fault($methodResponse)) {
$this->handleXmlRpcFault($methodResponse); $this->handleXmlRpcFault($methodResponse, self::DEDIMANIA_PLAYERDISCONNECT);
} }
} }
} else { } else {
@ -208,15 +261,18 @@ class Dedimania implements CallbackListener, TimerListener, Plugin {
*/ */
public function handleBeginMap($callback) { public function handleBeginMap($callback) {
$this->fetchDedimaniaRecords(true); $this->fetchDedimaniaRecords(true);
$this->updateManialink = true;
} }
/** /**
* Handle EndMap callback * Handle EndMap callback
* *
* @param $callback * @param $callback
*/ */
public function handleMapEnd($callback) { public function handleMapEnd($callback) {
if (!$this->dedimaniaData->records)
return;
// Send dedimania records // Send dedimania records
$gameMode = $this->getGameModeString(); $gameMode = $this->getGameModeString();
$times = array(); $times = array();
@ -259,7 +315,7 @@ class Dedimania implements CallbackListener, TimerListener, Plugin {
if (is_array($data)) { if (is_array($data)) {
foreach($data as $index => $methodResponse) { foreach($data as $index => $methodResponse) {
if (xmlrpc_is_fault($methodResponse)) { if (xmlrpc_is_fault($methodResponse)) {
$this->handleXmlRpcFault($methodResponse); $this->handleXmlRpcFault($methodResponse, self::DEDIMANIA_SETCHALLENGETIMES);
} else { } else {
if ($index <= 0) { if ($index <= 0) {
// Called method response // Called method response
@ -290,7 +346,7 @@ class Dedimania implements CallbackListener, TimerListener, Plugin {
$serverInfo = $this->getServerInfo(); $serverInfo = $this->getServerInfo();
$playerList = $this->getPlayerList(); $playerList = $this->getPlayerList();
$votesInfo = $this->getVotesInfo(); $votesInfo = $this->getVotesInfo();
if (!$serverInfo || !$votesInfo || !$playerList) { if (!$serverInfo || !$votesInfo || !$playerList || !isset($this->dedimaniaData) || $this->dedimaniaData->sessionId == '') {
return; return;
} }
@ -307,7 +363,7 @@ class Dedimania implements CallbackListener, TimerListener, Plugin {
if (is_array($data)) { if (is_array($data)) {
foreach($data as $methodResponse) { foreach($data as $methodResponse) {
if (xmlrpc_is_fault($methodResponse)) { if (xmlrpc_is_fault($methodResponse)) {
$this->handleXmlRpcFault($methodResponse); $this->handleXmlRpcFault($methodResponse, self::DEDIMANIA_UPDATESERVERPLAYERS);
} }
} }
} else { } else {
@ -322,12 +378,14 @@ class Dedimania implements CallbackListener, TimerListener, Plugin {
/** /**
* Handle PlayerCheckpoint callback * Handle PlayerCheckpoint callback
*
* @param $callback
*/ */
public function handlePlayerCheckpoint($callback) { public function handlePlayerCheckpoint($callback) {
$data = $callback[1]; $data = $callback[1];
$login = $data[1]; $login = $data[1];
$time = $data[2]; $time = $data[2];
$lap = $data[3]; //$lap = $data[3];
$cpIndex = $data[4]; $cpIndex = $data[4];
if (!isset($this->checkpoints[$login]) || $cpIndex <= 0) { if (!isset($this->checkpoints[$login]) || $cpIndex <= 0) {
$this->checkpoints[$login] = array(); $this->checkpoints[$login] = array();
@ -335,6 +393,11 @@ class Dedimania implements CallbackListener, TimerListener, Plugin {
$this->checkpoints[$login][$cpIndex] = $time; $this->checkpoints[$login][$cpIndex] = $time;
} }
/**
* Plyer finished callback
*
* @param $callback
*/
public function handlePlayerFinished($callback) { public function handlePlayerFinished($callback) {
$data = $callback[1]; $data = $callback[1];
if ($data[0] <= 0 || $data[2] <= 0) { if ($data[0] <= 0 || $data[2] <= 0) {
@ -363,7 +426,7 @@ class Dedimania implements CallbackListener, TimerListener, Plugin {
$inserted = $this->insertDedimaniaRecord($newRecord, $oldRecord); $inserted = $this->insertDedimaniaRecord($newRecord, $oldRecord);
if ($inserted) { if ($inserted) {
// Get newly saved record // Get newly saved record
foreach($this->dedimaniaData['records']['Records'] as $key => &$record) { foreach($this->dedimaniaData['records']['Records'] as &$record) {
if ($record['Login'] !== $newRecord['Login']) { if ($record['Login'] !== $newRecord['Login']) {
continue; continue;
} }
@ -423,7 +486,7 @@ class Dedimania implements CallbackListener, TimerListener, Plugin {
if (is_array($data)) { if (is_array($data)) {
foreach($data as $index => $methodResponse) { foreach($data as $index => $methodResponse) {
if (xmlrpc_is_fault($methodResponse)) { if (xmlrpc_is_fault($methodResponse)) {
$this->handleXmlRpcFault($methodResponse); $this->handleXmlRpcFault($methodResponse, self::DEDIMANIA_GETRECORDS);
return false; return false;
} else if ($index <= 0) { } else if ($index <= 0) {
$responseData = $methodResponse[0]; $responseData = $methodResponse[0];
@ -458,7 +521,7 @@ class Dedimania implements CallbackListener, TimerListener, Plugin {
if (is_array($data)) { if (is_array($data)) {
foreach($data as $methodResponse) { foreach($data as $methodResponse) {
if (xmlrpc_is_fault($methodResponse)) { if (xmlrpc_is_fault($methodResponse)) {
$this->handleXmlRpcFault($methodResponse); $this->handleXmlRpcFault($methodResponse, self::DEDIMANIA_CHECKSESSION);
} else { } else {
$responseData = $methodResponse[0]; $responseData = $methodResponse[0];
if (is_bool($responseData)) { if (is_bool($responseData)) {
@ -485,12 +548,12 @@ class Dedimania implements CallbackListener, TimerListener, Plugin {
} }
$insert = false; $insert = false;
$newRecords = array();
// Get max possible rank // Get max possible rank
$maxRank = $this->getMaxRank($newRecord['Login']); $maxRank = $this->getMaxRank($newRecord['Login']);
if (!$maxRank) if (!$maxRank) {
$maxRank = 30; $maxRank = 30;
}
// Loop through existing records // Loop through existing records
foreach($this->dedimaniaData->records['Records'] as $key => &$record) { foreach($this->dedimaniaData->records['Records'] as $key => &$record) {
@ -540,7 +603,7 @@ class Dedimania implements CallbackListener, TimerListener, Plugin {
$this->updateDedimaniaRecordRanks(); $this->updateDedimaniaRecordRanks();
// Save replays // Save replays
foreach($this->dedimaniaData->records['Records'] as $key => &$record) { foreach($this->dedimaniaData->records['Records'] as &$record) {
if ($record['Login'] !== $newRecord['Login']) if ($record['Login'] !== $newRecord['Login'])
continue; continue;
$this->setRecordReplays($record); $this->setRecordReplays($record);
@ -721,7 +784,7 @@ class Dedimania implements CallbackListener, TimerListener, Plugin {
if (!isset($this->dedimaniaData->records)) if (!isset($this->dedimaniaData->records))
return null; return null;
$records = $this->dedimaniaData->records['Records']; $records = $this->dedimaniaData->records['Records'];
foreach($records as $index => $record) { foreach($records as $record) {
if ($record['Login'] === $login) if ($record['Login'] === $login)
return $record; return $record;
} }
@ -790,9 +853,96 @@ class Dedimania implements CallbackListener, TimerListener, Plugin {
* Handles xml rpc fault * Handles xml rpc fault
* *
* @param $fault * @param $fault
* @param $method
*/ */
private function handleXmlRpcFault($fault) { private function handleXmlRpcFault($fault, $method) {
trigger_error('XmlRpc Fault: ' . $fault['faultString'] . ' (' . $fault['faultCode'] . ')'); trigger_error('XmlRpc Fault on ' . $method . ': ' . $fault['faultString'] . ' (' . $fault['faultCode'] . ')');
}
private function buildManialink() {
if (!$this->dedimaniaData->records) {
return '';
}
$records = $this->dedimaniaData->records['Records'];
$title = $this->maniaControl->settingManager->getSetting($this, self::SETTING_WIDGET_TITLE);
$pos_x = $this->maniaControl->settingManager->getSetting($this, self::SETTING_WIDGET_POSX);
$pos_y = $this->maniaControl->settingManager->getSetting($this, self::SETTING_WIDGET_POSY);
$width = $this->maniaControl->settingManager->getSetting($this, self::SETTING_WIDGET_WIDTH);
$lines = $this->maniaControl->settingManager->getSetting($this, self::SETTING_WIDGET_LINESCOUNT);
$lineHeight = $this->maniaControl->settingManager->getSetting($this, self::SETTING_WIDGET_LINEHEIGHT);
$labelStyle = $this->maniaControl->manialinkManager->styleManager->getDefaultLabelStyle();
$quadStyle = $this->maniaControl->manialinkManager->styleManager->getDefaultQuadStyle();
$quadSubstyle = $this->maniaControl->manialinkManager->styleManager->getDefaultQuadSubstyle();
$manialink = new ManiaLink(self::MLID_DEDIMANIA);
$frame = new Frame();
$manialink->add($frame);
$frame->setPosition($pos_x, $pos_y);
$backgroundQuad = new Quad();
$frame->add($backgroundQuad);
$backgroundQuad->setVAlign(Control::TOP);
$height = 7. + $lines * $lineHeight;
$backgroundQuad->setSize($width * 1.05, $height);
$backgroundQuad->setStyles($quadStyle, $quadSubstyle);
$titleLabel = new Label();
$frame->add($titleLabel);
$titleLabel->setPosition(0, $lineHeight * -0.9);
$titleLabel->setWidth($width);
$titleLabel->setStyle($labelStyle);
$titleLabel->setTextSize(2);
$titleLabel->setText($title);
$titleLabel->setTranslate(true);
foreach($records as $index => $record) {
if ($index >= $lines)
break;
$y = -8. - $index * $lineHeight;
$recordFrame = new Frame();
$frame->add($recordFrame);
$recordFrame->setPosition(0, $y);
$backgroundQuad = new Quad();
$recordFrame->add($backgroundQuad);
$backgroundQuad->setSize($width * 1.04, $lineHeight * 1.4);
$backgroundQuad->setStyles($quadStyle, $quadSubstyle);
//Rank
$rankLabel = new Label();
$recordFrame->add($rankLabel);
$rankLabel->setHAlign(Control::LEFT);
$rankLabel->setX($width * -0.47);
$rankLabel->setSize($width * 0.06, $lineHeight);
$rankLabel->setTextSize(1);
$rankLabel->setTextPrefix('$o');
$rankLabel->setText($record['Rank']);
//Name
$nameLabel = new Label();
$recordFrame->add($nameLabel);
$nameLabel->setHAlign(Control::LEFT);
$nameLabel->setX($width * -0.4);
$nameLabel->setSize($width * 0.6, $lineHeight);
$nameLabel->setTextSize(1);
$nameLabel->setText(Formatter::stripDirtyCodes($record['NickName']));
//Time
$timeLabel = new Label();
$recordFrame->add($timeLabel);
$timeLabel->setHAlign(Control::RIGHT);
$timeLabel->setX($width * 0.47);
$timeLabel->setSize($width * 0.25, $lineHeight);
$timeLabel->setTextSize(1);
$timeLabel->setText(Formatter::formatTime($record['Best']));
}
return $manialink->render()->saveXML();
} }
/** /**

View File

@ -69,9 +69,9 @@ class LocalRecordsPlugin implements CallbackListener, TimerListener, Plugin {
// Init settings // Init settings
$this->maniaControl->settingManager->initSetting($this, self::SETTING_WIDGET_TITLE, 'Local Records'); $this->maniaControl->settingManager->initSetting($this, self::SETTING_WIDGET_TITLE, 'Local Records');
$this->maniaControl->settingManager->initSetting($this, self::SETTING_WIDGET_POSX, -139.); $this->maniaControl->settingManager->initSetting($this, self::SETTING_WIDGET_POSX, -139.);
$this->maniaControl->settingManager->initSetting($this, self::SETTING_WIDGET_POSY, 65.); $this->maniaControl->settingManager->initSetting($this, self::SETTING_WIDGET_POSY, 75);
$this->maniaControl->settingManager->initSetting($this, self::SETTING_WIDGET_WIDTH, 40.); $this->maniaControl->settingManager->initSetting($this, self::SETTING_WIDGET_WIDTH, 40.);
$this->maniaControl->settingManager->initSetting($this, self::SETTING_WIDGET_LINESCOUNT, 25); $this->maniaControl->settingManager->initSetting($this, self::SETTING_WIDGET_LINESCOUNT, 15);
$this->maniaControl->settingManager->initSetting($this, self::SETTING_WIDGET_LINEHEIGHT, 4.); $this->maniaControl->settingManager->initSetting($this, self::SETTING_WIDGET_LINEHEIGHT, 4.);
$this->maniaControl->settingManager->initSetting($this, self::SETTING_NOTIFY_ONLY_DRIVER, false); $this->maniaControl->settingManager->initSetting($this, self::SETTING_NOTIFY_ONLY_DRIVER, false);
$this->maniaControl->settingManager->initSetting($this, self::SETTING_NOTIFY_BEST_RECORDS, -1); $this->maniaControl->settingManager->initSetting($this, self::SETTING_NOTIFY_BEST_RECORDS, -1);
@ -170,7 +170,9 @@ class LocalRecordsPlugin implements CallbackListener, TimerListener, Plugin {
* @param $time * @param $time
*/ */
public function handle1Second($time) { public function handle1Second($time) {
if (!$this->updateManialink) return; if (!$this->updateManialink) {
return;
}
$this->updateManialink = false; $this->updateManialink = false;
$manialink = $this->buildManialink(); $manialink = $this->buildManialink();
$this->maniaControl->manialinkManager->sendManialink($manialink); $this->maniaControl->manialinkManager->sendManialink($manialink);