- deleted stats class
- deleted other .idea folder - added other .idea to .gitignore
This commit is contained in:
parent
96eaa77b97
commit
d1818680d5
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,4 +1,5 @@
|
||||
/.idea/
|
||||
/application/.idea/
|
||||
/.settings/
|
||||
/.buildpath
|
||||
/.project
|
1
application/.idea/.name
generated
1
application/.idea/.name
generated
@ -1 +0,0 @@
|
||||
application
|
9
application/.idea/application.iml
generated
9
application/.idea/application.iml
generated
@ -1,9 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="WEB_MODULE" version="4">
|
||||
<component name="NewModuleRootManager">
|
||||
<content url="file://$MODULE_DIR$" />
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
||||
|
3
application/.idea/dictionaries/Lukas.xml
generated
3
application/.idea/dictionaries/Lukas.xml
generated
@ -1,3 +0,0 @@
|
||||
<component name="ProjectDictionaryState">
|
||||
<dictionary name="Lukas" />
|
||||
</component>
|
5
application/.idea/encodings.xml
generated
5
application/.idea/encodings.xml
generated
@ -1,5 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="Encoding" useUTFGuessing="true" native2AsciiForPropertiesFiles="false" />
|
||||
</project>
|
||||
|
36
application/.idea/misc.xml
generated
36
application/.idea/misc.xml
generated
@ -1,36 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectInspectionProfilesVisibleTreeState">
|
||||
<entry key="Project Default">
|
||||
<profile-state>
|
||||
<expanded-state>
|
||||
<State>
|
||||
<id />
|
||||
</State>
|
||||
</expanded-state>
|
||||
<selected-state>
|
||||
<State>
|
||||
<id>SASS/SCSS</id>
|
||||
</State>
|
||||
</selected-state>
|
||||
</profile-state>
|
||||
</entry>
|
||||
</component>
|
||||
<component name="ProjectRootManager" version="2" />
|
||||
<component name="masterDetails">
|
||||
<states>
|
||||
<state key="ScopeChooserConfigurable.UI">
|
||||
<settings>
|
||||
<splitter-proportions>
|
||||
<option name="proportions">
|
||||
<list>
|
||||
<option value="0.2" />
|
||||
</list>
|
||||
</option>
|
||||
</splitter-proportions>
|
||||
</settings>
|
||||
</state>
|
||||
</states>
|
||||
</component>
|
||||
</project>
|
||||
|
9
application/.idea/modules.xml
generated
9
application/.idea/modules.xml
generated
@ -1,9 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/application.iml" filepath="$PROJECT_DIR$/.idea/application.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
||||
|
5
application/.idea/scopes/scope_settings.xml
generated
5
application/.idea/scopes/scope_settings.xml
generated
@ -1,5 +0,0 @@
|
||||
<component name="DependencyValidationManager">
|
||||
<state>
|
||||
<option name="SKIP_IMPORT_STATEMENTS" value="false" />
|
||||
</state>
|
||||
</component>
|
8
application/.idea/vagrant.xml
generated
8
application/.idea/vagrant.xml
generated
@ -1,8 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VagrantSettings">
|
||||
<option name="instanceFolder" value="" />
|
||||
<option name="vagrantExecutable" value="vagrant.bat" />
|
||||
</component>
|
||||
</project>
|
||||
|
7
application/.idea/vcs.xml
generated
7
application/.idea/vcs.xml
generated
@ -1,7 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="" vcs="" />
|
||||
</component>
|
||||
</project>
|
||||
|
505
application/.idea/workspace.xml
generated
505
application/.idea/workspace.xml
generated
@ -1,505 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="810d50c2-5feb-4cd4-8bb3-d6196e2e83d8" name="Default" comment="" />
|
||||
<ignored path="application.iws" />
|
||||
<ignored path=".idea/workspace.xml" />
|
||||
<option name="TRACKING_ENABLED" value="true" />
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
||||
<option name="LAST_RESOLUTION" value="IGNORE" />
|
||||
</component>
|
||||
<component name="ChangesViewManager" flattened_view="true" show_ignored="false" />
|
||||
<component name="CreatePatchCommitExecutor">
|
||||
<option name="PATCH_PATH" value="" />
|
||||
</component>
|
||||
<component name="DaemonCodeAnalyzer">
|
||||
<disable_hints />
|
||||
</component>
|
||||
<component name="ExecutionTargetManager" SELECTED_TARGET="default_target" />
|
||||
<component name="FavoritesManager">
|
||||
<favorites_list name="application" />
|
||||
</component>
|
||||
<component name="FileEditorManager">
|
||||
<leaf>
|
||||
<file leaf-file-name="plugin.php" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/core/plugin.php">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="58" column="22" selection-start="1179" selection-end="1179" vertical-scroll-proportion="-32.03846" vertical-offset="153" max-vertical-offset="2703">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="player.php" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/core/player.php">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="103" column="0" selection-start="3396" selection-end="3396" vertical-scroll-proportion="-7.5657897" vertical-offset="1176" max-vertical-offset="1972">
|
||||
<folding>
|
||||
<element signature="e#6#85#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<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="57" column="118" selection-start="1645" selection-end="1645" vertical-scroll-proportion="0.5177305" vertical-offset="446" max-vertical-offset="1921">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="authentication.php" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/core/authentication.php">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="12" column="16" selection-start="146" selection-end="146" vertical-scroll-proportion="-5.8846154" vertical-offset="51" max-vertical-offset="1853">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="chat.php" pinned="false" current="false" current-in-tab="false">
|
||||
<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">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="database.php" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/core/database.php">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="319" column="19" selection-start="9044" selection-end="9044" vertical-scroll-proportion="-1.25" vertical-offset="5328" max-vertical-offset="6919">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<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="-41.82895" vertical-offset="0" max-vertical-offset="6817">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="server.php" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/core/server.php">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="229" column="110" selection-start="5463" selection-end="5463" vertical-scroll-proportion="-5.730769" vertical-offset="3744" max-vertical-offset="6596">
|
||||
<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>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="chatlog.plugin.php" pinned="false" current="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/plugins/oldstructure/chatlog.plugin.php">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="40" column="118" selection-start="631" selection-end="741" vertical-scroll-proportion="-20.26923" vertical-offset="153" max-vertical-offset="1547">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
</leaf>
|
||||
</component>
|
||||
<component name="FindManager">
|
||||
<FindUsagesManager>
|
||||
<setting name="OPEN_NEW_TAB" value="false" />
|
||||
</FindUsagesManager>
|
||||
</component>
|
||||
<component name="IdeDocumentHistory">
|
||||
<option name="changedFiles">
|
||||
<list>
|
||||
<option value="$PROJECT_DIR$/core/database.ManiaControl.php" />
|
||||
<option value="$PROJECT_DIR$/core/manialinkIdHandler.php" />
|
||||
<option value="$PROJECT_DIR$/core/core.ManiaControl.php" />
|
||||
<option value="$PROJECT_DIR$/configs/plugins.ManiaControl.xml" />
|
||||
<option value="$PROJECT_DIR$/core/pluginHandler.php" />
|
||||
<option value="$PROJECT_DIR$/ManiaControl.php" />
|
||||
<option value="$PROJECT_DIR$/core/commands.php" />
|
||||
<option value="$PROJECT_DIR$/core/stats.php" />
|
||||
<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/tools.php" />
|
||||
<option value="$PROJECT_DIR$/core/server.php" />
|
||||
<option value="$PROJECT_DIR$/core/player.php" />
|
||||
<option value="$PROJECT_DIR$/core/playerHandler.php" />
|
||||
<option value="$PROJECT_DIR$/core/plugin.php" />
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
<component name="PhpWorkspaceProjectConfiguration" backward_compatibility_performed="true" />
|
||||
<component name="ProjectFrameBounds">
|
||||
<option name="x" value="542" />
|
||||
<option name="y" value="216" />
|
||||
<option name="width" value="1936" />
|
||||
<option name="height" value="1056" />
|
||||
</component>
|
||||
<component name="ProjectLevelVcsManager" settingsEditedManually="false">
|
||||
<OptionsSetting value="true" id="Add" />
|
||||
<OptionsSetting value="true" id="Remove" />
|
||||
<OptionsSetting value="true" id="Checkout" />
|
||||
<OptionsSetting value="true" id="Update" />
|
||||
<OptionsSetting value="true" id="Status" />
|
||||
<OptionsSetting value="true" id="Edit" />
|
||||
<ConfirmationsSetting value="0" id="Add" />
|
||||
<ConfirmationsSetting value="0" id="Remove" />
|
||||
</component>
|
||||
<component name="ProjectReloadState">
|
||||
<option name="STATE" value="0" />
|
||||
</component>
|
||||
<component name="ProjectView">
|
||||
<navigator currentView="ProjectPane" proportions="" version="1" splitterProportion="0.5">
|
||||
<flattenPackages />
|
||||
<showMembers />
|
||||
<showModules />
|
||||
<showLibraryContents />
|
||||
<hideEmptyPackages />
|
||||
<abbreviatePackageNames />
|
||||
<autoscrollToSource />
|
||||
<autoscrollFromSource />
|
||||
<sortByType />
|
||||
</navigator>
|
||||
<panes>
|
||||
<pane id="ProjectPane">
|
||||
<subPane>
|
||||
<PATH>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="application" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
||||
</PATH_ELEMENT>
|
||||
</PATH>
|
||||
<PATH>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="application" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="application" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
</PATH>
|
||||
<PATH>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="application" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="application" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="plugins" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="oldstructure" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
</PATH>
|
||||
<PATH>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="application" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="application" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="core" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
</PATH>
|
||||
<PATH>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="application" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="application" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
<PATH_ELEMENT>
|
||||
<option name="myItemId" value="configs" />
|
||||
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
|
||||
</PATH_ELEMENT>
|
||||
</PATH>
|
||||
</subPane>
|
||||
</pane>
|
||||
<pane id="Scope">
|
||||
<subPane subId="Problems" />
|
||||
<subPane subId="Tests" />
|
||||
<subPane subId="Project Files">
|
||||
<PATH>
|
||||
<PATH_ELEMENT USER_OBJECT="Root">
|
||||
<option name="myItemId" value="" />
|
||||
<option name="myItemType" value="" />
|
||||
</PATH_ELEMENT>
|
||||
</PATH>
|
||||
</subPane>
|
||||
</pane>
|
||||
</panes>
|
||||
</component>
|
||||
<component name="PropertiesComponent">
|
||||
<property name="options.splitter.main.proportions" value="0.3" />
|
||||
<property name="WebServerToolWindowFactoryState" value="true" />
|
||||
<property name="options.lastSelected" value="reference.settings.ide.settings.uml" />
|
||||
<property name="last_opened_file_path" value="$PROJECT_DIR$/.." />
|
||||
<property name="options.splitter.details.proportions" value="0.2" />
|
||||
<property name="options.searchVisible" value="true" />
|
||||
</component>
|
||||
<component name="PublishConfig">
|
||||
<servers>
|
||||
<server id="17a42bee-a550-4af8-9ca6-9ec751fda755">
|
||||
<serverdata>
|
||||
<mappings>
|
||||
<mapping local="$PROJECT_DIR$" />
|
||||
</mappings>
|
||||
</serverdata>
|
||||
</server>
|
||||
<server id="cffd73bb-bc3d-46ed-be64-c7c6fe83d23d">
|
||||
<serverdata>
|
||||
<mappings>
|
||||
<mapping local="$PROJECT_DIR$" />
|
||||
</mappings>
|
||||
</serverdata>
|
||||
</server>
|
||||
</servers>
|
||||
</component>
|
||||
<component name="RunManager">
|
||||
<configuration default="true" type="PHPUnitRunConfigurationType" factoryName="PHPUnit">
|
||||
<TestRunner />
|
||||
<method />
|
||||
</configuration>
|
||||
<configuration default="true" type="PhpLocalRunConfigurationType" factoryName="PHP Console">
|
||||
<method />
|
||||
</configuration>
|
||||
<configuration default="true" type="JavascriptDebugType" factoryName="JavaScript Debug" singleton="true">
|
||||
<method />
|
||||
</configuration>
|
||||
<configuration default="true" type="PhpUnitRemoteRunConfigurationType" factoryName="PHPUnit on Server">
|
||||
<method />
|
||||
</configuration>
|
||||
<list size="0" />
|
||||
</component>
|
||||
<component name="ShelveChangesManager" show_recycled="false" />
|
||||
<component name="SvnConfiguration" maxAnnotateRevisions="500" myUseAcceleration="nothing" myAutoUpdateAfterCommit="false" cleanupOnStartRun="false" SSL_PROTOCOLS="all">
|
||||
<option name="USER" value="" />
|
||||
<option name="PASSWORD" value="" />
|
||||
<option name="mySSHConnectionTimeout" value="30000" />
|
||||
<option name="mySSHReadTimeout" value="30000" />
|
||||
<option name="LAST_MERGED_REVISION" />
|
||||
<option name="MERGE_DRY_RUN" value="false" />
|
||||
<option name="MERGE_DIFF_USE_ANCESTRY" value="true" />
|
||||
<option name="UPDATE_LOCK_ON_DEMAND" value="false" />
|
||||
<option name="IGNORE_SPACES_IN_MERGE" value="false" />
|
||||
<option name="CHECK_NESTED_FOR_QUICK_MERGE" value="false" />
|
||||
<option name="IGNORE_SPACES_IN_ANNOTATE" value="true" />
|
||||
<option name="SHOW_MERGE_SOURCES_IN_ANNOTATE" value="true" />
|
||||
<option name="FORCE_UPDATE" value="false" />
|
||||
<option name="IGNORE_EXTERNALS" value="false" />
|
||||
<configuration useDefault="false">C:\Users\Lukas\AppData\Roaming\Subversion</configuration>
|
||||
<myIsUseDefaultProxy>false</myIsUseDefaultProxy>
|
||||
</component>
|
||||
<component name="TaskManager">
|
||||
<task active="true" id="Default" summary="Default task">
|
||||
<changelist id="810d50c2-5feb-4cd4-8bb3-d6196e2e83d8" name="Default" comment="" />
|
||||
<created>1383994867593</created>
|
||||
<updated>1383994867593</updated>
|
||||
</task>
|
||||
<servers />
|
||||
</component>
|
||||
<component name="ToolWindowManager">
|
||||
<frame x="542" y="216" 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" />
|
||||
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="10" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Remote Host" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.12646745" sideWeight="0.8942093" order="0" side_tool="false" content_ui="combo" />
|
||||
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
|
||||
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.105790645" sideWeight="0.5" order="8" side_tool="true" content_ui="tabs" />
|
||||
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="9" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="SLIDING" type="SLIDING" visible="false" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
|
||||
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
|
||||
</layout>
|
||||
<layout-to-restore>
|
||||
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
|
||||
<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" />
|
||||
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="10" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Remote Host" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
|
||||
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.105790645" sideWeight="0.5" order="8" side_tool="true" content_ui="tabs" />
|
||||
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="9" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="SLIDING" type="SLIDING" visible="false" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.12646745" sideWeight="0.8942093" order="0" side_tool="false" content_ui="combo" />
|
||||
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
|
||||
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
|
||||
</layout-to-restore>
|
||||
</component>
|
||||
<component name="VcsContentAnnotationSettings">
|
||||
<option name="myLimit" value="2678400000" />
|
||||
</component>
|
||||
<component name="VcsManagerConfiguration">
|
||||
<option name="myTodoPanelSettings">
|
||||
<TodoPanelSettings />
|
||||
</option>
|
||||
</component>
|
||||
<component name="XDebuggerManager">
|
||||
<breakpoint-manager>
|
||||
<option name="time" value="1" />
|
||||
</breakpoint-manager>
|
||||
</component>
|
||||
<component name="editorHistoryManager">
|
||||
<entry file="file://$PROJECT_DIR$/plugins/oldstructure/chatlog.plugin.php">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="40" column="118" selection-start="631" selection-end="741" vertical-scroll-proportion="-20.26923" vertical-offset="153" max-vertical-offset="1547">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/core/PhpRemote/GbxRemote.bem.php">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="-0.66312057" vertical-offset="561" max-vertical-offset="15266">
|
||||
<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/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/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">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/core/commands.php">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="38" column="71" selection-start="829" selection-end="829" vertical-scroll-proportion="0.46217495" vertical-offset="255" 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.40189126" vertical-offset="0" max-vertical-offset="5151">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/core/server.php">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="229" column="110" selection-start="5463" selection-end="5463" vertical-scroll-proportion="-5.730769" vertical-offset="3744" max-vertical-offset="6596">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/core/pluginHandler.php">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="32" column="2" selection-start="478" selection-end="478" vertical-scroll-proportion="0.643026" vertical-offset="0" max-vertical-offset="846">
|
||||
<folding />
|
||||
</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$/core/database.php">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="319" column="19" selection-start="9044" selection-end="9044" vertical-scroll-proportion="-1.25" vertical-offset="5328" max-vertical-offset="6919">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/core/authentication.php">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="12" column="16" selection-start="146" selection-end="146" vertical-scroll-proportion="-5.8846154" vertical-offset="51" max-vertical-offset="1853">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/core/player.php">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="103" column="0" selection-start="3396" selection-end="3396" vertical-scroll-proportion="-7.5657897" vertical-offset="1176" max-vertical-offset="1972">
|
||||
<folding>
|
||||
<element signature="e#6#85#0" expanded="true" />
|
||||
</folding>
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/core/plugin.php">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="58" column="22" selection-start="1179" selection-end="1179" vertical-scroll-proportion="-32.03846" vertical-offset="153" max-vertical-offset="2703">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/core/playerHandler.php">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state line="57" column="118" selection-start="1645" selection-end="1645" vertical-scroll-proportion="0.5177305" vertical-offset="446" max-vertical-offset="1921">
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</component>
|
||||
</project>
|
||||
|
@ -1,43 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Configure the stats manager and enable/disable specific stats -->
|
||||
<stats-config>
|
||||
|
||||
<stats>
|
||||
|
||||
<!-- Server stats -->
|
||||
<server>
|
||||
|
||||
<!-- Track how many players connected on the server -->
|
||||
<track_server_connects>true</track_server_connects>
|
||||
|
||||
<!-- Track how many players have been on the server at max -->
|
||||
<track_server_max_players>true</track_server_max_players>
|
||||
|
||||
<!-- Track how many maps have been played during the day -->
|
||||
<track_server_played_maps>true</track_server_played_maps>
|
||||
|
||||
<!-- Track how many times players finished during the day -->
|
||||
<track_server_finishes>true</track_server_finishes>
|
||||
|
||||
</server>
|
||||
|
||||
<!-- Player stats -->
|
||||
<player>
|
||||
|
||||
<!-- Track player connect counts -->
|
||||
<track_player_connects>true</track_player_connects>
|
||||
|
||||
<!-- Track player play time -->
|
||||
<track_player_playtime>true</track_player_playtime>
|
||||
|
||||
<!-- Track how many chat message players have sent -->
|
||||
<track_player_chats>true</track_player_chats>
|
||||
|
||||
<!-- Track player finishes -->
|
||||
<track_player_finishes>true</track_player_finishes>
|
||||
|
||||
</player>
|
||||
|
||||
</stats>
|
||||
|
||||
</stats-config>
|
@ -1,297 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace ManiaControl;
|
||||
|
||||
/**
|
||||
* Stats class
|
||||
*
|
||||
* @author steeffeen
|
||||
*/
|
||||
class Stats {
|
||||
/**
|
||||
* Constants
|
||||
*/
|
||||
const TABLE_STATS_SERVER = 'ic_stats_server';
|
||||
const TABLE_STATS_PLAYERS = 'ic_stats_players';
|
||||
|
||||
/**
|
||||
* Private properties
|
||||
*/
|
||||
private $mc = null;
|
||||
|
||||
private $config = null;
|
||||
|
||||
/**
|
||||
* Constuct stats manager
|
||||
*/
|
||||
public function __construct($mc) {
|
||||
$this->mc = $mc;
|
||||
|
||||
// Load config
|
||||
$this->config = Tools::loadConfig('stats.ManiaControl.xml');
|
||||
$this->loadSettings();
|
||||
|
||||
// Init database tables
|
||||
$this->initTables();
|
||||
|
||||
// Register for needed callbacks
|
||||
$this->mc->callbacks->registerCallbackHandler(Callbacks::CB_MP_ENDMAP, $this, 'handleEndMap');
|
||||
$this->mc->callbacks->registerCallbackHandler(Callbacks::CB_MP_PLAYERCHAT, $this, 'handlePlayerChat');
|
||||
$this->mc->callbacks->registerCallbackHandler(Callbacks::CB_MP_PLAYERCONNECT, $this, 'handlePlayerConnect');
|
||||
$this->mc->callbacks->registerCallbackHandler(Callbacks::CB_MP_PLAYERDISCONNECT, $this, 'handlePlayerDisconnect');
|
||||
$this->mc->callbacks->registerCallbackHandler(Callbacks::CB_TM_PLAYERFINISH, $this, 'handlePlayerFinish');
|
||||
}
|
||||
|
||||
/**
|
||||
* Create the database tables
|
||||
*/
|
||||
private function initTables() {
|
||||
$query = "";
|
||||
|
||||
// Server stats
|
||||
$query .= "CREATE TABLE IF NOT EXISTS `" . self::TABLE_STATS_SERVER . "` (
|
||||
`index` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`day` date NOT NULL,
|
||||
`connectCount` int(11) NOT NULL DEFAULT '0',
|
||||
`maxPlayerCount` int(11) NOT NULL DEFAULT '0',
|
||||
`playedMaps` int(11) NOT NULL DEFAULT '0',
|
||||
`finishCount` int(11) NOT NULL DEFAULT '0',
|
||||
`changed` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`index`),
|
||||
UNIQUE KEY `day` (`day`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Stores server stats' AUTO_INCREMENT=1;";
|
||||
|
||||
// Player stats
|
||||
$query .= "CREATE TABLE IF NOT EXISTS `" . self::TABLE_STATS_PLAYERS . "` (
|
||||
`index` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`Login` varchar(100) NOT NULL,
|
||||
`playTime` int(11) NOT NULL DEFAULT '0',
|
||||
`connectCount` int(11) NOT NULL DEFAULT '0',
|
||||
`chatCount` int(11) NOT NULL DEFAULT '0',
|
||||
`finishCount` int(11) NOT NULL DEFAULT '0',
|
||||
`hitCount` int(11) NOT NULL DEFAULT '0',
|
||||
`eliminationCount` int(11) NOT NULL DEFAULT '0',
|
||||
`lastJoin` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
|
||||
`changed` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`index`),
|
||||
UNIQUE KEY `Login` (`Login`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Tracks player stats' AUTO_INCREMENT=1;";
|
||||
|
||||
// Perform queries
|
||||
if (!$this->mc->database->multiQuery($query)) {
|
||||
trigger_error("Creating stats tables failed.");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Load settings from config
|
||||
*/
|
||||
private function loadSettings() {
|
||||
$this->settings = new \stdClass();
|
||||
|
||||
$this->settings->track_server_connects = Tools::checkSetting($this->config, 'track_server_connects');
|
||||
$this->settings->track_server_max_players = Tools::checkSetting($this->config, 'track_server_max_players');
|
||||
$this->settings->track_server_played_maps = Tools::checkSetting($this->config, 'track_server_played_maps');
|
||||
$this->settings->track_server_finishes = Tools::checkSetting($this->config, 'track_server_finishes');
|
||||
|
||||
$this->settings->track_player_connects = Tools::checkSetting($this->config, 'track_player_connects');
|
||||
$this->settings->track_player_playtime = Tools::checkSetting($this->config, 'track_player_playtime');
|
||||
$this->settings->track_player_chats = Tools::checkSetting($this->config, 'track_player_chats');
|
||||
$this->settings->track_player_finishes = Tools::checkSetting($this->config, 'track_player_finishes');
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle EndMap callback
|
||||
*/
|
||||
public function handleEndMap($callback) {
|
||||
$multiquery = "";
|
||||
|
||||
// Track played server maps
|
||||
if ($this->settings->track_server_played_maps) {
|
||||
$multiquery .= "INSERT INTO `" . self::TABLE_STATS_SERVER . "` (
|
||||
`day`,
|
||||
`playedMaps`
|
||||
) VALUES (
|
||||
CURDATE(),
|
||||
1
|
||||
) ON DUPLICATE KEY UPDATE
|
||||
`playedMaps` = `playedMaps` + VALUES(`playedMaps`)
|
||||
;";
|
||||
}
|
||||
|
||||
// Perform query
|
||||
if (!$this->mc->database->multiQuery($multiquery)) {
|
||||
trigger_error("Perform queries on end map failed.");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle PlayerChat callback
|
||||
*/
|
||||
public function handlePlayerChat($callback) {
|
||||
if ($callback[1][0] <= 0) return;
|
||||
$multiquery = "";
|
||||
$login = $callback[1][1];
|
||||
|
||||
// Track chats
|
||||
if ($this->settings->track_player_chats) {
|
||||
$multiquery .= "INSERT INTO `" . self::TABLE_STATS_PLAYERS . "` (
|
||||
`Login`,
|
||||
`chatCount`
|
||||
) VALUES (
|
||||
'" . $this->mc->database->escape($login) . "',
|
||||
1
|
||||
) ON DUPLICATE KEY UPDATE
|
||||
`chatCount` = `chatCount` + VALUES(`chatCount`)
|
||||
;";
|
||||
}
|
||||
|
||||
// Perform query
|
||||
if (!$this->mc->database->multiQuery($multiquery)) {
|
||||
trigger_error("Perform queries on player chat failed.");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle PlayerConnect callback
|
||||
*/
|
||||
public function handlePlayerConnect($callback) {
|
||||
$multiquery = "";
|
||||
$login = $callback[1][0];
|
||||
|
||||
// Track server connect
|
||||
if ($this->settings->track_server_connects) {
|
||||
$multiquery .= "INSERT INTO `" . self::TABLE_STATS_SERVER . "` (
|
||||
`day`,
|
||||
`connectCount`
|
||||
) VALUES (
|
||||
CURDATE(),
|
||||
1
|
||||
) ON DUPLICATE KEY UPDATE
|
||||
`connectCount` = `connectCount` + VALUES(`connectCount`)
|
||||
;";
|
||||
}
|
||||
|
||||
// Track server max players
|
||||
if ($this->settings->track_server_max_players) {
|
||||
$players = $this->mc->server->getPlayers();
|
||||
$multiquery .= "INSERT INTO `" . self::TABLE_STATS_SERVER . "` (
|
||||
`day`,
|
||||
`maxPlayerCount`
|
||||
) VALUES (
|
||||
CURDATE(),
|
||||
" . count($players) . "
|
||||
) ON DUPLICATE KEY UPDATE
|
||||
`maxPlayerCount` = GREATEST(`maxPlayerCount`, VALUES(`maxPlayerCount`))
|
||||
;";
|
||||
}
|
||||
|
||||
// Track player connect
|
||||
if ($this->settings->track_player_connects) {
|
||||
$multiquery .= "INSERT INTO `" . self::TABLE_STATS_PLAYERS . "` (
|
||||
`Login`,
|
||||
`lastJoin`,
|
||||
`connectCount`
|
||||
) VALUES (
|
||||
'" . $this->mc->database->escape($login) . "',
|
||||
NOW(),
|
||||
1
|
||||
) ON DUPLICATE KEY UPDATE
|
||||
`lastJoin` = VALUES(`lastJoin`),
|
||||
`connectCount` = `connectCount` + VALUES(`connectCount`)
|
||||
;";
|
||||
}
|
||||
|
||||
// Perform query
|
||||
if (!$this->mc->database->multiQuery($multiquery)) {
|
||||
trigger_error("Perform queries on player connect failed.");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle PlayerDisconnect callback
|
||||
*/
|
||||
public function handlePlayerDisconnect($callback) {
|
||||
$multiquery = "";
|
||||
$login = $callback[1][0];
|
||||
|
||||
// Track player playtime
|
||||
if ($this->settings->track_player_playtime) {
|
||||
$query = "SELECT `lastJoin` FROM `" . self::TABLE_STATS_PLAYERS . "`
|
||||
WHERE `Login` = '" . $this->mc->database->escape($login) . "'
|
||||
;";
|
||||
$result = $this->mc->database->query($query);
|
||||
if (!$result) {
|
||||
// Error
|
||||
trigger_error("Error selecting player join time from '" . $login . "'.");
|
||||
}
|
||||
else {
|
||||
// Add play time
|
||||
while ($row = $result->fetch_object()) {
|
||||
if (!property_exists($row, 'lastJoin')) continue;
|
||||
$lastJoin = strtotime($row->lastJoin);
|
||||
$lastJoin = ($lastJoin > $this->mc->startTime ? $lastJoin : $this->mc->startTime);
|
||||
$multiquery .= "INSERT INTO `" . self::TABLE_STATS_PLAYERS . "` (
|
||||
`Login`,
|
||||
`playTime`
|
||||
) VALUES (
|
||||
'" . $this->mc->database->escape($login) . "',
|
||||
TIMESTAMPDIFF(SECOND, '" . Tools::timeToTimestamp($lastJoin) . "', NOW())
|
||||
) ON DUPLICATE KEY UPDATE
|
||||
`playTime` = `playTime` + VALUES(`playTime`)
|
||||
;";
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Perform query
|
||||
if (!$this->mc->database->multiQuery($multiquery)) {
|
||||
trigger_error("Perform queries on player connect failed.");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle the PlayerFinish callback
|
||||
*/
|
||||
public function handlePlayerFinish($callback) {
|
||||
if ($callback[1][0] <= 0) return;
|
||||
if ($callback[1][2] <= 0) return;
|
||||
|
||||
$multiquery = "";
|
||||
$login = $callback[1][1];
|
||||
|
||||
// Track server finishes
|
||||
if ($this->settings->track_server_finishes) {
|
||||
$multiquery .= "INSERT INTO `" . self::TABLE_STATS_SERVER . "` (
|
||||
`day`,
|
||||
`finishCount`
|
||||
) VALUES (
|
||||
CURDATE(),
|
||||
1
|
||||
) ON DUPLICATE KEY UPDATE
|
||||
`finishCount` = `finishCount` + VALUES(`finishCount`)
|
||||
;";
|
||||
}
|
||||
|
||||
// Track player finishes
|
||||
if ($this->settings->track_player_finishes) {
|
||||
$multiquery .= "INSERT INTO `" . self::TABLE_STATS_PLAYERS . "` (
|
||||
`Login`,
|
||||
`finishCount`
|
||||
) VALUES (
|
||||
'" . $this->mc->database->escape($login) . "',
|
||||
1
|
||||
) ON DUPLICATE KEY UPDATE
|
||||
`finishCount` = `finishCount` + VALUES(`finishCount`)
|
||||
;";
|
||||
}
|
||||
|
||||
// Perform query
|
||||
if (!$this->mc->database->multiQuery($multiquery)) {
|
||||
trigger_error("Perform queries on player finish failed.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
Loading…
Reference in New Issue
Block a user