diff --git a/application/core/Admin/ActionsMenu.php b/application/core/Admin/ActionsMenu.php index 508a64d5..6824e129 100644 --- a/application/core/Admin/ActionsMenu.php +++ b/application/core/Admin/ActionsMenu.php @@ -27,13 +27,13 @@ class ActionsMenu implements CallbackListener, ManialinkPageAnswerListener { /* * Constants */ - const MLID_MENU = 'ActionsMenu.MLID'; - const SETTING_MENU_POSX = 'Menu Position: X'; - const SETTING_MENU_POSY = 'Menu Position: Y'; - const SETTING_MENU_ITEMSIZE = 'Menu Item Size'; - const ACTION_OPEN_ADMIN_MENU = 'ActionsMenu.OpenAdminMenu'; + const MLID_MENU = 'ActionsMenu.MLID'; + const SETTING_MENU_POSX = 'Menu Position: X'; + const SETTING_MENU_POSY = 'Menu Position: Y'; + const SETTING_MENU_ITEMSIZE = 'Menu Item Size'; + const ACTION_OPEN_ADMIN_MENU = 'ActionsMenu.OpenAdminMenu'; const ACTION_OPEN_PLAYER_MENU = 'ActionsMenu.OpenPlayerMenu'; - + /* * Private Properties */ @@ -49,12 +49,12 @@ class ActionsMenu implements CallbackListener, ManialinkPageAnswerListener { */ public function __construct(ManiaControl $maniaControl) { $this->maniaControl = $maniaControl; - + // Init settings $this->maniaControl->settingManager->initSetting($this, self::SETTING_MENU_POSX, 156.); $this->maniaControl->settingManager->initSetting($this, self::SETTING_MENU_POSY, -17.); $this->maniaControl->settingManager->initSetting($this, self::SETTING_MENU_ITEMSIZE, 6.); - + // Register for callbacks $this->maniaControl->callbackManager->registerCallbackListener(CallbackManager::CB_AFTERINIT, $this, 'handleAfterInit'); $this->maniaControl->callbackManager->registerCallbackListener(PlayerManager::CB_PLAYERCONNECT, $this, 'handlePlayerJoined'); @@ -65,14 +65,15 @@ class ActionsMenu implements CallbackListener, ManialinkPageAnswerListener { * Add a new Menu Item * * @param Control $control - * @param bool $playerAction - * @param int $order - * @param string $description + * @param bool $playerAction + * @param int $order + * @param string $description */ public function addMenuItem(Control $control, $playerAction = true, $order = 0, $description = null) { - if($playerAction) { + if ($playerAction) { $this->addPlayerMenuItem($control, $order, $description); - } else { + } + else { $this->addAdminMenuItem($control, $order, $description); } } @@ -80,13 +81,14 @@ class ActionsMenu implements CallbackListener, ManialinkPageAnswerListener { /** * Removes a Menu Item * - * @param $order + * @param $order * @param bool $playerAction */ public function removeMenuItem($order, $playerAction = true) { - if($playerAction) { + if ($playerAction) { unset($this->playerMenuItems[$order]); - } else { + } + else { unset($this->adminMenuItems[$order]); } $this->rebuildAndShowMenu(); @@ -96,11 +98,11 @@ class ActionsMenu implements CallbackListener, ManialinkPageAnswerListener { * Add a new Player Menu Item * * @param Control $control - * @param int $order - * @param string $description + * @param int $order + * @param string $description */ public function addPlayerMenuItem(Control $control, $order = 0, $description = null) { - if(!isset($this->playerMenuItems[$order])) { + if (!isset($this->playerMenuItems[$order])) { $this->playerMenuItems[$order] = array(); } array_push($this->playerMenuItems[$order], array($control, $description)); @@ -112,11 +114,11 @@ class ActionsMenu implements CallbackListener, ManialinkPageAnswerListener { * Add a new Admin Menu Item * * @param Control $control - * @param int $order - * @param string $description + * @param int $order + * @param string $description */ public function addAdminMenuItem(Control $control, $order = 0, $description = null) { - if(!isset($this->adminMenuItems[$order])) { + if (!isset($this->adminMenuItems[$order])) { $this->adminMenuItems[$order] = array(); } array_push($this->adminMenuItems[$order], array($control, $description)); @@ -136,12 +138,12 @@ class ActionsMenu implements CallbackListener, ManialinkPageAnswerListener { * Build and show the menus to everyone (if a menu get made after the init) */ public function rebuildAndShowMenu() { - if(!$this->initCompleted) { + if (!$this->initCompleted) { return; } $players = $this->maniaControl->playerManager->getPlayers(); - foreach($players as $player) { - $manialink = $this->buildMenuIconsManialink($player); + foreach ($players as $player) { + $manialink = $this->buildMenuIconsManialink($player); $this->maniaControl->manialinkManager->sendManialink($manialink, $player->login); } } @@ -163,55 +165,54 @@ class ActionsMenu implements CallbackListener, ManialinkPageAnswerListener { * @return ManiaLink */ private function buildMenuIconsManialink(Player $player) { - $posX = $this->maniaControl->settingManager->getSetting($this, self::SETTING_MENU_POSX); - $posY = $this->maniaControl->settingManager->getSetting($this, self::SETTING_MENU_POSY); - $itemSize = $this->maniaControl->settingManager->getSetting($this, self::SETTING_MENU_ITEMSIZE); - $shootManiaOffset = $this->maniaControl->manialinkManager->styleManager->getDefaultIconOffsetSM(); - $quadStyle = $this->maniaControl->manialinkManager->styleManager->getDefaultQuadStyle(); - $quadSubstyle = $this->maniaControl->manialinkManager->styleManager->getDefaultQuadSubstyle(); + $posX = $this->maniaControl->settingManager->getSetting($this, self::SETTING_MENU_POSX); + $posY = $this->maniaControl->settingManager->getSetting($this, self::SETTING_MENU_POSY); + $itemSize = $this->maniaControl->settingManager->getSetting($this, self::SETTING_MENU_ITEMSIZE); + $shootManiaOffset = $this->maniaControl->manialinkManager->styleManager->getDefaultIconOffsetSM(); + $quadStyle = $this->maniaControl->manialinkManager->styleManager->getDefaultQuadStyle(); + $quadSubstyle = $this->maniaControl->manialinkManager->styleManager->getDefaultQuadSubstyle(); $itemMarginFactorX = 1.3; $itemMarginFactorY = 1.2; - - //If game is shootmania lower the icons position by 20 + + // If game is shootmania lower the icons position by 20 if ($this->maniaControl->mapManager->getCurrentMap()->getGame() == 'sm') { $posY -= $shootManiaOffset; } - + $manialink = new ManiaLink(self::MLID_MENU); - $script = new Script(); - $manialink->setScript($script); - + $script = $manialink->getScript(); + /* * Admin Menu */ - if($this->maniaControl->authenticationManager->checkRight($player, AuthenticationManager::AUTH_LEVEL_MODERATOR)) { + if ($this->maniaControl->authenticationManager->checkRight($player, AuthenticationManager::AUTH_LEVEL_MODERATOR)) { // Admin Menu Icon Frame $iconFrame = new Frame(); $manialink->add($iconFrame); $iconFrame->setPosition($posX, $posY); - + $backgroundQuad = new Quad(); $iconFrame->add($backgroundQuad); $backgroundQuad->setSize($itemSize * $itemMarginFactorX, $itemSize * $itemMarginFactorY); $backgroundQuad->setStyles($quadStyle, $quadSubstyle); - + $itemQuad = new Quad_Icons64x64_1(); $iconFrame->add($itemQuad); $itemQuad->setSubStyle($itemQuad::SUBSTYLE_IconServers); $itemQuad->setSize($itemSize, $itemSize); - + // Admin Menu Description Label $descriptionFrame = new Frame(); $manialink->add($descriptionFrame); $descriptionFrame->setPosition($posX - count($this->adminMenuItems) * $itemSize * 1.15 - 6, $posY); - + $descriptionLabel = new Label(); $descriptionFrame->add($descriptionLabel); $descriptionLabel->setAlign(Control::RIGHT, Control::TOP); $descriptionLabel->setSize(40, 4); $descriptionLabel->setTextSize(1.4); $descriptionLabel->setTextColor('fff'); - + // Admin Menu $popoutFrame = new Frame(); $manialink->add($popoutFrame); @@ -219,38 +220,35 @@ class ActionsMenu implements CallbackListener, ManialinkPageAnswerListener { $popoutFrame->setHAlign(Control::RIGHT); $popoutFrame->setSize(4 * $itemSize * $itemMarginFactorX, $itemSize * $itemMarginFactorY); $popoutFrame->setVisible(false); - + $backgroundQuad = new Quad(); $popoutFrame->add($backgroundQuad); $backgroundQuad->setHAlign(Control::RIGHT); $backgroundQuad->setStyles($quadStyle, $quadSubstyle); $backgroundQuad->setSize(count($this->adminMenuItems) * $itemSize * 1.15 + 2, $itemSize * $itemMarginFactorY); - - $itemQuad->addToggleFeature($popoutFrame); - + + $itemQuad->addToggleFeature($popoutFrame); + // Add items $x = -1; - foreach($this->adminMenuItems as $menuItems) { - foreach($menuItems as $menuItem) { + foreach ($this->adminMenuItems as $menuItems) { + foreach ($menuItems as $menuItem) { $menuQuad = $menuItem[0]; - /** - * - * @var Quad $menuQuad - */ + /** @var Quad $menuQuad */ $popoutFrame->add($menuQuad); $menuQuad->setSize($itemSize, $itemSize); $menuQuad->setX($x); $menuQuad->setHAlign(Control::RIGHT); $x -= $itemSize * 1.05; - - if($menuItem[1]) { + + if ($menuItem[1]) { $description = '$s' . $menuItem[1]; - $menuQuad->addTooltipLabelFeature($descriptionLabel, $description); + $menuQuad->addTooltipLabelFeature($descriptionLabel, $description); } } } } - + /* * Player Menu */ @@ -258,29 +256,29 @@ class ActionsMenu implements CallbackListener, ManialinkPageAnswerListener { $iconFrame = new Frame(); $manialink->add($iconFrame); $iconFrame->setPosition($posX, $posY - $itemSize * $itemMarginFactorY); - + $backgroundQuad = new Quad(); $iconFrame->add($backgroundQuad); $backgroundQuad->setSize($itemSize * $itemMarginFactorX, $itemSize * $itemMarginFactorY); $backgroundQuad->setStyles($quadStyle, $quadSubstyle); - + $itemQuad = new Quad_Icons64x64_1(); $iconFrame->add($itemQuad); $itemQuad->setSubStyle($itemQuad::SUBSTYLE_IconPlayers); $itemQuad->setSize($itemSize, $itemSize); - + // Player Menu Description Frame $descriptionFrame = new Frame(); $manialink->add($descriptionFrame); $descriptionFrame->setPosition($posX - count($this->playerMenuItems) * $itemSize * 1.15 - 6, $posY - $itemSize * $itemMarginFactorY); - + $descriptionLabel = new Label(); $descriptionFrame->add($descriptionLabel); $descriptionLabel->setAlign(Control::RIGHT, Control::TOP); $descriptionLabel->setSize(40, 4); $descriptionLabel->setTextSize(1.4); $descriptionLabel->setTextColor('fff'); - + // Player Menu $popoutFrame = new Frame(); $manialink->add($popoutFrame); @@ -288,36 +286,36 @@ class ActionsMenu implements CallbackListener, ManialinkPageAnswerListener { $popoutFrame->setHAlign(Control::RIGHT); $popoutFrame->setSize(4 * $itemSize * $itemMarginFactorX, $itemSize * $itemMarginFactorY); $popoutFrame->setVisible(false); - + $backgroundQuad = new Quad(); $popoutFrame->add($backgroundQuad); $backgroundQuad->setHAlign(Control::RIGHT); $backgroundQuad->setStyles($quadStyle, $quadSubstyle); $backgroundQuad->setSize(count($this->playerMenuItems) * $itemSize * 1.15 + 2, $itemSize * $itemMarginFactorY); - $itemQuad->addToggleFeature($popoutFrame); - + + $itemQuad->addToggleFeature($popoutFrame); + // Add items $x = -1; - foreach($this->playerMenuItems as $menuItems) { - foreach($menuItems as $menuItem) { + foreach ($this->playerMenuItems as $menuItems) { + foreach ($menuItems as $menuItem) { $menuQuad = $menuItem[0]; - /** - * - * @var Quad $menuQuad - */ + /** @var Quad $menuQuad */ $popoutFrame->add($menuQuad); $menuQuad->setSize($itemSize, $itemSize); $menuQuad->setX($x); $menuQuad->setHAlign(Control::RIGHT); $x -= $itemSize * 1.05; - - if($menuItem[1]) { + + if ($menuItem[1]) { $description = '$s' . $menuItem[1]; - $menuQuad->addTooltipLabelFeature($descriptionLabel, $description); + $menuQuad->addTooltipLabelFeature($descriptionLabel, $description); } } } - + + //if ($player->login === 'steeffeen') var_dump((string)$manialink); + return $manialink; } } diff --git a/application/core/Callbacks/CallbackListener.php b/application/core/Callbacks/CallbackListener.php index 8043fd1c..91676b59 100644 --- a/application/core/Callbacks/CallbackListener.php +++ b/application/core/Callbacks/CallbackListener.php @@ -10,8 +10,4 @@ namespace ManiaControl\Callbacks; * @license http://www.gnu.org/licenses/ GNU General Public License, Version 3 */ interface CallbackListener { - /* - * Constants - */ - const CALLBACKLISTENER_INTERFACE = __CLASS__; } diff --git a/application/core/Callbacks/TimerListener.php b/application/core/Callbacks/TimerListener.php index ee8aea85..ef9e764e 100644 --- a/application/core/Callbacks/TimerListener.php +++ b/application/core/Callbacks/TimerListener.php @@ -10,8 +10,4 @@ namespace ManiaControl\Callbacks; * @license http://www.gnu.org/licenses/ GNU General Public License, Version 3 */ interface TimerListener { - /* - * Constants - */ - const TIMERLISTENER_INTERFACE = __CLASS__; } diff --git a/application/core/Libs/FML/Script/Features/Paging.php b/application/core/Libs/FML/Script/Features/Paging.php index 24714b79..11a2802d 100644 --- a/application/core/Libs/FML/Script/Features/Paging.php +++ b/application/core/Libs/FML/Script/Features/Paging.php @@ -267,7 +267,7 @@ Void {$updatePageFunction}(Text _PagingId, Text _PageLabelId, Integer _BrowseAct $script->addScriptFunction($updatePageFunction, $functionText); return $this; } - + /** * Get the minimum Page * @@ -323,6 +323,9 @@ Void {$updatePageFunction}(Text _PagingId, Text _PageLabelId, Integer _BrowseAct * @return string */ protected function getPageButtonsArrayText() { + if (!$this->buttons) { + return Builder::getArray(array("" => 0), true); + } $pageButtons = array(); foreach ($this->buttons as $pageButton) { $pageButtons[$pageButton->getControl()->getId()] = $pageButton->getBrowseAction(); diff --git a/application/core/Libs/FML/Script/Script.php b/application/core/Libs/FML/Script/Script.php index 75a523b7..0c0e055a 100644 --- a/application/core/Libs/FML/Script/Script.php +++ b/application/core/Libs/FML/Script/Script.php @@ -81,7 +81,7 @@ class Script { else { $scriptFunction = new ScriptFunction($name, $text); } - array_push($this->functions, $scriptFunction); + $this->functions[$scriptFunction->getName()] = $scriptFunction; return $this; } diff --git a/application/core/Libs/FML/Script/ScriptFunction.php b/application/core/Libs/FML/Script/ScriptFunction.php index 19eeccbc..b3217ceb 100644 --- a/application/core/Libs/FML/Script/ScriptFunction.php +++ b/application/core/Libs/FML/Script/ScriptFunction.php @@ -38,6 +38,15 @@ class ScriptFunction { return $this; } + /** + * Get the Name + * + * @return string + */ + public function getName() { + return $this->name; + } + /** * Set the Text * diff --git a/application/core/Manialinks/ManialinkPageAnswerListener.php b/application/core/Manialinks/ManialinkPageAnswerListener.php index 8de364d2..49033942 100644 --- a/application/core/Manialinks/ManialinkPageAnswerListener.php +++ b/application/core/Manialinks/ManialinkPageAnswerListener.php @@ -10,8 +10,4 @@ namespace ManiaControl\Manialinks; * @license http://www.gnu.org/licenses/ GNU General Public License, Version 3 */ interface ManialinkPageAnswerListener { - /* - * Constants - */ - const MANIALINKPAGEANSWERLISTENER_INTERFACE = __CLASS__; } diff --git a/application/core/Manialinks/StyleManager.php b/application/core/Manialinks/StyleManager.php index 9bdaecc4..bfcf69b0 100644 --- a/application/core/Manialinks/StyleManager.php +++ b/application/core/Manialinks/StyleManager.php @@ -159,12 +159,19 @@ class StyleManager { * * @return Frame $frame */ - public function getDefaultListFrame(Script $script = null, $pagesId = '') { - $paging = null; - if ($script) { - $paging = new Paging(); - $script->addFeature($paging); - } + public function getDefaultListFrame() { + $args = func_get_args(); + $script = null; + $paging = null; + foreach ($args as $arg) { + if ($arg instanceof Script) { + $script = $arg; + } + if ($arg instanceof Paging) { + $paging = $arg; + } + } + $width = $this->getListWidgetsWidth(); $height = $this->getListWidgetsHeight(); $quadStyle = $this->getDefaultMainWindowStyle(); @@ -189,7 +196,7 @@ class StyleManager { $closeQuad->setSubStyle(Quad_Icons64x64_1::SUBSTYLE_QuitRace); $closeQuad->setAction(ManialinkManager::ACTION_CLOSEWIDGET); - if ($pagesId && isset($script)) { + if ($script) { $pagerSize = 6.; $pagerPrev = new Quad_Icons64x64_1(); $frame->add($pagerPrev); diff --git a/application/core/Maps/MapList.php b/application/core/Maps/MapList.php index f65842ae..5897f074 100644 --- a/application/core/Maps/MapList.php +++ b/application/core/Maps/MapList.php @@ -37,23 +37,23 @@ class MapList implements ManialinkPageAnswerListener, CallbackListener { /* * Constants */ - const ACTION_UPDATE_MAP = 'MapList.UpdateMap'; - const ACTION_ERASE_MAP = 'MapList.EraseMap'; - const ACTION_SWITCH_MAP = 'MapList.SwitchMap'; - const ACTION_START_SWITCH_VOTE = 'MapList.StartMapSwitchVote'; - const ACTION_QUEUED_MAP = 'MapList.QueueMap'; - const ACTION_UNQUEUE_MAP = 'MapList.UnQueueMap'; - const ACTION_CHECK_UPDATE = 'MapList.CheckUpdate'; - const ACTION_CLEAR_MAPQUEUE = 'MapList.ClearMapQueue'; - const MAX_MAPS_PER_PAGE = 15; - const DEFAULT_KARMA_PLUGIN = 'KarmaPlugin'; + const ACTION_UPDATE_MAP = 'MapList.UpdateMap'; + const ACTION_ERASE_MAP = 'MapList.EraseMap'; + const ACTION_SWITCH_MAP = 'MapList.SwitchMap'; + const ACTION_START_SWITCH_VOTE = 'MapList.StartMapSwitchVote'; + const ACTION_QUEUED_MAP = 'MapList.QueueMap'; + const ACTION_UNQUEUE_MAP = 'MapList.UnQueueMap'; + const ACTION_CHECK_UPDATE = 'MapList.CheckUpdate'; + const ACTION_CLEAR_MAPQUEUE = 'MapList.ClearMapQueue'; + const MAX_MAPS_PER_PAGE = 15; + const DEFAULT_KARMA_PLUGIN = 'KarmaPlugin'; const DEFAULT_CUSTOM_VOTE_PLUGIN = 'CustomVotesPlugin'; - + /* * Private Properties */ - private $maniaControl = null; - private $mapListShown = array(); + private $maniaControl = null; + private $mapListShown = array(); private $mapsInListShown = array(); /** @@ -63,7 +63,7 @@ class MapList implements ManialinkPageAnswerListener, CallbackListener { */ public function __construct(ManiaControl $maniaControl) { $this->maniaControl = $maniaControl; - + // Register for Callbacks $this->maniaControl->callbackManager->registerCallbackListener(ManialinkManager::CB_MAIN_WINDOW_CLOSED, $this, 'closeWidget'); $this->maniaControl->callbackManager->registerCallbackListener(ManialinkManager::CB_MAIN_WINDOW_OPENED, $this, 'handleWidgetOpened'); @@ -72,7 +72,7 @@ class MapList implements ManialinkPageAnswerListener, CallbackListener { $this->maniaControl->callbackManager->registerCallbackListener(MapManager::CB_MAPS_UPDATED, $this, 'updateWidget'); $this->maniaControl->callbackManager->registerCallbackListener(MapManager::CB_KARMA_UPDATED, $this, 'updateWidget'); $this->maniaControl->callbackManager->registerCallbackListener(MapManager::CB_BEGINMAP, $this, 'updateWidget'); - + $this->maniaControl->manialinkManager->registerManialinkPageAnswerListener(self::ACTION_CHECK_UPDATE, $this, 'checkUpdates'); $this->maniaControl->manialinkManager->registerManialinkPageAnswerListener(self::ACTION_CLEAR_MAPQUEUE, $this, 'clearMapQueue'); } @@ -80,78 +80,74 @@ class MapList implements ManialinkPageAnswerListener, CallbackListener { /** * Clears the Map Queue * - * @param array $chatCallback + * @param array $chatCallback * @param Player $player */ - public function clearMapQueue(array $chatCallback, Player $player) { - //Clears the Map Queue + public function clearMapQueue(array $chatCallback, Player $player) { + // Clears the Map Queue $this->maniaControl->mapManager->mapQueue->clearMapQueue($player); } /** * Check for Map Updates * - * @param array $chatCallback + * @param array $chatCallback * @param Player $player */ public function checkUpdates(array $chatCallback, Player $player) { - //Update Mx Infos + // Update Mx Infos $this->maniaControl->mapManager->mxManager->fetchManiaExchangeMapInformations(); - - //Reshow the Maplist + + // Reshow the Maplist $this->showMapList($player); } - /** * Displayes a MapList on the screen * * @param Player $player */ public function showMapList(Player $player, $maps = null) { - $width = $this->maniaControl->manialinkManager->styleManager->getListWidgetsWidth(); + $width = $this->maniaControl->manialinkManager->styleManager->getListWidgetsWidth(); $height = $this->maniaControl->manialinkManager->styleManager->getListWidgetsHeight(); - + $this->mapListShown[$player->login] = true; - + // Get Maps - if(is_null($maps) && $maps != 'redirect') { + if (is_null($maps) && $maps != 'redirect') { $mapList = $this->maniaControl->mapManager->getMaps(); - } else { - if(array_key_exists($player->login, $this->mapsInListShown) && $maps == 'redirect') { + } + else { + if (array_key_exists($player->login, $this->mapsInListShown) && $maps == 'redirect') { $mapList = $this->mapsInListShown[$player->login]; - } else { + } + else { $mapList = $maps; } } - + $this->mapsInListShown[$player->login] = $mapList; - - $pagesId = ''; - if (count($mapList) > self::MAX_MAPS_PER_PAGE) { - $pagesId = 'MapListPages'; - } - - //Create ManiaLink + + // Create ManiaLink $maniaLink = new ManiaLink(ManialinkManager::MAIN_MLID); - $script = $maniaLink->getScript(); - $paging = new Paging(); - $script->addFeature($paging); - + $script = $maniaLink->getScript(); + $paging = new Paging(); + $script->addFeature($paging); + // Main frame - $frame = $this->maniaControl->manialinkManager->styleManager->getDefaultListFrame($script, $pagesId); + $frame = $this->maniaControl->manialinkManager->styleManager->getDefaultListFrame($script, $paging); $maniaLink->add($frame); - - //Admin Buttons + + // Admin Buttons if ($this->maniaControl->authenticationManager->checkPermission($player, MapQueue::SETTING_PERMISSION_CLEAR_MAPQUEUE)) { - //Clear Map-Queue + // Clear Map-Queue $label = new Label_Button(); $frame->add($label); $label->setText("Clear Map-Queue"); $label->setTextSize(1); $label->setPosition($width / 2 - 8, -$height / 2 + 9); $label->setHAlign(Control::RIGHT); - + $quad = new Quad_BgsPlayerCard(); $frame->add($quad); $quad->setPosition($width / 2 - 5, -$height / 2 + 9, 0.01); @@ -160,16 +156,16 @@ class MapList implements ManialinkPageAnswerListener, CallbackListener { $quad->setSize(29, 4); $quad->setAction(self::ACTION_CLEAR_MAPQUEUE); } - + if ($this->maniaControl->authenticationManager->checkPermission($player, MapManager::SETTING_PERMISSION_CHECK_UPDATE)) { - //Check Update + // Check Update $label = new Label_Button(); $frame->add($label); $label->setText("Check MX Updates"); $label->setTextSize(1); $label->setPosition($width / 2 - 41, -$height / 2 + 9, 0.01); $label->setHAlign(Control::RIGHT); - + $quad = new Quad_BgsPlayerCard(); $frame->add($quad); $quad->setPosition($width / 2 - 37, -$height / 2 + 9, 0.01); @@ -177,7 +173,7 @@ class MapList implements ManialinkPageAnswerListener, CallbackListener { $quad->setHAlign(Control::RIGHT); $quad->setSize(35, 4); $quad->setAction(self::ACTION_CHECK_UPDATE); - + $mxQuad = new Quad(); $frame->add($mxQuad); $mxQuad->setSize(3, 3); @@ -187,29 +183,32 @@ class MapList implements ManialinkPageAnswerListener, CallbackListener { $mxQuad->setZ(0.01); $mxQuad->setAction(self::ACTION_CHECK_UPDATE); } - + // Headline $headFrame = new Frame(); $frame->add($headFrame); $headFrame->setY($height / 2 - 5); - $x = -$width / 2; - $array = array('Id' => $x + 5, 'Mx Id' => $x + 10, 'Map Name' => $x + 20, 'Author' => $x + 68, 'Karma' => $x + 115, 'Actions' => $width / 2 - 15); + $x = -$width / 2; + $array = array('Id' => $x + 5, 'Mx Id' => $x + 10, 'Map Name' => $x + 20, 'Author' => $x + 68, 'Karma' => $x + 115, + 'Actions' => $width / 2 - 15); $this->maniaControl->manialinkManager->labelLine($headFrame, $array); - - //Predefine description Label + + // Predefine description Label $descriptionLabel = $this->maniaControl->manialinkManager->styleManager->getDefaultDescriptionLabel(); $frame->add($descriptionLabel); - + $queuedMaps = $this->maniaControl->mapManager->mapQueue->getQueuedMapsRanking(); /** + * * @var KarmaPlugin $karmaPlugin */ $karmaPlugin = $this->maniaControl->pluginManager->getPlugin(self::DEFAULT_KARMA_PLUGIN); - - $id = 1; - $y = $height / 2 - 10; + + $id = 1; + $y = $height / 2 - 10; $pageFrames = array(); /** + * * @var Map $map */ $currentMap = $this->maniaControl->mapManager->getCurrentMap(); @@ -217,8 +216,8 @@ class MapList implements ManialinkPageAnswerListener, CallbackListener { $mxIconHover = $this->maniaControl->manialinkManager->iconManager->getIcon(IconManager::MX_ICON_MOVER); $mxIconGreen = $this->maniaControl->manialinkManager->iconManager->getIcon(IconManager::MX_ICON_GREEN); $mxIconGreenHover = $this->maniaControl->manialinkManager->iconManager->getIcon(IconManager::MX_ICON_GREEN_MOVER); - - foreach($mapList as $map) { + + foreach ($mapList as $map) { if (!isset($pageFrame)) { $pageFrame = new Frame(); $frame->add($pageFrame); @@ -227,16 +226,16 @@ class MapList implements ManialinkPageAnswerListener, CallbackListener { } array_push($pageFrames, $pageFrame); $y = $height / 2 - 10; - - $paging->addPage($pageFrame); + + $paging->addPage($pageFrame); } - + // Map Frame $mapFrame = new Frame(); $pageFrame->add($mapFrame); $mapFrame->setZ(0.1); $mapFrame->setY($y); - + if ($id % 2 != 0) { $lineQuad = new Quad_BgsPlayerCard(); $mapFrame->add($lineQuad); @@ -244,7 +243,7 @@ class MapList implements ManialinkPageAnswerListener, CallbackListener { $lineQuad->setSubStyle($lineQuad::SUBSTYLE_BgPlayerCardBig); $lineQuad->setZ(0.001); } - + if ($currentMap === $map) { $currentQuad = new Quad_Icons64x64_1(); $mapFrame->add($currentQuad); @@ -253,11 +252,11 @@ class MapList implements ManialinkPageAnswerListener, CallbackListener { $currentQuad->setSize(4, 4); $currentQuad->setSubStyle($currentQuad::SUBSTYLE_ArrowBlue); } - + $mxId = '-'; if (isset($map->mx->id)) { $mxId = $map->mx->id; - + $mxQuad = new Quad(); $mapFrame->add($mxQuad); $mxQuad->setSize(3, 3); @@ -266,9 +265,9 @@ class MapList implements ManialinkPageAnswerListener, CallbackListener { $mxQuad->setX($x + 65); $mxQuad->setUrl($map->mx->pageurl); $mxQuad->setZ(0.01); - $description = 'View $<' . $map->name . '$> on Mania-Exchange'; - $mxQuad->addTooltipLabelFeature($descriptionLabel, $description); - + $description = 'View $<' . $map->name . '$> on Mania-Exchange'; + $mxQuad->addTooltipLabelFeature($descriptionLabel, $description); + if ($map->updateAvailable()) { $mxQuad = new Quad(); $mapFrame->add($mxQuad); @@ -278,29 +277,30 @@ class MapList implements ManialinkPageAnswerListener, CallbackListener { $mxQuad->setX($x + 62); $mxQuad->setUrl($map->mx->pageurl); $mxQuad->setZ(0.01); - $description = 'Update for $<' . $map->name . '$> available on Mania-Exchange!'; - $mxQuad->addTooltipLabelFeature($descriptionLabel, $description); - - //Update Button + $description = 'Update for $<' . $map->name . '$> available on Mania-Exchange!'; + $mxQuad->addTooltipLabelFeature($descriptionLabel, $description); + + // Update Button if ($this->maniaControl->authenticationManager->checkPermission($player, MapManager::SETTING_PERMISSION_ADD_MAP)) { $mxQuad->setAction(self::ACTION_UPDATE_MAP . '.' . $map->uid); } } - } - + // Display Maps - $array = array($id => $x + 5, $mxId => $x + 10, Formatter::stripDirtyCodes($map->name) => $x + 20, $map->authorNick => $x + 68); + $array = array($id => $x + 5, $mxId => $x + 10, Formatter::stripDirtyCodes($map->name) => $x + 20, $map->authorNick => $x + 68); $labels = $this->maniaControl->manialinkManager->labelLine($mapFrame, $array); if (isset($labels[3])) { - /** @var Label $label */ - $label = $labels[3]; - $description = '$<' . $map->name . '$> made by $<' . $map->authorLogin . '$>'; - $label->addTooltipLabelFeature($descriptionLabel, $description); + /** + * @var Label $label + */ + $label = $labels[3]; + $description = '$<' . $map->name . '$> made by $<' . $map->authorLogin . '$>'; + $label->addTooltipLabelFeature($descriptionLabel, $description); } - + // TODO action detailed map info including mx info - + // Map-Queue-Map-Label if (isset($queuedMaps[$map->uid])) { $label = new Label_Text(); @@ -311,19 +311,20 @@ class MapList implements ManialinkPageAnswerListener, CallbackListener { $label->setTextSize(1.5); $label->setText($queuedMaps[$map->uid]); $label->setTextColor('fff'); - - //Checks if the Player who openend the Widget has queued the map + + // Checks if the Player who openend the Widget has queued the map $queuer = $this->maniaControl->mapManager->mapQueue->getQueuer($map->uid); if ($queuer->login == $player->login) { - $description = 'Remove $<' . $map->name . '$> from the Map Queue'; - $label->addTooltipLabelFeature($descriptionLabel, $description); + $description = 'Remove $<' . $map->name . '$> from the Map Queue'; + $label->addTooltipLabelFeature($descriptionLabel, $description); $label->setAction(self::ACTION_UNQUEUE_MAP . '.' . $map->uid); - } else { - $description = '$<' . $map->name . '$> is on Map-Queue Position: ' . $queuedMaps[$map->uid]; - $label->addTooltipLabelFeature($descriptionLabel, $description); } - - } else { + else { + $description = '$<' . $map->name . '$> is on Map-Queue Position: ' . $queuedMaps[$map->uid]; + $label->addTooltipLabelFeature($descriptionLabel, $description); + } + } + else { // Map-Queue-Map-Button $queueLabel = new Label_Button(); $mapFrame->add($queueLabel); @@ -333,11 +334,11 @@ class MapList implements ManialinkPageAnswerListener, CallbackListener { $queueLabel->setAction(self::ACTION_QUEUED_MAP . '.' . $map->uid); $queueLabel->setText('+'); $queueLabel->setTextColor('09f'); - - $description = 'Add $<' . $map->name . '$> to the Map Queue'; - $queueLabel->addTooltipLabelFeature($descriptionLabel, $description); + + $description = 'Add $<' . $map->name . '$> to the Map Queue'; + $queueLabel->addTooltipLabelFeature($descriptionLabel, $description); } - + if ($this->maniaControl->authenticationManager->checkPermission($player, MapManager::SETTING_PERMISSION_REMOVE_MAP)) { // erase map quad $eraseLabel = new Label_Button(); @@ -348,13 +349,13 @@ class MapList implements ManialinkPageAnswerListener, CallbackListener { $eraseLabel->setTextSize(1); $eraseLabel->setText('x'); $eraseLabel->setTextColor('a00'); - + $confirmFrame = $this->buildConfirmFrame($maniaLink, $y, $id, $map->uid); - $eraseLabel->addToggleFeature($confirmFrame); - $description = 'Remove Map: $<' . $map->name . '$>'; - $eraseLabel->addToggleFeature($descriptionLabel, $description); + $eraseLabel->addToggleFeature($confirmFrame); + $description = 'Remove Map: $<' . $map->name . '$>'; + $eraseLabel->addTooltipLabelFeature($descriptionLabel, $description); } - + if ($this->maniaControl->authenticationManager->checkPermission($player, MapManager::SETTING_PERMISSION_ADD_MAP)) { // Switch to map $switchLabel = new Label_Button(); @@ -365,15 +366,15 @@ class MapList implements ManialinkPageAnswerListener, CallbackListener { $switchLabel->setTextSize(2); $switchLabel->setText('»'); $switchLabel->setTextColor('0f0'); - + $confirmFrame = $this->buildConfirmFrame($maniaLink, $y, $id); - $switchLabel->addToggleFeature($confirmFrame); - - $description = 'Switch Directly to Map: $<' . $map->name . '$>'; - $switchLabel->addTooltipLabelFeature($descriptionLabel, $description); - - } else if ($this->maniaControl->pluginManager->isPluginActive(self::DEFAULT_CUSTOM_VOTE_PLUGIN)) { - //Switch Map Voting + $switchLabel->addToggleFeature($confirmFrame); + + $description = 'Switch Directly to Map: $<' . $map->name . '$>'; + $switchLabel->addTooltipLabelFeature($descriptionLabel, $description); + } + else if ($this->maniaControl->pluginManager->isPluginActive(self::DEFAULT_CUSTOM_VOTE_PLUGIN)) { + // Switch Map Voting $switchLabel = new Label_Button(); $mapFrame->add($switchLabel); $switchLabel->setX($width / 2 - 10); @@ -382,13 +383,13 @@ class MapList implements ManialinkPageAnswerListener, CallbackListener { $switchLabel->setTextSize(2); $switchLabel->setText('»'); $switchLabel->setTextColor('0f0'); - + $switchLabel->setAction(self::ACTION_START_SWITCH_VOTE . '.' . ($id - 1)); - - $description = 'Start Map-Switch Vote: $<' . $map->name . '$>'; - $switchLabel->addTooltipLabelFeature($descriptionLabel, $description); + + $description = 'Start Map-Switch Vote: $<' . $map->name . '$>'; + $switchLabel->addTooltipLabelFeature($descriptionLabel, $description); } - + // Display Karma bar if ($karmaPlugin) { $karma = $karmaPlugin->getMapKarma($map); @@ -404,7 +405,7 @@ class MapList implements ManialinkPageAnswerListener, CallbackListener { $karmaGauge->setRatio($karma + 0.15 - $karma * 0.15); $karmaColor = ColorUtil::floatToStatusColor($karma); $karmaGauge->setColor($karmaColor . '9'); - + $karmaLabel = new Label(); $mapFrame->add($karmaLabel); $karmaLabel->setZ(2); @@ -416,13 +417,14 @@ class MapList implements ManialinkPageAnswerListener, CallbackListener { $karmaLabel->setText(' ' . round($karma * 100.) . '% (' . $votes['count'] . ')'); } } - + $y -= 4; if ($id % self::MAX_MAPS_PER_PAGE == 0) { unset($pageFrame); } $id++; } + $this->maniaControl->manialinkManager->displayWidget($maniaLink, $player, 'MapList'); } @@ -430,31 +432,31 @@ class MapList implements ManialinkPageAnswerListener, CallbackListener { * Builds the confirmation frame * * @param ManiaLink $maniaLink - * @param $y - * @param $id - * @param bool $mapUid + * @param $y + * @param $id + * @param bool $mapUid * @return Frame */ public function buildConfirmFrame(Manialink $maniaLink, $y, $id, $mapUid = false) { - $width = $this->maniaControl->manialinkManager->styleManager->getListWidgetsWidth(); - $quadStyle = $this->maniaControl->manialinkManager->styleManager->getDefaultMainWindowStyle(); + $width = $this->maniaControl->manialinkManager->styleManager->getListWidgetsWidth(); + $quadStyle = $this->maniaControl->manialinkManager->styleManager->getDefaultMainWindowStyle(); $quadSubstyle = $this->maniaControl->manialinkManager->styleManager->getDefaultMainWindowSubStyle(); - + $confirmFrame = new Frame(); $maniaLink->add($confirmFrame); $confirmFrame->setPosition($width / 2 + 6, $y); $confirmFrame->setVisible(false); - + $quad = new Quad(); $confirmFrame->add($quad); $quad->setStyles($quadStyle, $quadSubstyle); $quad->setSize(12, 4); - + $quad = new Quad_BgsPlayerCard(); $confirmFrame->add($quad); $quad->setSubStyle($quad::SUBSTYLE_BgCardSystem); $quad->setSize(11, 3.5); - + $label = new Label_Button(); $confirmFrame->add($label); $label->setAlign(Control::CENTER, Control::CENTER); @@ -462,19 +464,20 @@ class MapList implements ManialinkPageAnswerListener, CallbackListener { $label->setTextSize(1); $label->setScale(0.90); $label->setX(-1.3); - + $buttLabel = new Label_Button(); $confirmFrame->add($buttLabel); $buttLabel->setPosition(3.2, 0.4, 0.2); $buttLabel->setSize(3, 3); $buttLabel->setAlign(Control::CENTER, Control::CENTER); - + if (!$mapUid) { $quad->setAction(self::ACTION_SWITCH_MAP . '.' . ($id - 1)); $buttLabel->setText('»'); $buttLabel->setTextColor('0f0'); $buttLabel->setTextSize(2); - } else { + } + else { $buttLabel->setTextSize(1); $buttLabel->setText('x'); $buttLabel->setTextColor('a00'); @@ -487,10 +490,10 @@ class MapList implements ManialinkPageAnswerListener, CallbackListener { * Unset the player if he opened another Main Widget * * @param Player $player - * @param $openedWidget + * @param $openedWidget */ public function handleWidgetOpened(Player $player, $openedWidget) { - //unset when another main widget got opened + // unset when another main widget got opened if ($openedWidget != 'MapList') { unset($this->mapListShown[$player->login]); } @@ -521,18 +524,18 @@ class MapList implements ManialinkPageAnswerListener, CallbackListener { * @param array $callback */ public function handleManialinkPageAnswer(array $callback) { - $actionId = $callback[1][2]; + $actionId = $callback[1][2]; $actionArray = explode('.', $actionId); if (count($actionArray) <= 2) { return; } - + $action = $actionArray[0] . '.' . $actionArray[1]; - $login = $callback[1][1]; + $login = $callback[1][1]; $player = $this->maniaControl->playerManager->getPlayer($login); - $mapId = (int)$actionArray[2]; - - switch($action) { + $mapId = (int) $actionArray[2]; + + switch ($action) { case self::ACTION_UPDATE_MAP: $mapUid = $actionArray[2]; $this->maniaControl->mapManager->updateMap($player, $mapUid); @@ -545,43 +548,49 @@ class MapList implements ManialinkPageAnswerListener, CallbackListener { case self::ACTION_SWITCH_MAP: try { $this->maniaControl->client->jumpToMapIndex($mapId); - } catch(Exception $e) { + } + catch (Exception $e) { // TODO: is it even possible that an exception other than connection errors will be thrown? - remove try-catch? $this->maniaControl->chat->sendError("Error while Jumping to Map Index"); break; } $mapList = $this->maniaControl->mapManager->getMaps(); - $map = $mapList[$mapId]; - + $map = $mapList[$mapId]; + $message = '$<' . $player->nickname . '$> skipped to Map $z$<' . $map->name . '$>!'; $this->maniaControl->chat->sendSuccess($message); $this->maniaControl->log($message, true); - + $this->playerCloseWidget($player); break; case self::ACTION_START_SWITCH_VOTE: - /** @var $votesPlugin CustomVotesPlugin */ + /** + * @var $votesPlugin CustomVotesPlugin + */ $votesPlugin = $this->maniaControl->pluginManager->getPlugin(self::DEFAULT_CUSTOM_VOTE_PLUGIN); - $mapList = $this->maniaControl->mapManager->getMaps(); - $map = $mapList[$mapId]; - + $mapList = $this->maniaControl->mapManager->getMaps(); + $map = $mapList[$mapId]; + $message = '$<' . $player->nickname . '$>$s started a vote to switch to $<' . $map->name . '$>!'; - - /** @var Map $map */ + + /** + * @var Map $map + */ $votesPlugin->defineVote('switchmap', "Goto " . $map->name, true, $message); - + $self = $this; - $votesPlugin->startVote($player, 'switchmap', function ($result) use (&$self, &$votesPlugin, &$map) { + $votesPlugin->startVote($player, 'switchmap', function ($result) use(&$self, &$votesPlugin, &$map) { $self->maniaControl->chat->sendInformation('$sVote Successfully -> Map switched!'); $votesPlugin->undefineVote('switchmap'); - + try { $index = $self->maniaControl->mapManager->getMapIndex($map); $self->maniaControl->client->jumpToMapIndex($index); - } catch(Exception $e) { - //TODO temp added 19.04.2014 + } + catch (Exception $e) { + // TODO temp added 19.04.2014 $self->maniaControl->errorHandler->triggerDebugNotice("Exception line 557 MapList.php" . $e->getMessage()); - + $self->maniaControl->chat->sendError("Error while Switching Map"); } }); @@ -601,12 +610,13 @@ class MapList implements ManialinkPageAnswerListener, CallbackListener { * Reopen the widget on Map Begin, MapListChanged, etc. */ public function updateWidget() { - foreach($this->mapListShown as $login => $shown) { + foreach ($this->mapListShown as $login => $shown) { if ($shown) { $player = $this->maniaControl->playerManager->getPlayer($login); if ($player) { $this->showMapList($player); - } else { + } + else { unset($this->mapListShown[$login]); } } @@ -617,12 +627,13 @@ class MapList implements ManialinkPageAnswerListener, CallbackListener { * Reopen the widget on MapQueue changed */ public function updateWidgetQueue() { - foreach($this->mapListShown as $login => $shown) { + foreach ($this->mapListShown as $login => $shown) { if ($shown) { $player = $this->maniaControl->playerManager->getPlayer($login); if ($player) { $this->showMapList($player, 'redirect'); - } else { + } + else { unset($this->mapListShown[$login]); } }