small fix
This commit is contained in:
		
				
					committed by
					
						 Steffen Schröder
						Steffen Schröder
					
				
			
			
				
	
			
			
			
						parent
						
							f6a4355f41
						
					
				
				
					commit
					2bcc9029bc
				
			| @@ -2,6 +2,7 @@ | |||||||
|  |  | ||||||
| use ManiaControl\Callbacks\CallbackListener; | use ManiaControl\Callbacks\CallbackListener; | ||||||
| use ManiaControl\Callbacks\CallbackManager; | use ManiaControl\Callbacks\CallbackManager; | ||||||
|  | use ManiaControl\Commands\CommandListener; | ||||||
| use ManiaControl\ManiaControl; | use ManiaControl\ManiaControl; | ||||||
| use ManiaControl\Players\Player; | use ManiaControl\Players\Player; | ||||||
| use ManiaControl\Players\PlayerManager; | use ManiaControl\Players\PlayerManager; | ||||||
| @@ -10,7 +11,7 @@ use ManiaControl\Statistics\StatisticCollector; | |||||||
| use ManiaControl\Statistics\StatisticManager; | use ManiaControl\Statistics\StatisticManager; | ||||||
| use Maniaplanet\DedicatedServer\Structures\AbstractStructure; | use Maniaplanet\DedicatedServer\Structures\AbstractStructure; | ||||||
|  |  | ||||||
| class ServerRankingPlugin implements Plugin, CallbackListener { | class ServerRankingPlugin implements Plugin, CallbackListener, CommandListener { | ||||||
| 	/** | 	/** | ||||||
| 	 * Constants | 	 * Constants | ||||||
| 	 */ | 	 */ | ||||||
| @@ -27,6 +28,7 @@ class ServerRankingPlugin implements Plugin, CallbackListener { | |||||||
| 	const SETTING_MIN_HITS_HITS_RANKING  = 'Min Hits on Hits Rankings'; | 	const SETTING_MIN_HITS_HITS_RANKING  = 'Min Hits on Hits Rankings'; | ||||||
| 	const SETTING_MIN_REQUIRED_RECORDS   = 'Minimum amount of records required on Records Ranking'; | 	const SETTING_MIN_REQUIRED_RECORDS   = 'Minimum amount of records required on Records Ranking'; | ||||||
| 	const SETTING_MAX_STORED_RECORDS     = 'Maximum number of records per map for calculations'; | 	const SETTING_MAX_STORED_RECORDS     = 'Maximum number of records per map for calculations'; | ||||||
|  | 	const CB_RANK_BUILT                  = 'ServerRankingPlugin.RankBuilt'; | ||||||
|  |  | ||||||
| 	/** | 	/** | ||||||
| 	 * Private Properties | 	 * Private Properties | ||||||
| @@ -56,9 +58,6 @@ class ServerRankingPlugin implements Plugin, CallbackListener { | |||||||
|  |  | ||||||
| 		$this->initTables(); | 		$this->initTables(); | ||||||
|  |  | ||||||
| 		$this->maniaControl->callbackManager->registerCallbackListener(PlayerManager::CB_PLAYERJOINED, $this, 'handlePlayerConnect'); |  | ||||||
| 		$this->maniaControl->callbackManager->registerCallbackListener(CallbackManager::CB_MC_ENDMAP, $this, 'handleEndMap'); |  | ||||||
|  |  | ||||||
| 		$maniaControl->settingManager->initSetting($this, self::SETTING_MIN_HITS_RATIO_RANKING, 100); | 		$maniaControl->settingManager->initSetting($this, self::SETTING_MIN_HITS_RATIO_RANKING, 100); | ||||||
| 		$maniaControl->settingManager->initSetting($this, self::SETTING_MIN_HITS_HITS_RANKING, 15); | 		$maniaControl->settingManager->initSetting($this, self::SETTING_MIN_HITS_HITS_RANKING, 15); | ||||||
|  |  | ||||||
| @@ -81,6 +80,14 @@ class ServerRankingPlugin implements Plugin, CallbackListener { | |||||||
| 			$error = 'Ranking Type is not correct, possible values(' . self::RANKING_TYPE_RATIOS . ', ' . self::RANKING_TYPE_HITS . ', ' . self::RANKING_TYPE_HITS . ')'; | 			$error = 'Ranking Type is not correct, possible values(' . self::RANKING_TYPE_RATIOS . ', ' . self::RANKING_TYPE_HITS . ', ' . self::RANKING_TYPE_HITS . ')'; | ||||||
| 			throw new Exception($error); | 			throw new Exception($error); | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
|  | 		//Register CallbackListeners | ||||||
|  | 		$this->maniaControl->callbackManager->registerCallbackListener(PlayerManager::CB_PLAYERJOINED, $this, 'handlePlayerConnect'); | ||||||
|  | 		$this->maniaControl->callbackManager->registerCallbackListener(CallbackManager::CB_MC_ENDMAP, $this, 'handleEndMap'); | ||||||
|  |  | ||||||
|  | 		//Register CommandListener | ||||||
|  | 		$this->maniaControl->commandManager->registerCommandListener('rank', $this, 'command_showRank', false); | ||||||
|  | 		$this->maniaControl->commandManager->registerCommandListener('nextrank', $this, 'command_nextRank', false); | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	/** | 	/** | ||||||
| @@ -88,6 +95,7 @@ class ServerRankingPlugin implements Plugin, CallbackListener { | |||||||
| 	 */ | 	 */ | ||||||
| 	public function unload() { | 	public function unload() { | ||||||
| 		$this->maniaControl->callbackManager->unregisterCallbackListener($this); | 		$this->maniaControl->callbackManager->unregisterCallbackListener($this); | ||||||
|  | 		$this->maniaControl->commandManager->unregisterCommandListener($this); | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	/** | 	/** | ||||||
| @@ -167,7 +175,7 @@ class ServerRankingPlugin implements Plugin, CallbackListener { | |||||||
| 			case self::RANKING_TYPE_RATIOS: | 			case self::RANKING_TYPE_RATIOS: | ||||||
| 				$minHits = $this->maniaControl->settingManager->getSetting($this, self::SETTING_MIN_HITS_RATIO_RANKING); | 				$minHits = $this->maniaControl->settingManager->getSetting($this, self::SETTING_MIN_HITS_RATIO_RANKING); | ||||||
|  |  | ||||||
| 				$hits            = $this->maniaControl->statisticManager->getStatsRanking(StatisticCollector::STAT_ON_HIT, -1 , $minHits); | 				$hits            = $this->maniaControl->statisticManager->getStatsRanking(StatisticCollector::STAT_ON_HIT, -1, $minHits); | ||||||
| 				$killDeathRatios = $this->maniaControl->statisticManager->getStatsRanking(StatisticManager::SPECIAL_STAT_KD_RATIO); | 				$killDeathRatios = $this->maniaControl->statisticManager->getStatsRanking(StatisticManager::SPECIAL_STAT_KD_RATIO); | ||||||
| 				$accuracies      = $this->maniaControl->statisticManager->getStatsRanking(StatisticManager::SPECIAL_STAT_LASER_ACC); | 				$accuracies      = $this->maniaControl->statisticManager->getStatsRanking(StatisticManager::SPECIAL_STAT_LASER_ACC); | ||||||
|  |  | ||||||
| @@ -235,8 +243,7 @@ class ServerRankingPlugin implements Plugin, CallbackListener { | |||||||
| 					$ranks[$player] = ($sum + ($mapCount - $cnt) * $maxRecords) / $mapCount; | 					$ranks[$player] = ($sum + ($mapCount - $cnt) * $maxRecords) / $mapCount; | ||||||
| 				} | 				} | ||||||
|  |  | ||||||
| 				//TODO improve statement: | 				asort($ranks); | ||||||
| 				array_reverse(arsort($ranks)); |  | ||||||
| 				break; | 				break; | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
| @@ -288,7 +295,9 @@ class ServerRankingPlugin implements Plugin, CallbackListener { | |||||||
| 			$this->showRank($player); | 			$this->showRank($player); | ||||||
| 			$this->showNextRank($player); | 			$this->showNextRank($player); | ||||||
| 		} | 		} | ||||||
| 		//TODO cb on rank builded |  | ||||||
|  | 		// Trigger callback | ||||||
|  | 		$this->maniaControl->callbackManager->triggerCallback(self::CB_RANK_BUILT, array(self::CB_RANK_BUILT)); | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	/** | 	/** | ||||||
| @@ -375,7 +384,29 @@ class ServerRankingPlugin implements Plugin, CallbackListener { | |||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  |  | ||||||
| 	//TODO chatcommand showrank | 	/** | ||||||
|  | 	 * Shows the current Server-Rank | ||||||
|  | 	 * | ||||||
|  | 	 * @param array  $chatCallback | ||||||
|  | 	 * @param Player $player | ||||||
|  | 	 */ | ||||||
|  | 	public function command_showRank(array $chatCallback, Player $player) { | ||||||
|  | 		$this->showRank($player); | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	/** | ||||||
|  | 	 * Show the next better ranked player | ||||||
|  | 	 * | ||||||
|  | 	 * @param array  $chatCallback | ||||||
|  | 	 * @param Player $player | ||||||
|  | 	 */ | ||||||
|  | 	public function command_nextRank(array $chatCallback, Player $player) { | ||||||
|  | 		if (!$this->showNextRank($player)) { | ||||||
|  | 			$message = '$0f3You need to have a ServerRank first!'; | ||||||
|  | 			$this->maniaControl->chat->sendChat($message, $player->login); | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  |  | ||||||
| 	/** | 	/** | ||||||
| 	 * Shows which Player is next ranked to you | 	 * Shows which Player is next ranked to you | ||||||
| @@ -383,7 +414,6 @@ class ServerRankingPlugin implements Plugin, CallbackListener { | |||||||
| 	 * @param Player $player | 	 * @param Player $player | ||||||
| 	 */ | 	 */ | ||||||
| 	public function showNextRank(Player $player) { | 	public function showNextRank(Player $player) { | ||||||
| 		//TODO chatcommand |  | ||||||
| 		$rankObject = $this->getRank($player); | 		$rankObject = $this->getRank($player); | ||||||
|  |  | ||||||
| 		if ($rankObject != null) { | 		if ($rankObject != null) { | ||||||
| @@ -395,7 +425,10 @@ class ServerRankingPlugin implements Plugin, CallbackListener { | |||||||
| 				$message = '$0f3No better ranked player :-)'; | 				$message = '$0f3No better ranked player :-)'; | ||||||
| 			} | 			} | ||||||
| 			$this->maniaControl->chat->sendChat($message, $player->login); | 			$this->maniaControl->chat->sendChat($message, $player->login); | ||||||
|  |  | ||||||
|  | 			return true; | ||||||
| 		} | 		} | ||||||
|  | 		return false; | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user