advanced callback structure
This commit is contained in:
parent
8ab5d384da
commit
2faa78c8e2
@ -11,7 +11,7 @@
|
||||
error_reporting(E_ALL);
|
||||
|
||||
// Run configuration
|
||||
define('DEV_MODE', false); // Development mode to not send error reports etc.
|
||||
define('DEV_MODE', true); // Development mode to not send error reports etc.
|
||||
define('LOG_NAME_USE_DATE', true); // Use current date as suffix for log file name in logs folder
|
||||
define('LOG_NAME_USE_PID', true); // Use current process id as suffix for log file name in logs folder
|
||||
|
||||
|
@ -43,6 +43,7 @@ class LibXmlRpcCallbacks implements CallbackListener {
|
||||
*/
|
||||
public function handleScriptCallback($name, $data) {
|
||||
var_dump($name);
|
||||
//var_dump($data);
|
||||
switch ($name) {
|
||||
//New callbacks
|
||||
case 'XmlRpc.CallbacksList':
|
||||
|
@ -14,12 +14,38 @@ use ManiaControl\ManiaControl;
|
||||
abstract class BaseStructure {
|
||||
/** @var ManiaControl $maniaControl */
|
||||
protected $maniaControl;
|
||||
private $plainJson;
|
||||
|
||||
/**
|
||||
* Sets ManiaControl
|
||||
*
|
||||
* @param \ManiaControl\ManiaControl $maniaControl
|
||||
*/
|
||||
protected function setManiaControl(ManiaControl $maniaControl) {
|
||||
$this->maniaControl = $maniaControl;
|
||||
}
|
||||
|
||||
/**
|
||||
* Decodes the Data and Sets the Json
|
||||
*
|
||||
* @param array $data
|
||||
*/
|
||||
protected function setJson($data) {
|
||||
$this->plainJson = json_decode($data[0]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the Plain Json
|
||||
*/
|
||||
public function getJson() {
|
||||
return $this->plainJson;
|
||||
}
|
||||
|
||||
/**
|
||||
* Var_Dump the Structure
|
||||
*/
|
||||
public function dump() {
|
||||
var_dump($this->getJson());
|
||||
var_dump(json_decode(json_encode($this)));
|
||||
}
|
||||
|
||||
}
|
@ -14,9 +14,9 @@ use ManiaControl\ManiaControl;
|
||||
*/
|
||||
class CallbacksListStructure extends BaseStructure {
|
||||
/** @var string $responseId */
|
||||
private $responseId;
|
||||
public $responseId;
|
||||
/** @var array $callbacks */
|
||||
private $callbacks;
|
||||
public $callbacks;
|
||||
|
||||
/**
|
||||
* Construct a new Armor Empty Structure
|
||||
@ -25,13 +25,13 @@ class CallbacksListStructure extends BaseStructure {
|
||||
* @param array $data
|
||||
*/
|
||||
public function __construct(ManiaControl $maniaControl, $data) {
|
||||
$this->maniaControl = $maniaControl;
|
||||
parent::setManiaControl($maniaControl);
|
||||
parent::setJson($data);
|
||||
|
||||
//Not tested yet, TODO test
|
||||
$json = json_decode($data);
|
||||
$this->responseId = $this->getJson()->responseid;
|
||||
$this->callbacks = $this->getJson()->callbacks;
|
||||
|
||||
$this->responseId = $json->responseId;
|
||||
$this->callbacks = $json->callbacks;
|
||||
//$this->dump();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -13,6 +13,8 @@ namespace ManiaControl\Server;
|
||||
use ManiaControl\ManiaControl;
|
||||
|
||||
class ModeScriptEventManager {
|
||||
const API_VERSION = "2.0.0";
|
||||
|
||||
/** @var ManiaControl $maniaControl */
|
||||
private $maniaControl;
|
||||
|
||||
@ -31,12 +33,11 @@ class ModeScriptEventManager {
|
||||
public function enableCallbacks() {
|
||||
$this->maniaControl->getClient()->triggerModeScriptEvent('XmlRpc.EnableCallbacks', array('true'));
|
||||
|
||||
$this->setApiVersion();
|
||||
$this->setApiVersion(self::API_VERSION);
|
||||
|
||||
$this->getAllApiVersions();
|
||||
|
||||
$this->getCallbacksList(); //TODO verify why this does not work
|
||||
var_dump("test");
|
||||
}
|
||||
|
||||
/**
|
||||
@ -58,7 +59,7 @@ class ModeScriptEventManager {
|
||||
* Sets the Api Version
|
||||
* @param string $version
|
||||
*/
|
||||
public function setApiVersion($version = "1.2.3-beta.4.5.6+build789"){ //TODO constant of API Versions
|
||||
public function setApiVersion($version = self::API_VERSION){
|
||||
$this->maniaControl->getClient()->triggerModeScriptEvent('XmlRpc.SetApiVersion', array($version));
|
||||
}
|
||||
|
||||
|
@ -44,17 +44,15 @@ class ScriptManager {
|
||||
try {
|
||||
$scriptSettings = $this->maniaControl->getClient()->getModeScriptSettings();
|
||||
} catch (GameModeException $e) {
|
||||
var_dump("test");
|
||||
return false;
|
||||
}
|
||||
|
||||
//TODO remove later, than only the last 2 lines are needed in future
|
||||
if (!array_key_exists('S_UseScriptCallbacks', $scriptSettings)) {
|
||||
return false;
|
||||
if (array_key_exists('S_UseScriptCallbacks', $scriptSettings)) {
|
||||
$scriptSettings['S_UseScriptCallbacks'] = true;
|
||||
$this->maniaControl->getClient()->setModeScriptSettings($scriptSettings);
|
||||
}
|
||||
$scriptSettings['S_UseScriptCallbacks'] = true;
|
||||
$this->maniaControl->getClient()->setModeScriptSettings($scriptSettings);
|
||||
|
||||
|
||||
|
||||
$this->maniaControl->getModeScriptEventManager()->enableCallbacks();
|
||||
Logger::logInfo("Script Callbacks successfully enabled!");
|
||||
|
Loading…
Reference in New Issue
Block a user