add a setting to disable plugin without loosing settings
This commit is contained in:
		| @@ -37,7 +37,7 @@ class MatchManagerTMWTDuoIntegration implements CallbackListener, ManialinkPageA | ||||
| 	 * Constants | ||||
| 	 */ | ||||
| 	const PLUGIN_ID											= 211; | ||||
| 	const PLUGIN_VERSION									= 1.3; | ||||
| 	const PLUGIN_VERSION									= 1.4; | ||||
| 	const PLUGIN_NAME										= 'MatchManager TMWT Duo Integration'; | ||||
| 	const PLUGIN_AUTHOR										= 'Beu'; | ||||
|  | ||||
| @@ -59,6 +59,7 @@ class MatchManagerTMWTDuoIntegration implements CallbackListener, ManialinkPageA | ||||
| 	const XMLRPC_METHOD_MATCHSTARTED						= 'Club.Match.Start'; | ||||
| 	const XMLRPC_METHOD_MATCHCOMPLETED						= 'Club.Match.Completed'; | ||||
|  | ||||
| 	const SETTING_ENABLED 									= 'Plugin Enabled'; | ||||
| 	const SETTING_TEAM1 									= 'Team 1 Id'; | ||||
| 	const SETTING_TEAM2 									= 'Team 2 Id'; | ||||
| 	const SETTING_PICKANDBAN_ENABLE 						= 'Enable Pick & Ban'; | ||||
| @@ -138,6 +139,7 @@ class MatchManagerTMWTDuoIntegration implements CallbackListener, ManialinkPageA | ||||
| 		} | ||||
|  | ||||
| 		// Settings | ||||
| 		$this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_ENABLED, true, '', 5); | ||||
| 		$this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_TEAM1, '', '', 10); | ||||
| 		$this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_TEAM2, '', '', 10); | ||||
| 		$this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_PICKANDBAN_ENABLE, false, '', 20); | ||||
| @@ -243,6 +245,13 @@ class MatchManagerTMWTDuoIntegration implements CallbackListener, ManialinkPageA | ||||
| 	 * @return bool  | ||||
| 	 */ | ||||
| 	public function canStartMatch() { | ||||
| 		if (!$this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_ENABLED)) return true; | ||||
|  | ||||
| 		if (!in_array($this->MatchManagerCore::SETTING_MATCH_GAMEMODE_BASE, ['TMWC2023', 'TMWT2025', 'TMWTTeams'])) { | ||||
| 			$this->maniaControl->getChat()->sendErrorToAdmins($this->MatchManagerCore->getChatPrefix() . "TMWT Duo Integration require a TMWT / TMWC Gamemode base."); | ||||
| 			return false; | ||||
| 		} | ||||
|  | ||||
| 		if ($this->maniaControl->getSettingManager()->getSettingValue($this->MatchManagerCore, 'S_TeamsUrl') === '') { | ||||
| 			$this->maniaControl->getChat()->sendErrorToAdmins($this->MatchManagerCore->getChatPrefix() . "S_TeamsUrl must be defined"); | ||||
| 			return false; | ||||
| @@ -271,6 +280,8 @@ class MatchManagerTMWTDuoIntegration implements CallbackListener, ManialinkPageA | ||||
| 	 * @return void  | ||||
| 	 */ | ||||
| 	public function handleMatchManagerStartMatch() { | ||||
| 		if (!$this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_ENABLED)) return; | ||||
|  | ||||
| 		$this->state = self::STATE_PRESETTING; | ||||
|  | ||||
| 		$setting = $this->maniaControl->getSettingManager()->getSettingObject($this->MatchManagerCore, 'S_IsMatchmaking'); | ||||
| @@ -307,6 +318,8 @@ class MatchManagerTMWTDuoIntegration implements CallbackListener, ManialinkPageA | ||||
| 	 * @return void  | ||||
| 	 */ | ||||
| 	public function handleStartMatchStartCallback() { | ||||
| 		if (!$this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_ENABLED)) return; | ||||
|  | ||||
| 		if ($this->MatchManagerCore->getMatchStatus() && $this->state === self::STATE_PREMATCH) { | ||||
| 			// reset match state in just in case | ||||
| 			$this->maniaControl->getClient()->triggerModeScriptEvent(self::XMLRPC_METHOD_MATCHCOMPLETED, []); | ||||
| @@ -319,6 +332,7 @@ class MatchManagerTMWTDuoIntegration implements CallbackListener, ManialinkPageA | ||||
| 	 * @return void  | ||||
| 	 */ | ||||
| 	public function handleStartMapStartCallback() { | ||||
| 		if (!$this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_ENABLED)) return; | ||||
| 		if (!$this->MatchManagerCore->getMatchStatus()) return; | ||||
|  | ||||
| 		if ($this->state === self::STATE_PRESETTING) { | ||||
| @@ -406,6 +420,7 @@ class MatchManagerTMWTDuoIntegration implements CallbackListener, ManialinkPageA | ||||
| 	 * @return void  | ||||
| 	 */ | ||||
| 	public function handlePickAndBanComplete(array $structure) { | ||||
| 		if (!$this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_ENABLED)) return; | ||||
| 		if (!$this->MatchManagerCore->getMatchStatus()) return; | ||||
| 		$this->log('Received picks: '. $structure[1][0]); | ||||
|  | ||||
| @@ -486,6 +501,8 @@ class MatchManagerTMWTDuoIntegration implements CallbackListener, ManialinkPageA | ||||
| 	 * @return void  | ||||
| 	 */ | ||||
| 	public function handleSettingChanged(Setting $setting) { | ||||
| 		if (!$this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_ENABLED)) return; | ||||
|  | ||||
| 		if ($setting->setting === self::SETTING_PICKANDBAN_ENABLE || $setting->setting === $this->MatchManagerCore::SETTING_MATCH_SETTINGS_MODE) { | ||||
| 			if ($this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_PICKANDBAN_ENABLE)) { | ||||
| 				if ($this->maniaControl->getSettingManager()->getSettingValue($this->MatchManagerCore, $this->MatchManagerCore::SETTING_MATCH_SETTINGS_MODE) !== "All from the plugin") { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user