update plugins to publish it
This commit is contained in:
		
							
								
								
									
										166
									
								
								Beu/ReloadDevTool.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										166
									
								
								Beu/ReloadDevTool.php
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,166 @@ | ||||
| <?php | ||||
| namespace Beu; | ||||
|  | ||||
| use ManiaControl\ManiaControl; | ||||
| use ManiaControl\Plugins\Plugin; | ||||
| use \ManiaControl\Logger; | ||||
| use ManiaControl\Players\PlayerManager; | ||||
| use ManiaControl\Callbacks\CallbackListener; | ||||
| use ManiaControl\Players\Player; | ||||
|  | ||||
| use ManiaControl\Settings\Setting; | ||||
| use ManiaControl\Settings\SettingManager; | ||||
| use ManiaControl\Manialinks\ManialinkPageAnswerListener; | ||||
|  | ||||
| use \Exception; | ||||
|  | ||||
| /** | ||||
|  * ReloadDevTool | ||||
|  * | ||||
|  * @author	Beu | ||||
|  * @license   http://www.gnu.org/licenses/ GNU General Public License, Version 3 | ||||
|  */ | ||||
| class ReloadDevTool implements ManialinkPageAnswerListener, CallbackListener, Plugin { | ||||
| 	/* | ||||
| 	* Constants | ||||
| 	*/ | ||||
| 	const PLUGIN_ID			= 165; | ||||
| 	const PLUGIN_VERSION	= 1.0; | ||||
| 	const PLUGIN_NAME		= 'ReloadDevTool'; | ||||
| 	const PLUGIN_AUTHOR		= 'Beu'; | ||||
|  | ||||
| 	const SETTING_RELOAD_GAMEMODE		= 'Reload Gamemode'; | ||||
| 	const SETTING_GAMEMODE_TO_LOAD		= 'Gamemode to load'; | ||||
| 	const SETTING_RESTART_MANIACONTROL	= 'Restart Maniacontrol'; | ||||
|  | ||||
| 	/* | ||||
| 	* Private properties | ||||
| 	*/ | ||||
| 	/** @var ManiaControl $maniaControl */ | ||||
| 	private $maniaControl	= null; | ||||
| 	private $manialink		= <<<'EOD' | ||||
| 	<?xml version="1.0" encoding="UTF-8" standalone="yes"?> | ||||
| 	<manialink id="ReloadDevTool" version="3"> | ||||
| 		<script><!-- | ||||
| 			main () { | ||||
| 				log("DEBUG_ReloadGamemode loaded"); | ||||
| 				while(True) { | ||||
| 					yield; | ||||
| 					foreach(Event in PendingEvents) { | ||||
| 						if (Event.Type == CMlScriptEvent::Type::KeyPress && Event.KeyName == "F5") { | ||||
| 							TriggerPageAction("ReloadDevTool_Reload"); | ||||
| 						} | ||||
| 					} | ||||
| 				} | ||||
| 			} | ||||
| 		--></script> | ||||
| 	</manialink> | ||||
| 	EOD; | ||||
|  | ||||
| 	/** | ||||
| 	 * @see \ManiaControl\Plugins\Plugin::prepare() | ||||
| 	 */ | ||||
| 	public static function prepare(ManiaControl $maniaControl) { | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * @see \ManiaControl\Plugins\Plugin::getId() | ||||
| 	 */ | ||||
| 	public static function getId() { | ||||
| 		return self::PLUGIN_ID; | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * @see \ManiaControl\Plugins\Plugin::getName() | ||||
| 	 */ | ||||
| 	public static function getName() { | ||||
| 		return self::PLUGIN_NAME; | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * @see \ManiaControl\Plugins\Plugin::getVersion() | ||||
| 	 */ | ||||
| 	public static function getVersion() { | ||||
| 		return self::PLUGIN_VERSION; | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * @see \ManiaControl\Plugins\Plugin::getAuthor() | ||||
| 	 */ | ||||
| 	public static function getAuthor() { | ||||
| 		return self::PLUGIN_AUTHOR; | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * @see \ManiaControl\Plugins\Plugin::getDescription() | ||||
| 	 */ | ||||
| 	public static function getDescription() { | ||||
| 		return "Simple plugin to reload gamemode or maniacontrol with F5"; | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * @see \ManiaControl\Plugins\Plugin::load() | ||||
| 	 */ | ||||
| 	public function load(ManiaControl $maniaControl) { | ||||
| 		$this->maniaControl = $maniaControl; | ||||
|  | ||||
| 		$this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_RELOAD_GAMEMODE, false, ""); | ||||
| 		$this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_GAMEMODE_TO_LOAD, "", 'File to load in UserData/Scripts/Modes/'); | ||||
| 		$this->maniaControl->getSettingManager()->initSetting($this, self::SETTING_RESTART_MANIACONTROL, false, ""); | ||||
|  | ||||
| 		$this->maniaControl->getCallbackManager()->registerCallbackListener(PlayerManager::CB_PLAYERCONNECT, $this, 'handlePlayerConnect'); | ||||
| 		$this->maniaControl->getManialinkManager()->registerManialinkPageAnswerListener("ReloadDevTool_Reload", $this, 'handleReload'); | ||||
|  | ||||
| 		$admins = $this->maniaControl->getAuthenticationManager()->getAdmins(); | ||||
| 		if (!empty($admins)) { | ||||
| 			$this->maniaControl->getManialinkManager()->sendManialink($this->manialink,$admins); | ||||
| 		} | ||||
|  | ||||
| 	} | ||||
| 	 | ||||
| 	/** | ||||
| 	 * Handle when a player connects | ||||
| 	 *  | ||||
| 	 * @param Player $player | ||||
| 	 */ | ||||
| 	public function handlePlayerConnect(Player $player) { | ||||
| 		if ($player->authLevel > 0) { | ||||
| 			$this->maniaControl->getManialinkManager()->sendManialink($this->manialink,$player->login); | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	public function handleReload(array $callback, Player $player) { | ||||
| 		if ($player->authLevel <= 0) { | ||||
| 			Logger::logError('Wrong authlevel'); | ||||
| 			return; | ||||
| 		} | ||||
| 		Logger::log('handleReload'); | ||||
| 		$this->maniaControl->getChat()->sendSuccess("Handle Reload"); | ||||
|  | ||||
| 		if ($this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_RELOAD_GAMEMODE)) { | ||||
| 			$file = $this->maniaControl->getServer()->getDirectory()->getUserDataFolder() . "Scripts" . DIRECTORY_SEPARATOR .  "Modes" . DIRECTORY_SEPARATOR . $this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_GAMEMODE_TO_LOAD); | ||||
| 			if ($file && is_file($file)) { | ||||
| 				try { | ||||
| 					$this->maniaControl->getChat()->sendSuccess("Loading In-Dev Script"); | ||||
| 					$this->maniaControl->getClient()->setModeScriptText(file_get_contents($file)); | ||||
| 				} catch (\Exception $e) { | ||||
| 					Logger::logError($e->getMessage()); | ||||
| 					$this->maniaControl->getChat()->sendErrorToAdmins($e->getMessage()); | ||||
| 				} | ||||
| 			} else { | ||||
| 				Logger::logError('No Game mode to load'); | ||||
| 				$this->maniaControl->getChat()->sendErrorToAdmins("No Game mode to load"); | ||||
| 			} | ||||
| 		} | ||||
| 		if ($this->maniaControl->getSettingManager()->getSettingValue($this, self::SETTING_RESTART_MANIACONTROL)) { | ||||
| 			$this->maniaControl->reboot(); | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * Unload the plugin and its Resources | ||||
| 	 */ | ||||
| 	public function unload() { | ||||
|  | ||||
| 	} | ||||
| } | ||||
		Reference in New Issue
	
	Block a user