add a setting to disable plugin without loosing settings

This commit is contained in:
Beu
2025-09-19 11:29:04 +02:00
parent 7a552971fe
commit 5597d28641

View File

@@ -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") {