From dcfb3fb9ec25ffbfd323b6296d83d4c4f949b6b7 Mon Sep 17 00:00:00 2001 From: kremsy Date: Fri, 7 Apr 2017 18:45:59 +0200 Subject: [PATCH] added possability to set a Method to call in your class --- core/Script/InvokeScriptCallback.php | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/core/Script/InvokeScriptCallback.php b/core/Script/InvokeScriptCallback.php index e9607fc2..f5f1bc93 100644 --- a/core/Script/InvokeScriptCallback.php +++ b/core/Script/InvokeScriptCallback.php @@ -45,13 +45,27 @@ class InvokeScriptCallback implements CallbackListener, UsageInformationAble { * @param callable $function async Function to Call back */ public function setCallable(callable $function) { - $this->maniaControl->getCallbackManager()->registerCallbackListener($this->callbackName, $this, function(BaseResponseStructure $callBackData) use (&$function){ - if($callBackData->getResponseId() == $this->responseId){ + $this->maniaControl->getCallbackManager()->registerCallbackListener($this->callbackName, $this, function (BaseResponseStructure $callBackData) use (&$function) { + if ($callBackData->getResponseId() == $this->responseId) { call_user_func_array($function, array($callBackData)); } }); } + /** + * You can set a Method in your Class to be called with this Variant + * + * @param \ManiaControl\Callbacks\CallbackListener $callbackListener + * @param $methodName + */ + public function setCallableMethod(CallbackListener $callbackListener, $methodName) { + $this->maniaControl->getCallbackManager()->registerCallbackListener($this->callbackName, $this, function (BaseResponseStructure $callBackData) use (&$callbackListener, &$methodName) { + if ($callBackData->getResponseId() == $this->responseId) { + call_user_func_array(array($callbackListener, $methodName), array($callBackData)); + } + }); + } + /** * Returns the Generated ResponseId *