diff --git a/core/Callbacks/Structures/BaseStructure.php b/core/Callbacks/Structures/BaseStructure.php index 7ee3b33a..4596c962 100644 --- a/core/Callbacks/Structures/BaseStructure.php +++ b/core/Callbacks/Structures/BaseStructure.php @@ -3,8 +3,9 @@ namespace ManiaControl\Callbacks\Structures; +use ManiaControl\General\UsageInformationAble; +use ManiaControl\General\UsageInformationTrait; use ManiaControl\ManiaControl; -use ReflectionClass; /** * Base Structure of all Callback Structures @@ -13,7 +14,9 @@ use ReflectionClass; * @copyright 2014-2017 ManiaControl Team * @license http://www.gnu.org/licenses/ GNU General Public License, Version 3 */ -abstract class BaseStructure { +abstract class BaseStructure implements UsageInformationAble { + use UsageInformationTrait; + /** @var ManiaControl $maniaControl */ protected $maniaControl; private $plainJsonObject; @@ -29,36 +32,4 @@ abstract class BaseStructure { public function getPlainJsonObject() { return $this->plainJsonObject; } - - /** - * Gets Information about the Class, and a List of the Public Method - */ - public function getUsage() { - $reflection = new ReflectionClass(get_class($this)); - echo $reflection->getDocComment(); - - echo "\nStructure Name of Class = " . get_class($this); - - echo "\nMethods:\n"; - - $metody = $reflection->getMethods(); - $methods = array_reverse($metody); - foreach ($methods as $key => $value) { - /** @var \ReflectionMethod $value */ - //Don't print the Constructor - if ($value->isPublic() && $value->getName() != "__construct" && $value->getName() != "getUsage") { - echo "\n\n"; - $txt = preg_replace('/\t/', '', $value->getDocComment()); - - echo $txt; - echo "\n \$result = " . $value->getName() . "();"; - $parameters = $value->getParameters(); - - foreach ($parameters as $parameter) { - echo "\n" . $parameter; - } - echo "\n"; - } - } - } } \ No newline at end of file diff --git a/core/Callbacks/Structures/XmlRpc/CallbacksListStructure.php b/core/Callbacks/Structures/XmlRpc/CallbacksListStructure.php index 4c30bc5d..0ca3788a 100644 --- a/core/Callbacks/Structures/XmlRpc/CallbacksListStructure.php +++ b/core/Callbacks/Structures/XmlRpc/CallbacksListStructure.php @@ -14,9 +14,9 @@ use ManiaControl\ManiaControl; */ class CallbacksListStructure extends BaseStructure { /** @var string $responseId */ - public $responseId; + private $responseId; /** @var array $callbacks */ - public $callbacks; + private $callbacks; /** * Construct a new Callbacks List Structure @@ -29,11 +29,11 @@ class CallbacksListStructure extends BaseStructure { $this->responseId = $this->getPlainJsonObject()->responseid; $this->callbacks = $this->getPlainJsonObject()->callbacks; - - $this->getUsage(); } /** + * Get the Response Id //TODO Trait for all Response Ids + * * @return string */ public function getResponseId() { @@ -41,7 +41,9 @@ class CallbacksListStructure extends BaseStructure { } /** - * @return array + * Get Array of the Callbacks + * + * @return string[] */ public function getCallbacks() { return $this->callbacks; diff --git a/core/General/DumpTrait.php b/core/General/DumpTrait.php index 72815407..242a08de 100644 --- a/core/General/DumpTrait.php +++ b/core/General/DumpTrait.php @@ -1,14 +1,12 @@ getDocComment(); + + echo "\nStructure Name of Class = " . get_class($this); + echo "\n\nMethods:"; + + $methods = array_reverse($reflection->getMethods()); + foreach ($methods as $key => $value) { + /** @var \ReflectionMethod $value */ + //Don't print the Constructor + if ($value->isPublic() && $value->getName() != "__construct" && $value->getName() != "getUsage") { + echo "\n"; + echo preg_replace('/\t/', '', $value->getDocComment()); + echo "\n \$result = " . $value->getName() . "(); \n"; + $parameters = $value->getParameters(); + + foreach ($parameters as $parameter) { + echo $parameter . "\n"; + } + } + } + echo "\n"; + //TODO add public Constands and Properties + } +} \ No newline at end of file diff --git a/core/ManiaControl.php b/core/ManiaControl.php index d92deef7..fb572fa7 100644 --- a/core/ManiaControl.php +++ b/core/ManiaControl.php @@ -21,6 +21,8 @@ use ManiaControl\Configurator\Configurator; use ManiaControl\Database\Database; use ManiaControl\Files\AsynchronousFileReader; use ManiaControl\Files\FileUtil; +use ManiaControl\General\UsageInformationAble; +use ManiaControl\General\UsageInformationTrait; use ManiaControl\Manialinks\ManialinkManager; use ManiaControl\Maps\MapManager; use ManiaControl\Players\Player; @@ -44,13 +46,15 @@ use Maniaplanet\DedicatedServer\Xmlrpc\TransportException; * @copyright 2014-2017 ManiaControl Team * @license http://www.gnu.org/licenses/ GNU General Public License, Version 3 */ -class ManiaControl implements CallbackListener, CommandListener, TimerListener, CommunicationListener { +class ManiaControl implements CallbackListener, CommandListener, TimerListener, CommunicationListener, UsageInformationAble { + use UsageInformationTrait; + /* * Constants */ const VERSION = '0.200'; const API_VERSION = '2013-04-16'; - const MIN_DEDIVERSION = '2014-04-02_18_00'; + const MIN_DEDIVERSION = '2017-03-23_18_00'; const SCRIPT_TIMEOUT = 10; const URL_WEBSERVICE = 'https://ws.maniacontrol.com/'; const SETTING_PERMISSION_SHUTDOWN = 'Shutdown ManiaControl';