added dedimania settings, closed https://github.com/ManiaControl/ManiaControl/issues/137
This commit is contained in:
parent
e7df439276
commit
87cf06e407
@ -49,6 +49,9 @@ class DedimaniaPlugin implements CallbackListener, CommandListener, TimerListene
|
|||||||
const SETTING_WIDGET_LINE_COUNT = 'Widget Displayed Lines Count';
|
const SETTING_WIDGET_LINE_COUNT = 'Widget Displayed Lines Count';
|
||||||
const SETTING_WIDGET_LINE_HEIGHT = 'Widget Line Height';
|
const SETTING_WIDGET_LINE_HEIGHT = 'Widget Line Height';
|
||||||
const SETTING_DEDIMANIA_CODE = '$l[http://dedimania.net/tm2stats/?do=register]Dedimania Code for ';
|
const SETTING_DEDIMANIA_CODE = '$l[http://dedimania.net/tm2stats/?do=register]Dedimania Code for ';
|
||||||
|
const SETTING_NOTIFY_BEST_RECORDS = 'Notify Publicly only for the X Best Records';
|
||||||
|
const SETTING_MAX_RECORDS = 'Max Records, only increase if you bought a rank update from Dedimania!';
|
||||||
|
|
||||||
const CB_DEDIMANIA_CHANGED = 'Dedimania.Changed';
|
const CB_DEDIMANIA_CHANGED = 'Dedimania.Changed';
|
||||||
const CB_DEDIMANIA_UPDATED = 'Dedimania.Updated';
|
const CB_DEDIMANIA_UPDATED = 'Dedimania.Updated';
|
||||||
const ACTION_SHOW_DEDIRECORDSLIST = 'Dedimania.ShowDediRecordsList';
|
const ACTION_SHOW_DEDIRECORDSLIST = 'Dedimania.ShowDediRecordsList';
|
||||||
@ -96,6 +99,8 @@ class DedimaniaPlugin implements CallbackListener, CommandListener, TimerListene
|
|||||||
$this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_WIDGET_WIDTH, 40);
|
$this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_WIDGET_WIDTH, 40);
|
||||||
$this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_WIDGET_LINE_HEIGHT, 4);
|
$this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_WIDGET_LINE_HEIGHT, 4);
|
||||||
$this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_WIDGET_LINE_COUNT, 12);
|
$this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_WIDGET_LINE_COUNT, 12);
|
||||||
|
$this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_NOTIFY_BEST_RECORDS, 30);
|
||||||
|
$this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_MAX_RECORDS, 30);
|
||||||
|
|
||||||
// Callbacks
|
// Callbacks
|
||||||
$this->maniaControl->getCallbackManager()->registerCallbackListener(Callbacks::BEGINMAP, $this, 'handleBeginMap');
|
$this->maniaControl->getCallbackManager()->registerCallbackListener(Callbacks::BEGINMAP, $this, 'handleBeginMap');
|
||||||
@ -131,7 +136,10 @@ class DedimaniaPlugin implements CallbackListener, CommandListener, TimerListene
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
$maxRecords = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_MAX_RECORDS);
|
||||||
|
|
||||||
$dedimaniaData = new DedimaniaData($serverInfo->login, $dedimaniaCode, $serverInfo->path, $packMask, $serverVersion);
|
$dedimaniaData = new DedimaniaData($serverInfo->login, $dedimaniaCode, $serverInfo->path, $packMask, $serverVersion);
|
||||||
|
$dedimaniaData->serverMaxRank = $maxRecords;
|
||||||
|
|
||||||
//New Version
|
//New Version
|
||||||
$this->webHandler = new DedimaniaWebHandler($this->maniaControl);
|
$this->webHandler = new DedimaniaWebHandler($this->maniaControl);
|
||||||
@ -195,7 +203,7 @@ class DedimaniaPlugin implements CallbackListener, CommandListener, TimerListene
|
|||||||
$titleLabel->setText($title);
|
$titleLabel->setText($title);
|
||||||
$titleLabel->setTranslate(true);
|
$titleLabel->setTranslate(true);
|
||||||
|
|
||||||
$recordsFrame = $this->recordWidget->generateRecordsFrame($records,$lines);
|
$recordsFrame = $this->recordWidget->generateRecordsFrame($records, $lines);
|
||||||
$frame->addChild($recordsFrame);
|
$frame->addChild($recordsFrame);
|
||||||
|
|
||||||
$this->maniaControl->getManialinkManager()->sendManialink($manialink);
|
$this->maniaControl->getManialinkManager()->sendManialink($manialink);
|
||||||
@ -306,6 +314,8 @@ class DedimaniaPlugin implements CallbackListener, CommandListener, TimerListene
|
|||||||
|
|
||||||
$this->maniaControl->getCallbackManager()->triggerCallback(self::CB_DEDIMANIA_CHANGED, $newRecord);
|
$this->maniaControl->getCallbackManager()->triggerCallback(self::CB_DEDIMANIA_CHANGED, $newRecord);
|
||||||
|
|
||||||
|
$notifyOnlyBestRecords = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_NOTIFY_BEST_RECORDS);
|
||||||
|
|
||||||
// Announce record
|
// Announce record
|
||||||
if ($oldRecord->nullRecord || $newRecord->rank < $oldRecord->rank) {
|
if ($oldRecord->nullRecord || $newRecord->rank < $oldRecord->rank) {
|
||||||
// Gained rank
|
// Gained rank
|
||||||
@ -314,11 +324,24 @@ class DedimaniaPlugin implements CallbackListener, CommandListener, TimerListene
|
|||||||
// Only improved time
|
// Only improved time
|
||||||
$improvement = 'improved the';
|
$improvement = 'improved the';
|
||||||
}
|
}
|
||||||
$message = '$390$<$fff' . $player->nickname . '$> ' . $improvement . ' $<$ff0' . $newRecord->rank . '.$> Dedimania Record: $<$fff' . Formatter::formatTime($newRecord->best) . '$>';
|
|
||||||
|
if ($newRecord->rank <= $notifyOnlyBestRecords) {
|
||||||
|
$notifyName = $player->nickname;
|
||||||
|
} else {
|
||||||
|
$notifyName = 'You';
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
$message = '$390$<$fff' . $notifyName . '$> ' . $improvement . ' $<$ff0' . $newRecord->rank . '.$> Dedimania Record: $<$fff' . Formatter::formatTime($newRecord->best) . '$>';
|
||||||
if (!$oldRecord->nullRecord) {
|
if (!$oldRecord->nullRecord) {
|
||||||
$message .= ' ($<$ff0' . $oldRecord->rank . '.$> $<$fff-' . Formatter::formatTime(($oldRecord->best - $structure->getLapTime())) . '$>)';
|
$message .= ' ($<$ff0' . $oldRecord->rank . '.$> $<$fff-' . Formatter::formatTime(($oldRecord->best - $structure->getLapTime())) . '$>)';
|
||||||
}
|
}
|
||||||
$this->maniaControl->getChat()->sendInformation($message . '!');
|
|
||||||
|
if ($newRecord->rank <= $notifyOnlyBestRecords) {
|
||||||
|
$this->maniaControl->getChat()->sendInformation($message . '!');
|
||||||
|
} else {
|
||||||
|
$this->maniaControl->getChat()->sendInformation($message . '!', $player);
|
||||||
|
}
|
||||||
|
|
||||||
$this->webHandler->maniaLinkUpdateNeeded();
|
$this->webHandler->maniaLinkUpdateNeeded();
|
||||||
}
|
}
|
||||||
@ -615,8 +638,8 @@ class DedimaniaPlugin implements CallbackListener, CommandListener, TimerListene
|
|||||||
* Update the RecordWidget variables
|
* Update the RecordWidget variables
|
||||||
*/
|
*/
|
||||||
private function updateRecordWidget() {
|
private function updateRecordWidget() {
|
||||||
$width = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_WIDGET_WIDTH);
|
$width = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_WIDGET_WIDTH);
|
||||||
$lineHeight = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_WIDGET_LINE_HEIGHT);
|
$lineHeight = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_WIDGET_LINE_HEIGHT);
|
||||||
|
|
||||||
$this->recordWidget->setWidth($width);
|
$this->recordWidget->setWidth($width);
|
||||||
$this->recordWidget->setLineHeight($lineHeight);
|
$this->recordWidget->setLineHeight($lineHeight);
|
||||||
@ -624,7 +647,7 @@ class DedimaniaPlugin implements CallbackListener, CommandListener, TimerListene
|
|||||||
$this->webHandler->maniaLinkUpdateNeeded();
|
$this->webHandler->maniaLinkUpdateNeeded();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function handleSettingChanged(Setting $setting){
|
public function handleSettingChanged(Setting $setting) {
|
||||||
if (!$setting->belongsToClass($this)) {
|
if (!$setting->belongsToClass($this)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user