improved player class
This commit is contained in:
		
							
								
								
									
										127
									
								
								application/.idea/workspace.xml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										127
									
								
								application/.idea/workspace.xml
									
									
									
										generated
									
									
									
								
							| @@ -37,7 +37,7 @@ | ||||
|       <file leaf-file-name="playerHandler.php" pinned="false" current="true" current-in-tab="true"> | ||||
|         <entry file="file://$PROJECT_DIR$/core/playerHandler.php"> | ||||
|           <provider selected="true" editor-type-id="text-editor"> | ||||
|             <state line="46" column="50" selection-start="1102" selection-end="1102" vertical-scroll-proportion="0.53782505" vertical-offset="242" max-vertical-offset="1088"> | ||||
|             <state line="68" column="7" selection-start="1941" selection-end="1941" vertical-scroll-proportion="0.7234042" vertical-offset="459" max-vertical-offset="1768"> | ||||
|               <folding /> | ||||
|             </state> | ||||
|           </provider> | ||||
| @@ -64,7 +64,34 @@ | ||||
|       <file leaf-file-name="core.php" pinned="false" current="false" current-in-tab="false"> | ||||
|         <entry file="file://$PROJECT_DIR$/core/core.php"> | ||||
|           <provider selected="true" editor-type-id="text-editor"> | ||||
|             <state line="187" column="24" selection-start="4232" selection-end="4232" vertical-scroll-proportion="-5.5" vertical-offset="2761" max-vertical-offset="6817"> | ||||
|             <state line="187" column="24" selection-start="4232" selection-end="4232" vertical-scroll-proportion="-41.82895" vertical-offset="0" max-vertical-offset="6817"> | ||||
|               <folding /> | ||||
|             </state> | ||||
|           </provider> | ||||
|         </entry> | ||||
|       </file> | ||||
|       <file leaf-file-name="commands.php" pinned="false" current="false" current-in-tab="false"> | ||||
|         <entry file="file://$PROJECT_DIR$/core/commands.php"> | ||||
|           <provider selected="true" editor-type-id="text-editor"> | ||||
|             <state line="99" column="27" selection-start="2928" selection-end="2928" vertical-scroll-proportion="170.65384" vertical-offset="6120" max-vertical-offset="11730"> | ||||
|               <folding /> | ||||
|             </state> | ||||
|           </provider> | ||||
|         </entry> | ||||
|       </file> | ||||
|       <file leaf-file-name="stats.php" pinned="false" current="false" current-in-tab="false"> | ||||
|         <entry file="file://$PROJECT_DIR$/core/stats.php"> | ||||
|           <provider selected="true" editor-type-id="text-editor"> | ||||
|             <state line="20" column="0" selection-start="268" selection-end="268" vertical-scroll-proportion="152.5" vertical-offset="4305" max-vertical-offset="5151"> | ||||
|               <folding /> | ||||
|             </state> | ||||
|           </provider> | ||||
|         </entry> | ||||
|       </file> | ||||
|       <file leaf-file-name="tools.php" pinned="false" current="false" current-in-tab="false"> | ||||
|         <entry file="file://$PROJECT_DIR$/core/tools.php"> | ||||
|           <provider selected="true" editor-type-id="text-editor"> | ||||
|             <state line="154" column="6" selection-start="3963" selection-end="3963" vertical-scroll-proportion="-22.615385" vertical-offset="2030" max-vertical-offset="4352"> | ||||
|               <folding /> | ||||
|             </state> | ||||
|           </provider> | ||||
| @@ -89,7 +116,6 @@ | ||||
|   <component name="IdeDocumentHistory"> | ||||
|     <option name="changedFiles"> | ||||
|       <list> | ||||
|         <option value="$PROJECT_DIR$/plugins/chatlog.plugin.php" /> | ||||
|         <option value="$PROJECT_DIR$/core/database.ManiaControl.php" /> | ||||
|         <option value="$PROJECT_DIR$/core/manialinkIdHandler.php" /> | ||||
|         <option value="$PROJECT_DIR$/core/core.ManiaControl.php" /> | ||||
| @@ -103,15 +129,16 @@ | ||||
|         <option value="$PROJECT_DIR$/core/callbacks.php" /> | ||||
|         <option value="$PROJECT_DIR$/core/chat.php" /> | ||||
|         <option value="$PROJECT_DIR$/core/core.php" /> | ||||
|         <option value="$PROJECT_DIR$/core/playerHandler.php" /> | ||||
|         <option value="$PROJECT_DIR$/core/player.php" /> | ||||
|         <option value="$PROJECT_DIR$/core/playerHandler.php" /> | ||||
|         <option value="$PROJECT_DIR$/core/tools.php" /> | ||||
|       </list> | ||||
|     </option> | ||||
|   </component> | ||||
|   <component name="PhpWorkspaceProjectConfiguration" backward_compatibility_performed="true" /> | ||||
|   <component name="ProjectFrameBounds"> | ||||
|     <option name="x" value="376" /> | ||||
|     <option name="y" value="13" /> | ||||
|     <option name="x" value="247" /> | ||||
|     <option name="y" value="29" /> | ||||
|     <option name="width" value="1936" /> | ||||
|     <option name="height" value="1056" /> | ||||
|   </component> | ||||
| @@ -291,7 +318,7 @@ | ||||
|     <servers /> | ||||
|   </component> | ||||
|   <component name="ToolWindowManager"> | ||||
|     <frame x="376" y="13" width="1936" height="1056" extended-state="0" /> | ||||
|     <frame x="247" y="29" width="1936" height="1056" extended-state="0" /> | ||||
|     <editor active="true" /> | ||||
|     <layout> | ||||
|       <window_info id="Changes" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" /> | ||||
| @@ -350,41 +377,6 @@ | ||||
|     </breakpoint-manager> | ||||
|   </component> | ||||
|   <component name="editorHistoryManager"> | ||||
|     <entry file="file://$PROJECT_DIR$/core/authentication.php"> | ||||
|       <provider selected="true" editor-type-id="text-editor"> | ||||
|         <state line="96" column="74" selection-start="2314" selection-end="2321" vertical-scroll-proportion="-6.3157897" vertical-offset="1152" max-vertical-offset="1853"> | ||||
|           <folding /> | ||||
|         </state> | ||||
|       </provider> | ||||
|     </entry> | ||||
|     <entry file="file://$PROJECT_DIR$/core/manialinkIdHandler.php"> | ||||
|       <provider selected="true" editor-type-id="text-editor"> | ||||
|         <state line="19" column="5" selection-start="306" selection-end="306" vertical-scroll-proportion="-12.423077" vertical-offset="0" max-vertical-offset="748"> | ||||
|           <folding /> | ||||
|         </state> | ||||
|       </provider> | ||||
|     </entry> | ||||
|     <entry file="file://$PROJECT_DIR$/core/commands.php"> | ||||
|       <provider selected="true" editor-type-id="text-editor"> | ||||
|         <state line="20" column="33" selection-start="0" selection-end="21192" vertical-scroll-proportion="0.4122682" vertical-offset="51" max-vertical-offset="11730"> | ||||
|           <folding /> | ||||
|         </state> | ||||
|       </provider> | ||||
|     </entry> | ||||
|     <entry file="file://$PROJECT_DIR$/core/stats.php"> | ||||
|       <provider selected="true" editor-type-id="text-editor"> | ||||
|         <state line="20" column="0" selection-start="268" selection-end="268" vertical-scroll-proportion="0.3566334" vertical-offset="90" max-vertical-offset="5151"> | ||||
|           <folding /> | ||||
|         </state> | ||||
|       </provider> | ||||
|     </entry> | ||||
|     <entry file="file://$PROJECT_DIR$/ManiaControl.php"> | ||||
|       <provider selected="true" editor-type-id="text-editor"> | ||||
|         <state line="26" column="0" selection-start="623" selection-end="623" vertical-scroll-proportion="0.5885486" vertical-offset="0" max-vertical-offset="751"> | ||||
|           <folding /> | ||||
|         </state> | ||||
|       </provider> | ||||
|     </entry> | ||||
|     <entry file="file://$PROJECT_DIR$/core/server.php"> | ||||
|       <provider selected="true" editor-type-id="text-editor"> | ||||
|         <state line="241" column="9" selection-start="5767" selection-end="5767" vertical-scroll-proportion="0.5021398" vertical-offset="3745" max-vertical-offset="6579"> | ||||
| @@ -427,13 +419,6 @@ | ||||
|         </state> | ||||
|       </provider> | ||||
|     </entry> | ||||
|     <entry file="file://$PROJECT_DIR$/core/core.php"> | ||||
|       <provider selected="true" editor-type-id="text-editor"> | ||||
|         <state line="187" column="24" selection-start="4232" selection-end="4232" vertical-scroll-proportion="-5.5" vertical-offset="2761" max-vertical-offset="6817"> | ||||
|           <folding /> | ||||
|         </state> | ||||
|       </provider> | ||||
|     </entry> | ||||
|     <entry file="file://$PROJECT_DIR$/core/chat.php"> | ||||
|       <provider selected="true" editor-type-id="text-editor"> | ||||
|         <state line="47" column="7" selection-start="976" selection-end="976" vertical-scroll-proportion="-9.653846" vertical-offset="548" max-vertical-offset="1547"> | ||||
| @@ -457,9 +442,51 @@ | ||||
|         </state> | ||||
|       </provider> | ||||
|     </entry> | ||||
|     <entry file="file://$PROJECT_DIR$/core/core.php"> | ||||
|       <provider selected="true" editor-type-id="text-editor"> | ||||
|         <state line="187" column="24" selection-start="4232" selection-end="4232" vertical-scroll-proportion="-41.82895" vertical-offset="0" max-vertical-offset="6817"> | ||||
|           <folding /> | ||||
|         </state> | ||||
|       </provider> | ||||
|     </entry> | ||||
|     <entry file="file://$PROJECT_DIR$/plugins/oldstructure/records.plugin.php"> | ||||
|       <provider selected="true" editor-type-id="text-editor"> | ||||
|         <state line="1200" column="7" selection-start="37957" selection-end="37957" vertical-scroll-proportion="0.5579196" vertical-offset="19928" max-vertical-offset="20774"> | ||||
|           <folding /> | ||||
|         </state> | ||||
|       </provider> | ||||
|     </entry> | ||||
|     <entry file="file://$PROJECT_DIR$/plugins/oldstructure/obstacle.plugin.php"> | ||||
|       <provider selected="true" editor-type-id="text-editor"> | ||||
|         <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="-0.024822695" vertical-offset="21" max-vertical-offset="1173"> | ||||
|           <folding /> | ||||
|         </state> | ||||
|       </provider> | ||||
|     </entry> | ||||
|     <entry file="file://$PROJECT_DIR$/core/commands.php"> | ||||
|       <provider selected="true" editor-type-id="text-editor"> | ||||
|         <state line="99" column="27" selection-start="2928" selection-end="2928" vertical-scroll-proportion="170.65384" vertical-offset="6120" max-vertical-offset="11730"> | ||||
|           <folding /> | ||||
|         </state> | ||||
|       </provider> | ||||
|     </entry> | ||||
|     <entry file="file://$PROJECT_DIR$/core/stats.php"> | ||||
|       <provider selected="true" editor-type-id="text-editor"> | ||||
|         <state line="20" column="0" selection-start="268" selection-end="268" vertical-scroll-proportion="152.5" vertical-offset="4305" max-vertical-offset="5151"> | ||||
|           <folding /> | ||||
|         </state> | ||||
|       </provider> | ||||
|     </entry> | ||||
|     <entry file="file://$PROJECT_DIR$/core/tools.php"> | ||||
|       <provider selected="true" editor-type-id="text-editor"> | ||||
|         <state line="154" column="6" selection-start="3963" selection-end="3963" vertical-scroll-proportion="-22.615385" vertical-offset="2030" max-vertical-offset="4352"> | ||||
|           <folding /> | ||||
|         </state> | ||||
|       </provider> | ||||
|     </entry> | ||||
|     <entry file="file://$PROJECT_DIR$/core/playerHandler.php"> | ||||
|       <provider selected="true" editor-type-id="text-editor"> | ||||
|         <state line="46" column="50" selection-start="1102" selection-end="1102" vertical-scroll-proportion="0.53782505" vertical-offset="242" max-vertical-offset="1088"> | ||||
|         <state line="68" column="7" selection-start="1941" selection-end="1941" vertical-scroll-proportion="0.7234042" vertical-offset="459" max-vertical-offset="1768"> | ||||
|           <folding /> | ||||
|         </state> | ||||
|       </provider> | ||||
|   | ||||
| @@ -24,6 +24,7 @@ class playerHandler { | ||||
|         $this->mc = $mc; | ||||
|         $this->playerList = array(); | ||||
|         $this->mc->callbacks->registerCallbackHandler(Callbacks::CB_MP_PLAYERCONNECT, $this, 'playerConnect'); | ||||
|         $this->mc->callbacks->registerCallbackHandler(Callbacks::CB_MP_PLAYERDISCONNECT, $this, 'playerDisconnect'); | ||||
|     } | ||||
|  | ||||
|  | ||||
| @@ -41,6 +42,7 @@ class playerHandler { | ||||
|      * @param $player | ||||
|      */ | ||||
|     public function playerConnect($player){ | ||||
|         //TODO: Welcome Message?, on mc restart not all players listed, no relay support yet | ||||
|         $this->mc->client->query('GetDetailedPlayerInfo', $player[0]); | ||||
|         $this->addPlayer(new Player($this->mc->client->getResponse())); | ||||
|         $player = $this->playerList[$player[0]]; | ||||
| @@ -48,12 +50,36 @@ class playerHandler { | ||||
|             $this->mc->chat->sendChat('$ff0New Player: '. $player->nickname . '$z $ff0Nation:$fff ' . $player->nation . ' $ff0Ladder: $fff' . $player->ladderrank); | ||||
|         } | ||||
|      } | ||||
|  | ||||
|     /** | ||||
|      * Handles a playerDisconnect | ||||
|      * @param $player | ||||
|      */ | ||||
|     public function playerDisconnect($player){ | ||||
|         $player = $this->removePlayer($player[0]); | ||||
|         $played = TOOLS::formatTime(time() - $player->created); | ||||
|         $this->mc->chat->sendChat($player->nickname . '$z $ff0has left the game. Played:$fff ' . $played); | ||||
|     } | ||||
|  | ||||
|  | ||||
|     /** | ||||
|      * Gets a Player from the Playerlist | ||||
|      * @param $login | ||||
|      * @return null | ||||
|      */ | ||||
|     public function getPlayer($login){ | ||||
|         if (isset($this->playerList[$login])) | ||||
|             return $this->playerList[$login]; | ||||
|         else | ||||
|             return null; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Adds a player to the PlayerList | ||||
|      * @param Player $player | ||||
|      * @return bool | ||||
|      */ | ||||
|     public function addPlayer(Player $player){ | ||||
|     private function addPlayer(Player $player){ | ||||
|         if($player != null){ | ||||
|             $this->playerList[$player->login] = $player; | ||||
|             return true; | ||||
| @@ -61,4 +87,18 @@ class playerHandler { | ||||
|             return false; | ||||
|         } | ||||
|     } | ||||
|     /** | ||||
|      * Removes a Player from the PlayerList | ||||
|      * @param $login | ||||
|      * @return Player $player | ||||
|      */ | ||||
|     private function removePlayer($login){ | ||||
|         if(isset($this->playerList[$login])){ | ||||
|             $player = $this->playerList[$login]; | ||||
|             unset($this->playerList[$login]); | ||||
|         } else { | ||||
|             $player = null; | ||||
|         } | ||||
|         return $player; | ||||
|     } | ||||
| }  | ||||
| @@ -140,6 +140,16 @@ class Tools { | ||||
| 		return $format; | ||||
| 	} | ||||
|  | ||||
|     /** | ||||
|      * Formats the given time (seconds) to hh:mm:ss | ||||
|      * | ||||
|      * @param int $time | ||||
|      * @return string | ||||
|      */ | ||||
|     public static function formatTimeH($seconds) { | ||||
|         return gmdate("H:i:s", $seconds); | ||||
|     } | ||||
|  | ||||
| 	/** | ||||
| 	 * Convert given data to real boolean | ||||
| 	 * | ||||
|   | ||||
		Reference in New Issue
	
	Block a user