usage reporter start
This commit is contained in:
		
				
					committed by
					
						 Steffen Schröder
						Steffen Schröder
					
				
			
			
				
	
			
			
			
						parent
						
							dc56815f02
						
					
				
				
					commit
					28d927e05e
				
			| @@ -44,6 +44,7 @@ require_once __DIR__ . '/Plugins/PluginManager.php'; | ||||
| require_once __DIR__ . '/Server/Server.php'; | ||||
| require_once __DIR__ . '/Settings/SettingManager.php'; | ||||
| require_once __DIR__ . '/UpdateManager.php'; | ||||
| require_once __DIR__ . '/Server/UsageReporter.php'; | ||||
|  | ||||
| /** | ||||
|  * ManiaControl Server Controller for ManiaPlanet Server | ||||
|   | ||||
| @@ -389,6 +389,14 @@ class PlayerList implements ManialinkPageAnswerListener, CallbackListener { | ||||
| 		$backgroundQuad = new Quad(); | ||||
| 		$frame->add($backgroundQuad); | ||||
| 		$backgroundQuad->setSize($width, $height); | ||||
| 		$backgroundQuad->setImage('https://dl.dropboxusercontent.com/u/105352981/Stuff/CAM%20SM%20BORDER%20PNG.png'); //TODO just a test | ||||
| 		//$backgroundQuad->setStyles($quadStyle, $quadSubstyle); | ||||
| 		$backgroundQuad->setZ(0.2); | ||||
|  | ||||
| 		// Background Quad | ||||
| 		$backgroundQuad = new Quad(); | ||||
| 		$frame->add($backgroundQuad); | ||||
| 		$backgroundQuad->setSize($width - 2, $height - 2); | ||||
| 		$backgroundQuad->setStyles($quadStyle, $quadSubstyle); | ||||
| 		$backgroundQuad->setZ(0.1); | ||||
|  | ||||
|   | ||||
| @@ -33,6 +33,7 @@ class Server implements CallbackListener { | ||||
| 	public $titleId = null; | ||||
| 	public $dataDirectory = ''; | ||||
| 	public $serverCommands = null; | ||||
| 	public $usageReporter = null; | ||||
|  | ||||
| 	/** | ||||
| 	 * Private Properties | ||||
| @@ -49,6 +50,7 @@ class Server implements CallbackListener { | ||||
| 		$this->initTables(); | ||||
|  | ||||
| 		$this->serverCommands = new ServerCommands($maniaControl); | ||||
| 		$this->usageReporter  = new UsageReporter($maniaControl); | ||||
|  | ||||
| 		// Register for callbacks | ||||
| 		$this->maniaControl->callbackManager->registerCallbackListener(CallbackManager::CB_MC_ONINIT, $this, 'onInit'); | ||||
|   | ||||
							
								
								
									
										64
									
								
								application/core/Server/UsageReporter.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								application/core/Server/UsageReporter.php
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,64 @@ | ||||
| <?php | ||||
|  | ||||
| namespace ManiaControl\Server; | ||||
|  | ||||
| use ManiaControl\Callbacks\CallbackListener; | ||||
| use ManiaControl\Callbacks\CallbackManager; | ||||
| use ManiaControl\ManiaControl; | ||||
|  | ||||
| /** | ||||
|  * Class reports Usage | ||||
|  * | ||||
|  * @author steeffeen & kremsy | ||||
|  */ | ||||
| class UsageReporter implements CallbackListener { | ||||
| 	/** | ||||
| 	 * Constants | ||||
| 	 */ | ||||
| 	const UPDATE_MINUTE_COUNT             = 10; | ||||
| 	const SETTING_DISABLE_USAGE_REPORTING = 'Disable Usage Reporting'; | ||||
| 	/** | ||||
| 	 * Private Properties | ||||
| 	 */ | ||||
| 	private $maniaControl = null; | ||||
| 	private $minuteCount = 0; | ||||
|  | ||||
| 	/** | ||||
| 	 * Create a new Server Settings Instance | ||||
| 	 * | ||||
| 	 * @param ManiaControl $maniaControl | ||||
| 	 */ | ||||
| 	public function __construct(ManiaControl $maniaControl) { | ||||
| 		$this->maniaControl = $maniaControl; | ||||
| 		//TODO setting | ||||
| 		$this->maniaControl->callbackManager->registerCallbackListener(CallbackManager::CB_MC_1_MINUTE, $this, 'handleEveryMinute'); | ||||
|  | ||||
| 		$this->maniaControl->settingManager->initSetting($this, self::SETTING_DISABLE_USAGE_REPORTING, false); | ||||
| 	} | ||||
|  | ||||
| 	public function handleEveryMinute(array $callback) { | ||||
| 		if($this->maniaControl->settingManager->getSetting($this, self::SETTING_DISABLE_USAGE_REPORTING)) { | ||||
| 			return; | ||||
| 		} | ||||
|  | ||||
| 		$this->minuteCount++; | ||||
|  | ||||
| 		if($this->minuteCount >= self::UPDATE_MINUTE_COUNT) { | ||||
| 			$properties                    = array(); | ||||
| 			$properties['MC_Version']      = ManiaControl::VERSION; | ||||
| 			$properties['OperatingSystem'] = php_uname(); | ||||
| 			$properties['PHPVersion']      = phpversion(); | ||||
| 			$properties['ServerLogin']     = $this->maniaControl->server->login; | ||||
| 			$properties['TitleId']         = $this->maniaControl->server->titleId; | ||||
| 			$properties['ServerName']      = $this->maniaControl->server->getName(); | ||||
| 			$properties['PlayerCount']     = count($this->maniaControl->playerManager->getPlayers()); | ||||
| 			$properties['MaxPlayers']      = $this->maniaControl->client->getMaxPlayers(); | ||||
|  | ||||
| 			$json = json_encode($properties); | ||||
| 			$info = base64_encode($json); | ||||
|  | ||||
| 			//TODO send Info | ||||
| 			$this->minuteCount = 0; | ||||
| 		} | ||||
| 	} | ||||
| }  | ||||
		Reference in New Issue
	
	Block a user