Dedimania Refactor Resolveds #139 #154

This commit is contained in:
kremsy
2017-06-22 15:07:00 +02:00
parent c40922c782
commit ff643c1674
4 changed files with 159 additions and 208 deletions

View File

@ -36,7 +36,7 @@ class DedimaniaPlugin implements CallbackListener, CommandListener, TimerListene
* Constants
*/
const ID = 8;
const VERSION = 0.2;
const VERSION = 0.3;
const AUTHOR = 'MCTeam';
const NAME = 'Dedimania Plugin';
const MLID_DEDIMANIA = 'Dedimania.ManialinkId';
@ -112,7 +112,7 @@ class DedimaniaPlugin implements CallbackListener, CommandListener, TimerListene
$this->maniaControl->getCallbackManager()->registerCallbackListener(Callbacks::TM_ONFINISHLINE, $this, 'handleFinishCallback');
$this->maniaControl->getCallbackManager()->registerCallbackListener(Callbacks::TM_ONLAPFINISH, $this, 'handleFinishCallback');
$this->maniaControl->getCallbackManager()->registerCallbackListener(SettingManager::CB_SETTING_CHANGED, $this, 'handleSettingChanged');
$this->maniaControl->getCallbackManager()->registerCallbackListener(Callbacks::AFTERLOOP, $this, 'handleAfterLoop');
$this->maniaControl->getTimerManager()->registerTimerListening($this, 'updateEverySecond', 1000);
$this->maniaControl->getTimerManager()->registerTimerListening($this, 'handleEveryMinute', 1000 * 60);
@ -152,6 +152,8 @@ class DedimaniaPlugin implements CallbackListener, CommandListener, TimerListene
/**
* Handle 1 Second Callback
*
* @internal
*/
public function updateEverySecond() {
if (!$this->webHandler->doesManiaLinkNeedUpdate()) {
@ -211,6 +213,8 @@ class DedimaniaPlugin implements CallbackListener, CommandListener, TimerListene
/**
* Handle 1 Minute Callback
*
* @internal
*/
public function handleEveryMinute() {
if ($this->webHandler->getDedimaniaData()->sessionId == "") {
@ -222,6 +226,7 @@ class DedimaniaPlugin implements CallbackListener, CommandListener, TimerListene
/**
* Handle PlayerConnect callback
*
* @internal
* @param Player $player
*/
public function handlePlayerConnect(Player $player) {
@ -231,6 +236,7 @@ class DedimaniaPlugin implements CallbackListener, CommandListener, TimerListene
/**
* Handle Player Disconnect Callback
*
* @internal
* @param Player $player
*/
public function handlePlayerDisconnect(Player $player) {
@ -239,6 +245,8 @@ class DedimaniaPlugin implements CallbackListener, CommandListener, TimerListene
/**
* Handle Begin Map Callback
*
* @internal
*/
public function handleBeginMap() {
$this->webHandler->getDedimaniaData()->unsetRecords();
@ -248,6 +256,8 @@ class DedimaniaPlugin implements CallbackListener, CommandListener, TimerListene
/**
* Handle EndMap Callback
*
* @internal
*/
public function handleMapEnd() {
$this->webHandler->submitChallengeTimes();
@ -256,6 +266,7 @@ class DedimaniaPlugin implements CallbackListener, CommandListener, TimerListene
/**
* Handle Checkpoint Callback
*
* @internal
* @param OnWayPointEventStructure $callback
*/
public function handleCheckpointCallback(OnWayPointEventStructure $structure) {
@ -273,6 +284,7 @@ class DedimaniaPlugin implements CallbackListener, CommandListener, TimerListene
/**
* Handle Finish Callback
*
* @internal
* @param \ManiaControl\Callbacks\Structures\TrackMania\OnWayPointEventStructure $structure
*/
public function handleFinishCallback(OnWayPointEventStructure $structure) {
@ -531,6 +543,7 @@ class DedimaniaPlugin implements CallbackListener, CommandListener, TimerListene
/**
* Handle PlayerManialinkPageAnswer callback
*
* @internal
* @param array $callback
*/
public function handleManialinkPageAnswer(array $callback) {
@ -544,9 +557,19 @@ class DedimaniaPlugin implements CallbackListener, CommandListener, TimerListene
}
}
/**
* Process Dedimania Webreqests at end of Loop
*
* @internal
*/
public function handleAfterLoop(){
$this->webHandler->callDedimania();
}
/**
* Shows a ManiaLink list with the local records.
*
* @api
* @param array $chat
* @param Player $player
*/
@ -628,6 +651,7 @@ class DedimaniaPlugin implements CallbackListener, CommandListener, TimerListene
/**
* Function to retrieve the dedimania records on the current map
*
* @api
* @return RecordData[]
*/
public function getDedimaniaRecords() {
@ -636,6 +660,7 @@ class DedimaniaPlugin implements CallbackListener, CommandListener, TimerListene
/**
* Update the RecordWidget variables
*
*/
private function updateRecordWidget() {
$width = $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_WIDGET_WIDTH);
@ -647,6 +672,12 @@ class DedimaniaPlugin implements CallbackListener, CommandListener, TimerListene
$this->webHandler->maniaLinkUpdateNeeded();
}
/**
* Handle settings Changed
*
* @internal
* @param \ManiaControl\Settings\Setting $setting
*/
public function handleSettingChanged(Setting $setting) {
if (!$setting->belongsToClass($this)) {
return;
@ -654,6 +685,7 @@ class DedimaniaPlugin implements CallbackListener, CommandListener, TimerListene
$this->updateRecordWidget();
}
/**
* @see \ManiaControl\Plugins\Plugin::unload()
*/