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\Callbacks\CallbackListener;
use ManiaControl\Callbacks\CallbackManager;
use ManiaControl\Communication\CommunicationAnswer;
use ManiaControl\Communication\CommunicationListener;
use ManiaControl\Communication\CommunicationMethods;
use ManiaControl\Players\Player;
@ -55,7 +56,7 @@ class Chat implements CallbackListener, CommunicationListener {
//Socket Listenings
$this->maniaControl->getCommunicationManager()->registerCommunicationListener(CommunicationMethods::SEND_CHAT_MESSAGE, $this, "communcationSendChat");
$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) {
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;
@ -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);
//Prepare Response
if (!$answer) {
$data = array("error" => true, "data" => "No listener or response on the given Message");
} else if (!array_key_exists("error", $answer) || !array_key_exists("data", $answer)) {
$data = array("error" => true, "data" => "Invalid Response on the Message");
$data = new CommunicationAnswer("No listener or response on the given Message", true);
} 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\Commands\CommandListener;
use ManiaControl\Commands\CommandManager;
use ManiaControl\Communication\CommunicationAnswer;
use ManiaControl\Communication\CommunicationListener;
use ManiaControl\Communication\CommunicationManager;
use ManiaControl\Communication\CommunicationMethods;
@ -228,7 +229,7 @@ class ManiaControl implements CallbackListener, CommandListener, TimerListener,
}
$this->restart();
}, 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 ManiaControl\Admin\AuthenticationManager;
use ManiaControl\Callbacks\EchoListener;
use ManiaControl\Communication\CommunicationAnswer;
use ManiaControl\Communication\CommunicationListener;
use ManiaControl\Communication\CommunicationMethods;
use ManiaControl\Logger;
@ -84,31 +85,31 @@ class PlayerActions implements EchoListener, CommunicationListener {
//Communication Manager Methods
$this->maniaControl->getCommunicationManager()->registerCommunicationListener(CommunicationMethods::WARN_PLAYER, $this, function ($data) {
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);
return array("error" => false, "data" => array("success" => $success));
return new CommunicationAnswer(array("success" => $success));
});
$this->maniaControl->getCommunicationManager()->registerCommunicationListener(CommunicationMethods::MUTE_PLAYER, $this, function ($data) {
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);
return array("error" => false, "data" => array("success" => $success));
return new CommunicationAnswer(array("success" => $success));
});
$this->maniaControl->getCommunicationManager()->registerCommunicationListener(CommunicationMethods::UNMUTE_PLAYER, $this, function ($data) {
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);
return array("error" => false, "data" => array("success" => $success));
return new CommunicationAnswer(array("success" => $success));
});
$this->maniaControl->getCommunicationManager()->registerCommunicationListener(CommunicationMethods::KICK_PLAYER, $this, function ($data) {
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 = "";
@ -117,7 +118,8 @@ class PlayerActions implements EchoListener, CommunicationListener {
}
$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\Callbacks;
use ManiaControl\Callbacks\TimerListener;
use ManiaControl\Communication\CommunicationAnswer;
use ManiaControl\Communication\CommunicationListener;
use ManiaControl\Communication\CommunicationMethods;
use ManiaControl\Logger;
@ -111,7 +112,7 @@ class PlayerManager implements CallbackListener, TimerListener, CommunicationLis
// Communication Listenings
$this->maniaControl->getCommunicationManager()->registerCommunicationListener(CommunicationMethods::GET_PLAYER_LIST, $this, function ($data) {
return array("error" => false, "data" => $this->players);
return new CommunicationAnswer($this->players);
});
}