diff --git a/application/plugins/DynamicPointlimitPlugin.php b/application/plugins/DynamicPointlimitPlugin.php index 064be0f6..79189305 100644 --- a/application/plugins/DynamicPointlimitPlugin.php +++ b/application/plugins/DynamicPointlimitPlugin.php @@ -1,153 +1 @@ -settingManager->initSetting(get_class(), self::ACCEPT_OTHER_MODES, false); - $maniaControl->settingManager->initSetting(get_class(), self::DYNPNT_MULTIPLIER, 10); - $maniaControl->settingManager->initSetting(get_class(), self::DYNPNT_OFFSET, 0); - $maniaControl->settingManager->initSetting(get_class(), self::DYNPNT_MIN, 30); - $maniaControl->settingManager->initSetting(get_class(), self::DYNPNT_MAX, 200); - } - - /** - * Private properties - */ - /** @var ManiaControl $maniaControl */ - private $maniaControl = null; - - /** - * Load the plugin - * - * @param \ManiaControl\ManiaControl $maniaControl - * @throws Exception - * @return bool - */ - public function load(ManiaControl $maniaControl) { - $this->maniaControl = $maniaControl; - - $this->maniaControl->callbackManager->registerCallbackListener(PlayerManager::CB_PLAYERCONNECT, $this, 'changePointlimit'); - $this->maniaControl->callbackManager->registerCallbackListener(PlayerManager::CB_PLAYERDISCONNECT, $this, 'changePointlimit'); - - $allowOthers = $this->maniaControl->settingManager->getSetting($this, self::ACCEPT_OTHER_MODES); - if (!$allowOthers && $this->maniaControl->server->titleId != 'SMStormRoyal@nadeolabs') { - $error = 'This plugin only supports Royal (check Settings)!'; - throw new Exception($error); - } - } - - /** - * Unload the plugin and its resources - */ - public function unload() { - $this->maniaControl->callbackManager->unregisterCallbackListener($this); - - unset($this->maniaControl); - } - - /** - * Get plugin id - * - * @return int - */ - public static function getId() { - return self::ID; - } - - /** - * Get Plugin Name - * - * @return string - */ - public static function getName() { - return 'Dynamic Pointlimit Plugin'; - } - - /** - * Get Plugin Version - * - * @return float - */ - public static function getVersion() { - return self::VERSION; - } - - /** - * Get Plugin Author - * - * @return string - */ - public static function getAuthor() { - return 'TheM'; - } - - /** - * Get Plugin Description - * - * @return string - */ - public static function getDescription() { - return 'Plugin offers a dynamic pointlimit according to the amount of players on the server.'; - } - - /** - * Function called on player connect and disconnect, changing the pointlimit. - * - * @param Player $player - */ - public function changePointlimit(Player $player) { - $numberOfPlayers = 0; - $numberOfSpectators = 0; - - /** @var Player $player */ - foreach($this->maniaControl->playerManager->getPlayers() as $player) { - if ($player->isSpectator) { - $numberOfSpectators++; - } else { - $numberOfPlayers++; - } - } - - $pointlimit = ($numberOfPlayers * $this->maniaControl->settingManager->getSetting($this, self::DYNPNT_MULTIPLIER)) + $this->maniaControl->settingManager->getSetting($this, self::DYNPNT_OFFSET); - - $min_value = $this->maniaControl->settingManager->getSetting($this, self::DYNPNT_MIN); - $max_value = $this->maniaControl->settingManager->getSetting($this, self::DYNPNT_MAX); - if ($pointlimit < $min_value) { - $pointlimit = $min_value; - } - if ($pointlimit > $max_value) { - $pointlimit = $max_value; - } - - $this->maniaControl->client->setModeScriptSettings(array('S_MapPointsLimit' => $pointlimit)); - } -} \ No newline at end of file + \ No newline at end of file diff --git a/application/plugins/TheM/DynamicPointlimitPlugin.php b/application/plugins/TheM/DynamicPointlimitPlugin.php new file mode 100644 index 00000000..bfa41826 --- /dev/null +++ b/application/plugins/TheM/DynamicPointlimitPlugin.php @@ -0,0 +1,154 @@ +settingManager->initSetting(get_class(), self::ACCEPT_OTHER_MODES, false); + $maniaControl->settingManager->initSetting(get_class(), self::DYNPNT_MULTIPLIER, 10); + $maniaControl->settingManager->initSetting(get_class(), self::DYNPNT_OFFSET, 0); + $maniaControl->settingManager->initSetting(get_class(), self::DYNPNT_MIN, 30); + $maniaControl->settingManager->initSetting(get_class(), self::DYNPNT_MAX, 200); + } + + /** + * Private properties + */ + /** @var ManiaControl $maniaControl */ + private $maniaControl = null; + + /** + * Load the plugin + * + * @param \ManiaControl\ManiaControl $maniaControl + * @throws \Exception + * @return bool + */ + public function load(ManiaControl $maniaControl) { + $this->maniaControl = $maniaControl; + + $this->maniaControl->callbackManager->registerCallbackListener(PlayerManager::CB_PLAYERCONNECT, $this, 'changePointlimit'); + $this->maniaControl->callbackManager->registerCallbackListener(PlayerManager::CB_PLAYERDISCONNECT, $this, 'changePointlimit'); + + $allowOthers = $this->maniaControl->settingManager->getSetting($this, self::ACCEPT_OTHER_MODES); + if (!$allowOthers && $this->maniaControl->server->titleId != 'SMStormRoyal@nadeolabs') { + $error = 'This plugin only supports Royal (check Settings)!'; + throw new \Exception($error); + } + } + + /** + * Unload the plugin and its resources + */ + public function unload() { + $this->maniaControl->callbackManager->unregisterCallbackListener($this); + + unset($this->maniaControl); + } + + /** + * Get plugin id + * + * @return int + */ + public static function getId() { + return self::ID; + } + + /** + * Get Plugin Name + * + * @return string + */ + public static function getName() { + return 'Dynamic Pointlimit Plugin'; + } + + /** + * Get Plugin Version + * + * @return float + */ + public static function getVersion() { + return self::VERSION; + } + + /** + * Get Plugin Author + * + * @return string + */ + public static function getAuthor() { + return 'TheM'; + } + + /** + * Get Plugin Description + * + * @return string + */ + public static function getDescription() { + return 'Plugin offers a dynamic pointlimit according to the amount of players on the server.'; + } + + /** + * Function called on player connect and disconnect, changing the pointlimit. + * + * @param Player $player + */ + public function changePointlimit(Player $player) { + $numberOfPlayers = 0; + $numberOfSpectators = 0; + + /** @var Player $player */ + foreach($this->maniaControl->playerManager->getPlayers() as $player) { + if ($player->isSpectator) { + $numberOfSpectators++; + } else { + $numberOfPlayers++; + } + } + + $pointlimit = ($numberOfPlayers * $this->maniaControl->settingManager->getSetting($this, self::DYNPNT_MULTIPLIER)) + $this->maniaControl->settingManager->getSetting($this, self::DYNPNT_OFFSET); + + $min_value = $this->maniaControl->settingManager->getSetting($this, self::DYNPNT_MIN); + $max_value = $this->maniaControl->settingManager->getSetting($this, self::DYNPNT_MAX); + if ($pointlimit < $min_value) { + $pointlimit = $min_value; + } + if ($pointlimit > $max_value) { + $pointlimit = $max_value; + } + + $this->maniaControl->client->setModeScriptSettings(array('S_MapPointsLimit' => $pointlimit)); + } +} \ No newline at end of file