karma plugin fixes + new methods in chat (sendChatToAdmins / sendErrorToAdmins)

This commit is contained in:
kremsy 2014-05-09 10:48:51 +02:00
parent a16ddc7bb4
commit b514a9599c
2 changed files with 51 additions and 4 deletions

View File

@ -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
*

View File

@ -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;
}