karma plugin fixes + new methods in chat (sendChatToAdmins / sendErrorToAdmins)
This commit is contained in:
		| @@ -2,6 +2,8 @@ | ||||
|  | ||||
| namespace ManiaControl; | ||||
|  | ||||
| use ManiaControl\Admin\AuthenticationManager; | ||||
| use ManiaControl\Players\Player; | ||||
| use Maniaplanet\DedicatedServer\Xmlrpc\LoginUnknownException; | ||||
|  | ||||
| /** | ||||
| @@ -55,6 +57,35 @@ class Chat { | ||||
| 		return $this->sendChat($format . $message, $login, $prefix); | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * Sends a Message to all Connected Admins | ||||
| 	 * | ||||
| 	 * @param      $message | ||||
| 	 * @param int  $minLevel (Constant from AuthenticationManager) | ||||
| 	 * @param bool $prefix | ||||
| 	 */ | ||||
| 	public function sendMessageToAdmins($message, $minLevel = AuthenticationManager::AUTH_LEVEL_MODERATOR, $prefix = true) { | ||||
| 		//TODO specifiy in player or adminmanager a getAdmins() with minlevel function | ||||
| 		foreach($this->maniaControl->playerManager->getPlayers() as $player){ | ||||
| 			/** @var Player $player */ | ||||
| 			if($this->maniaControl->authenticationManager->checkRight($player, $minLevel)){ | ||||
| 				$this->sendChat($message, $player->login, $prefix); | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * Sends a Error Message to all Connected Admins | ||||
| 	 * | ||||
| 	 * @param      $message | ||||
| 	 * @param int  $minLevel (Constant from AuthenticationManager) | ||||
| 	 * @param bool $prefix | ||||
| 	 */ | ||||
| 	public function sendErrorToAdmins($message, $minLevel = AuthenticationManager::AUTH_LEVEL_MODERATOR, $prefix = true) { | ||||
| 		$format = $this->maniaControl->settingManager->getSetting($this, self::SETTING_FORMAT_ERROR); | ||||
| 		$this->sendMessageToAdmins($format . $message, $prefix); | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * Send a chat message to the given login | ||||
| 	 * | ||||
|   | ||||
| @@ -17,6 +17,7 @@ use ManiaControl\Maps\Map; | ||||
| use ManiaControl\Players\Player; | ||||
| use ManiaControl\Players\PlayerManager; | ||||
| use ManiaControl\Plugins\Plugin; | ||||
| use ManiaControl\Plugins\PluginMenu; | ||||
| use ManiaControl\Settings\SettingManager; | ||||
|  | ||||
| /** | ||||
| @@ -159,6 +160,15 @@ class KarmaPlugin implements CallbackListener, TimerListener, Plugin { | ||||
| 		$this->mxKarmaOpenSession(); | ||||
| 		$this->mxKarma['startTime'] = time(); | ||||
|  | ||||
| 		//Check if Karma Code got specified, and inform admin that it would be good to specifiy one | ||||
| 		$serverLogin = $this->maniaControl->server->login; | ||||
| 		$mxKarmaCode = $this->maniaControl->settingManager->getSetting($this, '$l[http://karma.mania-exchange.com/auth/getapikey?server=' . $serverLogin . ']MX Karma Code for ' . $serverLogin . '$l'); | ||||
|  | ||||
| 		if ($mxKarmaCode == '') { | ||||
| 			$permission = $this->maniaControl->settingManager->getSetting($this->maniaControl->authenticationManager, PluginMenu::SETTING_PERMISSION_CHANGE_PLUGIN_SETTINGS); | ||||
| 			$this->maniaControl->chat->sendErrorToAdmins("Please specify a Mania-Exchange Karma Key in the Karma-Plugin settings!", $permission); | ||||
| 		} | ||||
|  | ||||
| 		return true; | ||||
| 	} | ||||
|  | ||||
| @@ -275,14 +285,20 @@ class KarmaPlugin implements CallbackListener, TimerListener, Plugin { | ||||
| 					// Fetch the Mx Karma Votes | ||||
| 					$self->getMxKarmaVotes(); | ||||
| 				} else { | ||||
| 					$self->maniaControl->log("Error while authenticating on Mania-Exchange Karma " . $data->data->message); | ||||
| 					// TODO remove temp trigger | ||||
| 					$self->maniaControl->errorHandler->triggerDebugNotice("Error while authenticating on Mania-Exchange Karma " . $data->data->message . " url Query " . $query); | ||||
| 					if ($data->data->message == "invalid hash") { | ||||
| 						$permission = $self->maniaControl->settingManager->getSetting($this->maniaControl->authenticationManager, PluginMenu::SETTING_PERMISSION_CHANGE_PLUGIN_SETTINGS); | ||||
| 						$self->maniaControl->chat->sendErrorToAdmins("Invalid Mania-Exchange Karma code in Karma Plugin specified!", $permission); | ||||
| 					} else { | ||||
| 						// TODO remove temp trigger | ||||
| 						$self->maniaControl->errorHandler->triggerDebugNotice("Error while authenticating on Mania-Exchange Karma " . $data->data->message . " url Query " . $query); | ||||
| 					} | ||||
| 					$self->maniaControl->log("Error while activating Mania-Exchange Karma Session: " . $data->data->message); | ||||
| 					$self->mxKarma['connectionInProgress'] = false; | ||||
| 					unset($self->mxKarma['session']); | ||||
| 				} | ||||
| 			} else { | ||||
| 				// TODO remove temp trigger | ||||
| 				$self->maniaControl->errorHandler->triggerDebugNotice("Error while authenticating on Mania-Exchange Karma " . $error); | ||||
| 				$self->maniaControl->errorHandler->triggerDebugNotice("Error while activating Mania-Exchange Karma Session: " . $error); | ||||
| 				$self->maniaControl->log($error); | ||||
| 				$self->mxKarma['connectionInProgress'] = false; | ||||
| 			} | ||||
|   | ||||
		Reference in New Issue
	
	Block a user