added maniacontrol restart callback
This commit is contained in:
parent
0b02f63309
commit
82e1dd1c65
@ -16,6 +16,7 @@
|
||||
- added Method getSpectators() in PlayerManager
|
||||
- added some missing PHP Docs
|
||||
- added some depency libraries as they are used by the Socket Handler
|
||||
- added additional Callback which gets triggered on ManiaControl Restart
|
||||
- updated some depency libraries
|
||||
|
||||
#Bug Fixes
|
||||
|
@ -18,6 +18,7 @@ interface Callbacks {
|
||||
const ONINIT = 'Callbacks.OnInit';
|
||||
const AFTERINIT = 'Callbacks.AfterInit';
|
||||
const ONSHUTDOWN = 'Callbacks.OnShutdown';
|
||||
const ONRESTART = 'Callbacks.OnRestart';
|
||||
|
||||
/** Script Callback: CallbackName, CallbackData */
|
||||
const SCRIPTCALLBACK = 'Callbacks.ScriptCallback';
|
||||
|
@ -54,6 +54,7 @@ class CommunicationManager implements CallbackListener {
|
||||
|
||||
$this->maniaControl->getCallbackManager()->registerCallbackListener(SettingManager::CB_SETTING_CHANGED, $this, 'updateSettings');
|
||||
$this->maniaControl->getCallbackManager()->registerCallbackListener(Callbacks::AFTERINIT, $this, 'initCommunicationManager');
|
||||
$this->maniaControl->getCallbackManager()->registerCallbackListener(Callbacks::ONRESTART, $this, 'onShutDown');
|
||||
$this->maniaControl->getCallbackManager()->registerCallbackListener(Callbacks::ONSHUTDOWN, $this, 'onShutDown');
|
||||
}
|
||||
|
||||
@ -92,6 +93,12 @@ class CommunicationManager implements CallbackListener {
|
||||
|
||||
/** Close all Sockets on maniaControl Shutdown */
|
||||
public function onShutDown() {
|
||||
if ($this->socket && $this->socket->master) {
|
||||
//Stop the Socket Listening
|
||||
$this->socket->shutdown();
|
||||
$this->socket = null;
|
||||
}
|
||||
|
||||
foreach ($this->communications as $communication) {
|
||||
$this->closeCommunication($communication);
|
||||
}
|
||||
@ -235,6 +242,7 @@ class CommunicationManager implements CallbackListener {
|
||||
$this->socket = new Server($this->loop);
|
||||
|
||||
$this->socket->on('error', function ($e) {
|
||||
$this->maniaControl->chat->sendChat($e);
|
||||
Logger::log("[CommunicationManager] Socket Error" . $e);
|
||||
});
|
||||
|
||||
@ -253,7 +261,6 @@ class CommunicationManager implements CallbackListener {
|
||||
$data = openssl_decrypt($msg, self::ENCRYPTION_METHOD, $password, OPENSSL_RAW_DATA, self::ENCRYPTION_IV);
|
||||
$data = json_decode($data);
|
||||
|
||||
|
||||
if ($data == null) {
|
||||
$data = array("error" => true, "data" => "Data is not provided as an valid AES-196-encrypted encrypted JSON");
|
||||
} else if (!property_exists($data, "method") || !property_exists($data, "data")) {
|
||||
|
@ -228,7 +228,7 @@ class ManiaControl implements CallbackListener, CommandListener, TimerListener,
|
||||
$this->restart($data->message);
|
||||
}
|
||||
$this->restart();
|
||||
}, 5000);
|
||||
}, 3000);
|
||||
return new CommunicationAnswer();
|
||||
});
|
||||
}
|
||||
@ -507,6 +507,9 @@ class ManiaControl implements CallbackListener, CommandListener, TimerListener,
|
||||
* @param string $message
|
||||
*/
|
||||
public function restart($message = null) {
|
||||
// Trigger callback on Restart
|
||||
$this->getCallbackManager()->triggerCallback(Callbacks::ONRESTART);
|
||||
|
||||
// Announce restart
|
||||
try {
|
||||
$this->getChat()->sendInformation('Restarting ManiaControl...');
|
||||
|
Loading…
Reference in New Issue
Block a user