adding check if the mode uses warmup to add the buttons in the menu
This commit is contained in:
		| @@ -123,7 +123,9 @@ class ActionsMenu implements CallbackListener, ManialinkPageAnswerListener { | ||||
| 		$itemMarginFactorY = 1.2; | ||||
|  | ||||
| 		// If game is shootmania lower the icons position by 20 | ||||
| 		if ($this->maniaControl->mapManager->getCurrentMap()->getGame() === 'sm') { | ||||
| 		if ($this->maniaControl->mapManager->getCurrentMap() | ||||
| 		                                   ->getGame() === 'sm' | ||||
| 		) { | ||||
| 			$posY -= $shootManiaOffset; | ||||
| 		} | ||||
|  | ||||
| @@ -284,9 +286,13 @@ class ActionsMenu implements CallbackListener, ManialinkPageAnswerListener { | ||||
| 	 */ | ||||
| 	public function removeMenuItem($order, $playerAction = true) { | ||||
| 		if ($playerAction) { | ||||
| 			unset($this->playerMenuItems[$order]); | ||||
| 			if ($this->playerMenuItems[$order]) { | ||||
| 				unset($this->playerMenuItems[$order]); | ||||
| 			} | ||||
| 		} else { | ||||
| 			unset($this->adminMenuItems[$order]); | ||||
| 			if ($this->playerMenuItems[$order]) { | ||||
| 				unset($this->adminMenuItems[$order]); | ||||
| 			} | ||||
| 		} | ||||
| 		$this->rebuildAndShowMenu(); | ||||
| 	} | ||||
|   | ||||
| @@ -56,6 +56,9 @@ class ShootManiaCallbacks implements CallbackListener { | ||||
| 			case 'LibAFK_IsAFK': | ||||
| 				$this->triggerAfkStatus($data[0]); | ||||
| 				break; | ||||
| 			case 'WarmUp_Status': | ||||
| 				$this->maniaControl->callbackManager->triggerCallback(Callbacks::WARMUPSTATUS, $data[0]); | ||||
| 				break; | ||||
| 			case self::CB_TIMEATTACK_ONCHECKPOINT: | ||||
| 				$this->handleTimeAttackOnCheckpoint($name, $data); | ||||
| 				break; | ||||
|   | ||||
| @@ -56,6 +56,8 @@ class ServerCommands implements CallbackListener, CommandListener, ManialinkPage | ||||
| 		// Register for callbacks | ||||
| 		$this->maniaControl->timerManager->registerTimerListening($this, 'each5Seconds', 5000); | ||||
| 		$this->maniaControl->callbackManager->registerCallbackListener(Callbacks::ONINIT, $this, 'handleOnInit'); | ||||
| 		$this->maniaControl->callbackManager->registerCallbackListener(Callbacks::WARMUPSTATUS, $this, 'handleWarmUpStatus'); | ||||
|  | ||||
|  | ||||
| 		// Register for commands | ||||
| 		$this->maniaControl->commandManager->registerCommandListener('setservername', $this, 'command_SetServerName', true, 'Sets the ServerName.'); | ||||
| @@ -82,19 +84,9 @@ class ServerCommands implements CallbackListener, CommandListener, ManialinkPage | ||||
| 		$this->maniaControl->authenticationManager->definePermissionLevel(self::SETTING_PERMISSION_CANCEL_VOTE, AuthenticationManager::AUTH_LEVEL_MODERATOR); | ||||
| 		$this->maniaControl->authenticationManager->definePermissionLevel(self::SETTING_PERMISSION_HANDLE_WARMUP, AuthenticationManager::AUTH_LEVEL_MODERATOR); | ||||
|  | ||||
| 		// Extend WarmUp | ||||
| 		$this->maniaControl->manialinkManager->registerManialinkPageAnswerListener(self::ACTION_EXTEND_WARMUP, $this, 'command_extendWarmup'); | ||||
| 		$itemQuad = new Quad_BgRaceScore2(); | ||||
| 		$itemQuad->setSubStyle($itemQuad::SUBSTYLE_SendScore); | ||||
| 		$itemQuad->setAction(self::ACTION_EXTEND_WARMUP); | ||||
| 		$this->maniaControl->actionsMenu->addMenuItem($itemQuad, false, 14, 'Extend Warmup'); | ||||
|  | ||||
| 		// Stop WarmUp | ||||
| 		$this->maniaControl->manialinkManager->registerManialinkPageAnswerListener(self::ACTION_END_WARMUP, $this, 'command_endWarmup'); | ||||
| 		$itemQuad = new Quad_Icons64x64_1(); | ||||
| 		$itemQuad->setSubStyle($itemQuad::SUBSTYLE_ArrowGreen); | ||||
| 		$itemQuad->setAction(self::ACTION_END_WARMUP); | ||||
| 		$this->maniaControl->actionsMenu->addMenuItem($itemQuad, false, 15, 'End Warmup'); | ||||
| 		//Check if there is WarmUp Enabled in this Mode | ||||
| 		//TODO handle the Modescriptevents + answer by an own callback class (answer via closure or dunno) | ||||
| 		$this->maniaControl->client->triggerModeScriptEvent("WarmUp_GetStatus"); | ||||
|  | ||||
| 		// Action cancel Vote | ||||
| 		$this->maniaControl->manialinkManager->registerManialinkPageAnswerListener(self::ACTION_CANCEL_VOTE, $this, 'command_cancelVote'); | ||||
| @@ -126,6 +118,31 @@ class ServerCommands implements CallbackListener, CommandListener, ManialinkPage | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * Handeling the WarmupStatus Callback, and removes or adds the Menu Items for extending / Stopping warmup | ||||
| 	 * | ||||
| 	 * @param $warmupEnabled | ||||
| 	 */ | ||||
| 	public function handleWarmUpStatus($warmupEnabled) { | ||||
| 		if ($warmupEnabled) { | ||||
| 			// Extend WarmUp | ||||
| 			$this->maniaControl->manialinkManager->registerManialinkPageAnswerListener(self::ACTION_EXTEND_WARMUP, $this, 'command_extendWarmup'); | ||||
| 			$itemQuad = new Quad_BgRaceScore2(); | ||||
| 			$itemQuad->setSubStyle($itemQuad::SUBSTYLE_SendScore); | ||||
| 			$itemQuad->setAction(self::ACTION_EXTEND_WARMUP); | ||||
| 			$this->maniaControl->actionsMenu->addMenuItem($itemQuad, false, 14, 'Extend Warmup'); | ||||
|  | ||||
| 			// Stop WarmUp | ||||
| 			$this->maniaControl->manialinkManager->registerManialinkPageAnswerListener(self::ACTION_END_WARMUP, $this, 'command_endWarmup'); | ||||
| 			$itemQuad = new Quad_Icons64x64_1(); | ||||
| 			$itemQuad->setSubStyle($itemQuad::SUBSTYLE_ArrowGreen); | ||||
| 			$itemQuad->setAction(self::ACTION_END_WARMUP); | ||||
| 			$this->maniaControl->actionsMenu->addMenuItem($itemQuad, false, 15, 'End Warmup'); | ||||
| 		} else { | ||||
| 			$this->maniaControl->actionsMenu->removeMenuItem(14, false); | ||||
| 			$this->maniaControl->actionsMenu->removeMenuItem(15, false); | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * Handle //cancelvote command | ||||
|   | ||||
		Reference in New Issue
	
	Block a user