cleanup communicationmanager

This commit is contained in:
kremsy 2015-06-26 11:48:21 +02:00
parent f9fd1ad90b
commit 9760a59836
6 changed files with 42 additions and 17 deletions

View File

@ -5,6 +5,7 @@ namespace ManiaControl;
use ManiaControl\Admin\AuthenticationManager; use ManiaControl\Admin\AuthenticationManager;
use ManiaControl\Callbacks\CallbackListener; use ManiaControl\Callbacks\CallbackListener;
use ManiaControl\Callbacks\CallbackManager; use ManiaControl\Callbacks\CallbackManager;
use ManiaControl\Communication\CommunicationAnswer;
use ManiaControl\Communication\CommunicationListener; use ManiaControl\Communication\CommunicationListener;
use ManiaControl\Communication\CommunicationMethods; use ManiaControl\Communication\CommunicationMethods;
use ManiaControl\Players\Player; use ManiaControl\Players\Player;
@ -55,7 +56,7 @@ class Chat implements CallbackListener, CommunicationListener {
//Socket Listenings //Socket Listenings
$this->maniaControl->getCommunicationManager()->registerCommunicationListener(CommunicationMethods::SEND_CHAT_MESSAGE, $this, "communcationSendChat"); $this->maniaControl->getCommunicationManager()->registerCommunicationListener(CommunicationMethods::SEND_CHAT_MESSAGE, $this, "communcationSendChat");
$this->maniaControl->getCommunicationManager()->registerCommunicationListener(CommunicationMethods::GET_SERVER_CHAT, $this, function ($data) { $this->maniaControl->getCommunicationManager()->registerCommunicationListener(CommunicationMethods::GET_SERVER_CHAT, $this, function ($data) {
return array("error" => false, "data" => $this->chatBuffer); return new CommunicationAnswer($this->chatBuffer);
}); });
} }
@ -250,7 +251,7 @@ class Chat implements CallbackListener, CommunicationListener {
*/ */
public function communcationSendChat($data) { public function communcationSendChat($data) {
if (!is_object($data) || !property_exists($data, "message")) { if (!is_object($data) || !property_exists($data, "message")) {
return array("error" => true, "data" => "You have to provide a valid message"); return new CommunicationAnswer("You have to provide a valid message", true);
} }
$prefix = true; $prefix = true;
@ -306,7 +307,7 @@ class Chat implements CallbackListener, CommunicationListener {
} }
} }
return array("error" => false, "data" => ""); return new CommunicationAnswer();
} }

View File

@ -0,0 +1,22 @@
<?php
namespace ManiaControl\Communication;
/**
* Class for Answer of Communication Request
*
* @author ManiaControl Team <mail@maniacontrol.com>
* @copyright 2014-2015 ManiaControl Team
* @license http://www.gnu.org/licenses/ GNU General Public License, Version 3
*/
class CommunicationAnswer {
/** Properties are Public for serialization */
public $error;
public $data;
public function __construct($data = "", $error = false) {
$this->data = $data;
$this->error = $error;
}
}

View File

@ -262,11 +262,9 @@ class CommunicationManager implements CallbackListener {
$answer = $this->triggerCommuncationCallback($data->method, $data->data); $answer = $this->triggerCommuncationCallback($data->method, $data->data);
//Prepare Response //Prepare Response
if (!$answer) { if (!$answer) {
$data = array("error" => true, "data" => "No listener or response on the given Message"); $data = new CommunicationAnswer("No listener or response on the given Message", true);
} else if (!array_key_exists("error", $answer) || !array_key_exists("data", $answer)) {
$data = array("error" => true, "data" => "Invalid Response on the Message");
} else { } else {
$data = array("error" => $answer["error"], "data" => $answer["data"]); $data = $answer;
} }
} }

View File

@ -13,6 +13,7 @@ use ManiaControl\Callbacks\TimerListener;
use ManiaControl\Callbacks\TimerManager; use ManiaControl\Callbacks\TimerManager;
use ManiaControl\Commands\CommandListener; use ManiaControl\Commands\CommandListener;
use ManiaControl\Commands\CommandManager; use ManiaControl\Commands\CommandManager;
use ManiaControl\Communication\CommunicationAnswer;
use ManiaControl\Communication\CommunicationListener; use ManiaControl\Communication\CommunicationListener;
use ManiaControl\Communication\CommunicationManager; use ManiaControl\Communication\CommunicationManager;
use ManiaControl\Communication\CommunicationMethods; use ManiaControl\Communication\CommunicationMethods;
@ -228,7 +229,7 @@ class ManiaControl implements CallbackListener, CommandListener, TimerListener,
} }
$this->restart(); $this->restart();
}, 5000); }, 5000);
return array("error" => false, "data" => ""); return new CommunicationAnswer();
}); });
} }

View File

@ -9,6 +9,7 @@ use FML\Controls\Quads\Quad_Icons64x64_1;
use FML\ManiaLink; use FML\ManiaLink;
use ManiaControl\Admin\AuthenticationManager; use ManiaControl\Admin\AuthenticationManager;
use ManiaControl\Callbacks\EchoListener; use ManiaControl\Callbacks\EchoListener;
use ManiaControl\Communication\CommunicationAnswer;
use ManiaControl\Communication\CommunicationListener; use ManiaControl\Communication\CommunicationListener;
use ManiaControl\Communication\CommunicationMethods; use ManiaControl\Communication\CommunicationMethods;
use ManiaControl\Logger; use ManiaControl\Logger;
@ -84,31 +85,31 @@ class PlayerActions implements EchoListener, CommunicationListener {
//Communication Manager Methods //Communication Manager Methods
$this->maniaControl->getCommunicationManager()->registerCommunicationListener(CommunicationMethods::WARN_PLAYER, $this, function ($data) { $this->maniaControl->getCommunicationManager()->registerCommunicationListener(CommunicationMethods::WARN_PLAYER, $this, function ($data) {
if (!is_object($data) || !property_exists($data, "login")) { if (!is_object($data) || !property_exists($data, "login")) {
return array("error" => true, "data" => "You have to provide a valid player Login"); return new CommunicationAnswer("You have to provide a valid player Login", true);
} }
$success = $this->warnPlayer(null, $data->login, false); $success = $this->warnPlayer(null, $data->login, false);
return array("error" => false, "data" => array("success" => $success)); return new CommunicationAnswer(array("success" => $success));
}); });
$this->maniaControl->getCommunicationManager()->registerCommunicationListener(CommunicationMethods::MUTE_PLAYER, $this, function ($data) { $this->maniaControl->getCommunicationManager()->registerCommunicationListener(CommunicationMethods::MUTE_PLAYER, $this, function ($data) {
if (!is_object($data) || !property_exists($data, "login")) { if (!is_object($data) || !property_exists($data, "login")) {
return array("error" => true, "data" => "You have to provide a valid player Login"); return new CommunicationAnswer("You have to provide a valid player Login", true);
} }
$success = $this->mutePlayer(null, $data->login, false); $success = $this->mutePlayer(null, $data->login, false);
return array("error" => false, "data" => array("success" => $success)); return new CommunicationAnswer(array("success" => $success));
}); });
$this->maniaControl->getCommunicationManager()->registerCommunicationListener(CommunicationMethods::UNMUTE_PLAYER, $this, function ($data) { $this->maniaControl->getCommunicationManager()->registerCommunicationListener(CommunicationMethods::UNMUTE_PLAYER, $this, function ($data) {
if (!is_object($data) || !property_exists($data, "login")) { if (!is_object($data) || !property_exists($data, "login")) {
return array("error" => true, "data" => "You have to provide a valid player Login"); return new CommunicationAnswer("You have to provide a valid player Login", true);
} }
$success = $this->unMutePlayer(null, $data->login, false); $success = $this->unMutePlayer(null, $data->login, false);
return array("error" => false, "data" => array("success" => $success)); return new CommunicationAnswer(array("success" => $success));
}); });
$this->maniaControl->getCommunicationManager()->registerCommunicationListener(CommunicationMethods::KICK_PLAYER, $this, function ($data) { $this->maniaControl->getCommunicationManager()->registerCommunicationListener(CommunicationMethods::KICK_PLAYER, $this, function ($data) {
if (!is_object($data) || !property_exists($data, "login")) { if (!is_object($data) || !property_exists($data, "login")) {
return array("error" => true, "data" => "You have to provide a valid player Login"); return new CommunicationAnswer("You have to provide a valid player Login", true);
} }
$message = ""; $message = "";
@ -117,7 +118,8 @@ class PlayerActions implements EchoListener, CommunicationListener {
} }
$success = $this->kickPlayer(null, $data->login, $message, false); $success = $this->kickPlayer(null, $data->login, $message, false);
return array("error" => false, "data" => array("success" => $success));
return new CommunicationAnswer(array("success" => $success));
}); });
} }

View File

@ -7,6 +7,7 @@ use ManiaControl\Callbacks\CallbackListener;
use ManiaControl\Callbacks\CallbackManager; use ManiaControl\Callbacks\CallbackManager;
use ManiaControl\Callbacks\Callbacks; use ManiaControl\Callbacks\Callbacks;
use ManiaControl\Callbacks\TimerListener; use ManiaControl\Callbacks\TimerListener;
use ManiaControl\Communication\CommunicationAnswer;
use ManiaControl\Communication\CommunicationListener; use ManiaControl\Communication\CommunicationListener;
use ManiaControl\Communication\CommunicationMethods; use ManiaControl\Communication\CommunicationMethods;
use ManiaControl\Logger; use ManiaControl\Logger;
@ -111,7 +112,7 @@ class PlayerManager implements CallbackListener, TimerListener, CommunicationLis
// Communication Listenings // Communication Listenings
$this->maniaControl->getCommunicationManager()->registerCommunicationListener(CommunicationMethods::GET_PLAYER_LIST, $this, function ($data) { $this->maniaControl->getCommunicationManager()->registerCommunicationListener(CommunicationMethods::GET_PLAYER_LIST, $this, function ($data) {
return array("error" => false, "data" => $this->players); return new CommunicationAnswer($this->players);
}); });
} }