TSN RANKSYSTEM

A PHP Bot that assigns time-based server groups
on your TeamSpeak server.

Download

The TSN Ranksystem is an open source project,
it is free to use under the GNU GPLv3 license.

Download the latest version:
DOWNLOAD (Version:1.3.23)
 

MD5: 5a7ac3099b5dd2c5374f7b123a9e9b32

Do you like this tool?

Then you might want to sponsor a beer for the developer.

This enables them to develop new features more smoothly! ;-)
Donate (via PayPal)

Features

The TSN Ranksystem brings two components:

1) A TeamSpeak Bot &
2) A Website with:
- a statistics page (demo) &
- a web interface (demo)


TeamSpeak Bot
The TeamSpeak bot connects to the TeamSpeak server over the official TS3 Query interface. The bot does all back-end (background) jobs. It collects the online & active time of the TS3 user, calculates all statistics and collects several other data. It is also available for chat commands. And sure, it gives the server groups to the clients (e.g. military ranks, level, prestiges).

Statistics Page
On the public statistics page are several data available. There are displayed statistics about clients and the server.
It is much as powerful to describe all. To name only a few things:
- You'll find a ranking list, to get the most active users.
- It has also a server usage graph, which shows the online clients and channel per time.
- Client statistics about: online & active time, versions, nationalities, platforms, used slots, and much more...

Web Interface
With the web interface, you can easily administrate the bot. It is an access secured site for the administrators of the Ranksystem. They can manage the bot, like start and stop them. All parameters are defined in this place to individually configure the Ranksystem for the needed of your TS3 server. Sure, it is well documented directly inside the web interface.

Voting

Result of the last voting - Feb. 2023



Installation on Linux

1) Requirements

Before you can start running the TSN Ranksystem Bot on your TeamSpeak server, we need to check the requirements of your environment.

 

For the statistics page and to be able to run the Bot in a PHP process, we need a webspace (webserver).

 PHP 5.5.0 or higher (PHP 8.2 ready!)
 PHP with privileges for the command "exec"
 PHP with unlimited script execution time; especially you should check this on a webhosting
 required PHP extensions:
- PHP PDO extension
- PHP PDO MySQL driver
- PHP cURL extension
- PHP Zip extension
- PHP OpenSSL extension
- PHP SSH2 extension
- PHP mbstring extension

 network connection to the TS3 ServerQuery of your TS3 server on TCP; default port 10011
 network connection to ts-ranksystem.com (IP: 193.70.102.252 + 145.239.130.173) on TCP port 443
 optional: job scheduler (for automatically restart the Bot) like a cronjob

The database will storage all information. This is necessary to get a real time statistic page.

 MySQL (or derivative like MariaDB)
 requires its own database
 required privileges:
- Data:
SELECT, INSERT, UPDATE, DELETE
- Structure:
CREATE, ALTER, INDEX, DROP

To connect with the TeamSpeak 3 server, we need access to the TS3 ServerQuery interface.

 Network connection between the webspace and the TS3 ServerQuery
 TS3 ServerQuery User with following permissions:
- b_virtualserver_info_view
- b_virtualserver_client_list
- b_virtualserver_client_dblist
- b_virtualserver_client_dbsearch
- b_virtualserver_client_dbinfo
- b_virtualserver_notify_register
- b_virtualserver_servergroup_list
- b_virtualserver_servergroup_client_list
- i_group_member_add_power
- i_group_member_remove_power
- b_icon_manage
- b_client_remoteaddress_view
- i_client_private_textmessage_power
- i_ft_file_browse_power
- i_ft_file_download_power

 

2) Download & Unzip

Download and unzip the file ranksystem_latest.zip.

 

3) Upload to webspace

Upload the whole unzipped folder to a directory on your webspace and grant permissions to the user of your webserver.

 

4) Run install process

Open the "install.php" on your browser and follow the instructions https://your.url/ranksystem-folder/install.php.

 

5) Configure webinterface

Configure the TSN Ranksystem about the webinterface https://your.url/ranksystem-folder/webinterface/.
For each parameter you'll find a documentation by mouse click on it.

 

6) Start Bot

Start the TSN Ranksystem Bot via the webinterface.

 

7) Add cronjob (optional)

Optional: Create a cronjob to be sure, the Bot is running 24/7. This will restart the Bot automatically, e.g. on a database restart.

Open a SSH session to the host machine of your webserver.

Enter the command crontab -e, go to editing mode (in VIM you need to press i).

Paste the following in a new line:

*/10 * * * * sudo -u www-data php /path_to_your_webspace/path_to_the_ranksystem/worker.php check >/dev/null 2>&1

Configure the path, where your TSN Ranksystem is located and replace www-data with the user of your webserver.

Save and quit the crontab (in VIM :wq).

Installation on Windows

1) Requirements

Before you can start running the TSN Ranksystem Bot on your TeamSpeak server, we need to check the requirements of your environment.

 

For the statistics page and to be able to run the Bot in a PHP process, we need a webspace (webserver).

 PHP 5.5.0 or higher (PHP 8.2 ready!)
 PHP with privileges for the command "exec"
 PHP with unlimited script execution time; especially you should check this on a webhosting
 required PHP extensions:
- PHP PDO extension
- PHP PDO MySQL driver
- PHP COM extension
- PHP cURL extension
- PHP OpenSSL extension
- PHP SSH2 extension
- PHP mbstring extension

 network connection to the TS3 ServerQuery of your TS3 server on TCP; default port 10011
 network connection to ts-ranksystem.com (IP: 193.70.102.252 + 145.239.130.173) on TCP port 443
 optional: job scheduler (for automatically restart the Bot) like a task scheduler

The database will storage all information. This is necessary to get a real time statistic page.

 MySQL (or derivative like MariaDB)
 requires its own database
 required privileges:
- Data:
SELECT, INSERT, UPDATE, DELETE
- Structure:
CREATE, ALTER, INDEX, DROP

To connect with the TeamSpeak 3 server, we need access to the TS3 ServerQuery interface.

 Network connection between the webspace and the TS3 ServerQuery
 TS3 ServerQuery User with following permissions:
- b_virtualserver_info_view
- b_virtualserver_client_list
- b_virtualserver_client_dblist
- b_virtualserver_client_dbsearch
- b_virtualserver_client_dbinfo
- b_virtualserver_notify_register
- b_virtualserver_servergroup_list
- b_virtualserver_servergroup_client_list
- i_group_member_add_power
- i_group_member_remove_power
- b_icon_manage
- b_client_remoteaddress_view
- i_client_private_textmessage_power
- i_ft_file_browse_power
- i_ft_file_download_power

 

2) Download & Unzip

Download and unzip the file ranksystem_latest.zip.

 

3) Upload to webspace

Upload the whole unzipped folder to a directory on your webspace and grant permissions to the user of your webserver.

 

4) Run install process

Open the "install.php" on your browser and follow the instructions https://your.url/ranksystem-folder/install.php.

 

5) Set PHP Path

Set the path to the php.exe (PHP installation) inside the other\phpcommand.php. Examples you'll find inside this file.

 

6) Configure webinterface

Configure the TSN Ranksystem about the webinterface https://your.url/ranksystem-folder/webinterface/.
For each parameter you'll find a documentation by mouse click on it.

 

7) Start Bot

Start the TSN Ranksystem Bot via the webinterface.

 

8) Add new Task (optional)

Optional: Create a task inside the task scheduler to be sure, the Bot is running 24/7. This will restart the Bot automatically, e.g. on a database restart.

Windows help how to create a new task.

Add the following options:

C:\path\to\php.exe -f C:\path\to\Ranksystem\worker.php check

Configure the path, where you find your PHP installation and also the path where your TSN Ranksystem is located.

Get a hosting

When you are not able to host the TSN Ranksystem yourself, you can ask here for a hosting.

The hosting is absolutely free. If you want to support this service, donations are welcome. ;-)

If we accept your request, the hosting will remain as long as the Ranksystem Bot is running and able to connect to your TS server. Bots, which are offline for two weeks (=inactive), will be deleted. The hosting ends at this point. Before you will receive additional warnings; starting with an offline time of three days.


Request a hosting

With the hosting we take the part of the requirements of the webspace and the database.
You still need:
- ServerQuery credentials   (Required is an access to the TS3 server via ServerQuery; ServerQuery credentials (username and password) are necessary!
- Opened Firewall      (Be sure your TS3 server and all between (host machine, firewall, ...) allows a connection from our IP address 193.70.102.252 + 145.239.130.173).
- TeamSpeak whitelist    (You should whitelist these IP also inside the query_ip_whitelist.txt, which you'll find inside the TS3 server installation directory.)

 
 
 

After submitting your request, you will automatically receive an email for confirmation. Please check your spam folder if you can't find it. By confirming your email address, we will send you an additional email with all necessary information (hosting credentials & guide).

Bot Commands

CommandParameterBot-AdminDescription
!help
!info
!cmd
!commands
- none -- / -Get a list of valid bot commands
Since version 1.3.0 it will sends you here.
!news- none -- / -Get the latest news for the Ranksystem from the Ranksystem news server.
!version- none -- / -Returns the current version under which the Ranksystem runs.
!update
!checkupdate
- none -requiredPerforms a check for new available updates.
Since the Ranksystem updates itself automatically, the update
process will be started as soon as a new version detected.
!next
!nextup
- none -- / -This checks the user-related required time to reach the
next higher rank. The investigated time will be sent as a private
chat message to the user.
!restart
!reboot
- none -requiredInitiates a reboot of the Ranksystem bot.
!shutdown
!quit
!stop
- none -requiredInitiates a shutdown of the Ranksystem bot.
!log
!logs
Parameter 1
number of log entries
expect number between 1 and 999

Example:
!log 5
This will give you the last 5 log lines.
requiredGet the last few log entries of the Ranksystem-Log
via private chat message.
!runtime
!runtimes
- none -- / -Get the last 10 runtimes of the Ranksystem bot.
Each value represents the needed duration for one round
of the bot, measured in seconds.
!uptime
!online
- none -- / -The bot sends the time of the last (re)start and
also calculates the online time.
!memory- none -- / -Get the needed memory the Ranksystem bot is using inside the PHP process.
PHP brings a overhead, so the PHP process on the system needs more memory.
!clean- none -requiredStarts the process of cleaning the user database.
It only takes effect when the function 'clean clients' is activated.
!reloadgroups
!reloadicons
- none -requiredCleans the group cache.
All server groups will be reloaded from the TS3 server and associated with this the group icons will be re-downloaded.
Also the server icon will be re-downloaded.
 

Changelog

Explanation

!   Note          (bigger) change you should notice of; in some cases there are things to do
*   Information   for your information, but there is nothing you need to do; changed something works in background
+   Feature       added a new feature or enhanced a feature
-   Bugfix        fixed a bug or corrected something
 
 

1.3.24 (not yet released)

beta-1 * updated polish language; thx to toster234
beta-1 * updated jQuery library to version 3.7.1
beta-1 * updated Font Awesome library to version 6.5.2
 

1.3.23 (2023-03-05)

* removed style 'CosmicBlue' from sources as requested by owner JimmyNail (Terrabot)
+ added new admin function "merge user"
- fixed unique Client-ID were not shown on the list rankup (/stats/list_rankup.php)
- fixed NOTICE messages inside of the Ranksystem Log by opening the list rankup (/stats/list_rankup.php)
 

1.3.22 (2023-01-31)

* updated jQuery library to version 3.6.2
* some code optimizations on the HTML frontend for better support other styles
* some code optimizations which considers pathes 
* optimized the tooltips on the statistics page (/stats/list_rankup.php)
* optimized determination of different database versions for rank positioning
* adjusted calculation on donut charts stats/top_week and stats/top_month, which now correlate with top_week and top_month (before they were calculated since ever)
+ added function to add individual styles for the statistics page (stats/) and webinterface (webinterface/); add your individual CSS file inside the "styles" directory -> read the "/styles/_README.php" first
+ added new style 'CosmicBlue'; by JimmyNail (Terrabot)
+ added new style 'Darkreader'; this style was generated by the Firefox extension darkreader.org
+ added new colums to the list rankup (/stats/list_rankup.php) -> sum online, idle & active time for last day, week & month
+ added to API to the function 'bot'; with this it is possible to start/stop the Ranksytem via URL or something like webcron
+ added the possibility to change the prefix (default "!") for bot commands as chat on the TeamSpeak server
+ added function to remove the servergroup (given by the Ranksystem), when a user is excepted from the Ranksystem (client or group exception)
+ added the possibility to change the colors for the donut charts and the area chart (server usage)
+ added News of the Ranksystem to webinterface & statistics page; there are also a seprate News as TeamSpeak message -> new bot command !news
- fixed redirect loop on 'Webinterface' login page for some rare constellations of environments (when the webserver config redirect to the 'Index.php' instead of 'index.php')
- fixed navbar selection on sub-pages (drop-down elements) on webinterface and stats page
- fixed negative statistic summary values (time of week / month), which appears in some special cases
- fixed update TeamSpeak message (notification about the update); before it didn't trigger in some cases
 

1.3.21 (2022-12-18)

* little improvements to be ready for PHP 8.2
- fixed wrong rank positioning (List Rankup) on MariaDB 10.6 or higher
- fixed wrong entity of special HTML characters under PHP 8.1 inside the Ranksystem log by displaying it on the webinterface (webinterface/bot.php)
 

1.3.20 (2022-06-17)

* added delay for adding / removing servergroup, when it runs into an TS3 server error (i.e. needed permissions are missed); to prevent spamming the Ranksystem log and the TS3 server
* added clean job for table 'user_iphash'; removes offline user from this table, which stucked in some special cases
* improved site load performance on 'Webinterface' -> 'TeamSpeak' settings on bigger databases; only load users, which were online between the last 30 days (for Bot-Admin)
* minor code optimizations, especially for PHP 8.1
* updated PHP smarty lib to version 4.1.0
- fixed wrongly shown the ServerIcon, when an user hasn't a rank group yet; concerned the 'Channelinfo Toplist' add-on
- fixed SQL error "Unknown column 'uuid' in 'where clause'" on exception mode 'reset time'
 

1.3.19 (2021-12-21)

- fixed SQL error during the update process (table: addons_config, column: value), which occurs in some environments
 

1.3.18 (2021-12-21)

! new TS3 permission 'b_virtualserver_channel_list' needed for channel tree
* updated hungarian language; thx to ExXeL
* removed installation path of the Ranksystem from udpate server check
+ added new add-on 'Channelinfo Toplist'; writes the Top 10 user to a channel description; TS3 permission 'b_channel_modify_description' needed for this add-on
+ added PHP smarty lib, which is used for the 'Channelinfo Toplist' add-on
+ added the possibility to disable the security check that the bot getting started from command line; in some environments (e.g. CPanel) this is needed
+ added a cancel option to the database export function; could be needed in case of running into trouble
+ added the timestamp of last seen in the confirmation request on admin function 'delete user'
+ added channel tree as a drop-down box in the webinterface on associated fields
- fixed SQL syntax error on add-on 'Assign Servergroups'
- fixed wrong operator comparision on change password function
- fixed SQL on webinterface saving an API key
- fixed possible XSS attack in log view & install.php
 

1.3.17 (2021-01-24)

- fixed database error on assign servergroups functions on statistics page, when changing the server groups
 

1.3.16 (2021-01-03)

! We will relocate our servers to a new host in the middle of January 2021; Be sure to allow a network connection to our new IP addresses 193.70.102.252 + 145.239.130.173 (TCP port 443) to be able to receive future Ranksystem updates; the old IP address (164.132.201.2) will be reachable until the end of January 2021
* we added a connection test to the update server of the Ranksystem (on the startup of the Ranksystem) to warn if a connection fails
* changed MySQL connection to a none persistent connection, when it is not the Ranksystem Bot
* changed update check for the Ranksystem database; when the version is below 1.3.0 it now stops the Ranksystem with a critical error
+ added to API to the functions 'user' & 'userstats' the possibility to ask for multiple servergroup database IDs in a single request; example: 'groupid=6,9,48'
+ added new check for clients deleted from the TeamSpeak server, which are reconnecting with the same unique-client-ID and are still known by the Ranksystem; this clients will now get undo the "removed-flag"
+ added function to delete manually a user (or multiple) out of the Ranksystem database
- fixed on the List Rankup (statistics page) the buttons for the first / last page on the pagination
 

1.3.15 (2020-12-20)

* changed HTTPS check; the warning message that HTTP is used now appears only on the login page of the webinterface
* added check on database export, ZIP version is >= 1.2.0, which is needed to encrypt the ZIP file
- fixed problem on PHP 8.0 on new installations (Uncaught TypeError server_usage.php:8)
 

1.3.14 (2020-12-13)

! We added a new Wiki page for the Ranksystem API to Github
* updated jQuery library to version 3.5.1
* updated Font Awesome library to version 5.15.1
* updated bootstrap-select library to version 1.13.14
* updated flag-icon-css library to version 3.5.0
* updated Bootstrap Switch library to version 3.3.4
* updated hungarian language; thx to ExXeL
* changed the language dropdown symbol to the conutry icon
* minor code optimizations
+ added the possibility to define multiple groups to the add-on 'Assign Servergroups'
+ added a second sort level for the List Rankup (statistics page)
+ made the filesize on the new database export function dynamic
- fixed little CSS problem on the List Rankup (statistics page)
- fixed automatic reconnection, when the TS3 server connection was lost
- fixed switch button for 'Permanent Group' was not working after adding a new line on 'Rank Definition' site
 

1.3.13 (2020-11-22)

! PHP 8.0 is now supported (older versions like PHP 7.x and also PHP 5.6 are still supported)
! changed API user list by 'status'; old request was '&user&online' -> now use '&user&status=online' instead
* on database connection lost, we now try to restore the connection; a reconnect of the Ranksystem TS bot in this situation is no longer necessary
* reworked code for "fast hashing" mode for "hash IP addresses", since PHP 8.0 dropped the custom salt on passwort_hash function
* some code optimizations, also to get a better support for PHP 8.0
* users whose 'last seen' was more than 30 days ago will not be calculated any more (statistics like online last week/ month)
* moved PHP functions to its own file others/_functions.php
* optimized error log handling
* updated hungarian language; thx to ExXeL
* updated czech language; thx to Stetinac
* changed ZIP-handling in Ranksystem automatic update process to support PHP 8.0
* added also a message to the log, when the process of the Ranksystem bot was kill during stop / restart command
* optimized Ranksystem log view on the webinterface; especially on array dumps
+ added a database export function to the webinterface; this generates an SQL export file, which is zipped
+ added the possibility to sort the columns nation, version + platform on the statistics page (stats/list_rankup.php)
+ added parameter to the webinterface to set the 'SameSite' session attribute
+ added parameter to the webinterface to set the 'Access-Control-Allow-Origin', 'X-Content-Type-Options', 'X-Frame-Options' & 'X-XSS-Protection' header
+ added to API to the functions 'user' & 'userstats' the 'status' parameter; now you can get 'online' & 'offline' users
+ added to API to the functions 'user' & 'userstats' the 'groupid' parameter to get user by a defined servergroup database ID
- fixed problem, where user were shown in top users list (week, month & all) on statistics page, although they were excluded by server group exception; thx to Arci224 for reporting
- fixed lost filter (options) on the statistics page (stats/list_rankup.php)
- fixed add / remove time for offline users; problem with caching since version 1.3.9
 

1.3.12 (2020-09-21)

* changed the handling of text messages, which are sent from the Ranksystem Bot; now they will be sent to the same location as it is received (server chat, channel chat or private chat) without some sensitive things like !log or !next, which will be always send as private message
* changed also the handling of text messages, which are sent from the Ranksystem Bot; now we are trying to send the message to the connection ID of the user, if it is known; otherwise we still use the unique client-ID to send the message; this solves the problem, a user didn't receive a message, when the Ranksystem bot has the same unique client-ID like the sending user
* updated hungarian language; thx to ExXeL
* updated czech language; thx to Arci224
* updated polish language; thx to toster234
+ added function to add an imprint and privacy policy site to the stats page; thx to Nick Slowinski
+ added new option "permanent group" to the rank definition; this allows to set a flag for a server group that shouldn't be removed at the next rank increase; this could be nice for groups such as "member", which should stay as a permanent group
- fixed problem "SQL Unknown column 'count_week' in 'field list'" which comes with the client-database-ID check since the last release
 

1.3.11 (2020-09-07)

* on changing a TeamSpeak client-database-ID a user losts his "Top users" stats for week & month; this could especially happen, when a relocation to a new TeamSpeak server happened; now we try to update the old stats and replace its client-database-ID with the new one; if this is not possible, the weekly & monthly stats of the old client-database-ID will be reset to show a correct "Top users" list
* updated hungarian language; thx to ExXeL
+ added new columns nation, version & platform (/stats/list_rankup.php) as option to the default sorting
+ added excepted group list to the addon assign servergroups
+ added info to bot status inside the webinterface, when the autostart is deactivated
+ added the possibility to hide also the channel stats inside the server usage graph
- fixed problem "SQL unknown column 'rank' in 'field list'" on resetting user stats; field was being removed with version 1.3.8 in database, but not on this position
 

1.3.10 (2020-08-08)

* changed avatar download; download only 10 avatars a loop; continue within the next loop
+ added time of the last calculation to the my statistics page (/stats/my_stats.php)
+ added columns nation, version & platform as selectable option to the statistics page (/stats/list_rankup.php)
- fixed problem "1281: sql empty result set; Error due command clientdbinfo for client-database-ID XXX (permission: b_virtualserver_client_dbinfo needed)" occurs repeated in the log; now it will be tried to get the new database-ID and store this
- fixed problem "SQL commands failed: Data too long for column 'nation' with value 'UNKNOWN'"
- fixed problem "SQL commands failed: Out of range value for column 'server_ping' at row XXX"
- fixed problem "SQL commands failed: Out of range value for column 'total_connections' at row XXX"
- fixed missed download of groups when using command !reloadgroups; groups will be cached and the cache were not deleted on using the bot command
 

1.3.9 (2020-08-02)

* reworked core component of the bot; store/cache most values instead of reloading it from the database with every loop; this brings especially on bigger Ranksystem databases with a couple thousand of users a really big performance boost (reduces CPU load & load on the database)
* updated russian language; thx to bykidi
* updated hungarian language; thx to ExXeL
+ added to API the function 'userstats' to get more statistics about user and be able to sort for example for top user of the week
+ added 'sort', 'order' and 'limit' function to API
 

1.3.8 (2020-06-20)

! disabled update support for Ranksystem versions below 1.3.0
* added delay (5s) on syncing TS3 ServerGroups with the Ranksystem
* changed log output with log-level "6 - debug"; now also the concerned SQL statements are given out beside the error
* changed icon download as TS-iconid instead of servergroup-database-ID (needed for upcoming things)
* changed icon download with file extension (determined with MIME-Type) to be able to support all official supported extensions by TeamSpeak (bmp, gif, jpg, pbm, pgm, png, ppm, svg, xbm, xpm)
* optimized traffic & memory usage on query command "clientlist" (ts3phpframework)
* updated russian language; thx to bykidi
* updated czech language; thx to Stetinac
* updated polish language; thx to toster234
* updated hungarian language; thx to froland20
* updated portuguese language; thx to Pasha
* little database optimizations; especially on table user_snapshot (reduced storage size to ~half)
* added new check for duplicate client database IDs; this is important for the database optimization for table user_snapshot
+ added support for SVG icons (servergroup and servericon)
+ added to API an identification via API key; keys can be managed about the Ranskystem webinterface; usage /api/?apikey=XXXXX
+ added to API a function to get the online user
+ added check of multiple PHP versions also to the install process; to help to install the needed PHP extensions to the right PHP installation
+ added check for negative values of online time or idle time of a user (could happened about the administration function, when to much time was manually removed); this user will be set to zero, once with this update
+ several minor optimizations on the install process
- fixed problem, when boost group was removed manually from a user; in this case the Ranksystem did remove the boost-group instantly on giving a boost-group on a new situation (to the concerned user) instead of taking care of the (new) boost-duration
 

1.3.7 (2020-02-14)

! resorted webinterface, since we try to get a better structur, some things were also meaningful by adding the "expert mode"; 
! redesigned a few form fields inside the webinterface; for a better usability we replaced some fields with a drop-down field, where we have the selection (values) from the TeamSpeak server (e.g. client exceptions, servergroup exceptions); this is possible since we added the "easy mode" to the installation routine
* updated FontAwesome library to version 5.12.1
+ added an easy mode for fresh installations; it will display only the "TeamSpeak" site and the "Start / Stop bot" function inside the webinterface, until the bot is started for the first time; this is needed, since some (dropdown) fields will get its data from the TS server
+ added API for third party applications to get information as JSON string; the API is documentated by itself; simple open the URL and follow the instructions; available data are user (+stats), servergroups, serverstats & rank config; (we are curious what kind of ideas you have and what cool shit you will do with it :-P  on questions and also when you have notices, let it know us!)
+ added user friendly option to customize the "boost definition"
+ added "expert mode" inside the webinterface to toggle between a clearly / simply view (default) and the expert view with all functions / parameters
+ added check to prevent negative values on removing time (about the administrate function inside the webinterface); this could happen before, if a too large value was entered
+ added sorting for the servergroup selection inside the webinterface; the sort is now the same as in TeamSpeak; query and template groups are disabled
+ added function to "Select All" or "Deselect All" on multiple choice drop-down fields
- fixed empty error message due installation, when PHP-MySQL isn't installed / enabled
- fixed mistake on administrate function "remove time", when multiple users were selected; each second user got the time added instead of removed
- fixed problem with lost time (donwgrade some user), when the connection to the TeamSpeak server was lost
- fixed continuous download of "new ServerIcon"; happened in the rare case of changing the icon-date without changing the icon itself
- fixed lost check-icon on multiple drop-down boxes, with one of the last bootstrap updates
 

1.3.6 (2020-01-13)

! Hotfix
- fixed wrong check on reset password function (security issue)
 

1.3.5 (2019-12-23)

! Hotfix
- fixed problem loosing the rankup definition on saving options inside the webinteface core-site
 

1.3.4 (2019-12-23)

* optimized check for Bot name; added min-length of 3 characters to avoid errors due connecting virtual server
* updated hungarian language; thx to ExXeL
* little code optimization on reset password function for the webinterface
* updated Bootstrap-select library to version 1.13.9
+ added user friendly option to customize the "rank up definition"
+ added check PHP extension mbstring is loaded
+ added azerbaijan language; thx to G. FARZALIYEV
+ added new configuration parameter for the max. clients (red) line on the server usage graph on the statistics page
- fixed spelling error in russian language; thx to Alexander
- fixed "Undefined offset" on list_rankup.php, when stored servergroup of user (which is longer time offline) isn't existing anymore
 

1.3.3 (2019-07-26)

! new PHP extension mbstring is needed
* optimized SQL statement of building user_snapshots
+ added hungarian language; thx to ExXeL
- fixed handling user nicknames with multibyte characters and a length longer 30
- fixed PHP warning on stats/top sites, when servergroup exception is empty
 

1.3.2 (2019-07-01)

- fixed looping systems, when user nicknames are longer than 28 characters
 

1.3.1 (2019-06-30)

! new TS3 permission 'b_virtualserver_servergroup_client_list' needed for reset function
! new TS3 permission 'b_virtualserver_client_dbsearch' needed for special case cldbid has changed
* performance optimization with optimizing the SQL handling; a few statistic values will be cached inside PHP and only saved to DB, when changes have taken place
* updated jQuery library to version 3.4.1
* updated Bootstrap library to version 3.4.1
* changed Ranksystem log; added few more things to log during startup (loglevel, query-slowmode, update-channel); changed some things to be forced to log during startup, also when bot level is very low
* optimized downloading of servergrous & icons on TS3 errors (e.g. connection lost)
* minor code optimizations
* changed core rankup assigning; now check wrong server groups and remove them; if the current level is missed, correct it and add the server group
* changed navbar inside the webinterface to be more clearly and structured
+ added automatically language support; when you add a file inside the languages folder and it fullfill the name conventions, it will be added automatically; more information you will find inside the /languages/add_new_language.php
+ added check for changed client-database-ID (e.g. happens on restoring a server snapshot) for offline user; This check was still here, but only for online user; cldbid will be updated or the time of the user reset depending on specification of 'Client-database-ID reset'
+ added new function to reset the Ranksystem
+ added bot command !memory
+ added an average looptime to the !runtime command
- fixed "DateTime::__construct()" error on /stats/my_stats.php when boost function is defined with decimal numbers
- fixed "TS3 Error: 0: only available in non-blocking mode" on secured (SSH) TS Query connection
- fixed XSS vulnerability on /stats/ top users via client_nickname
- fixed online status of users; when the last user left the TS server, it stayed online on 'List Rankup' page
- fixed rarely constellation on update servergroups in bot core, when none of this groups have an icon and also no servericon is set
- fixed rarely constellation in bot core, when only user(s) without any country flag (pre-4: or without any platform or without any version) are online
- fixed wrong response on command !clean, that you wouldn't be allowed to use the command despite admin privileges
 

1.3.0 (2019-06-10)

! dropped table "config" as announced with version 1.2.12
! The Ranksystem got his own website -> https://ts-ranksystem.com ; We will relocate the version check with one of the next releases; be sure, you whitelist the network traffic (TCP on port 443) to the new domain
* increased column size for config parameters up to 21588 signs (before 5000); with this you can increase the rankup definition and/or choose longer messages; within this we wrap chat messages, which are bigger than 1024 characters
* due the repaired query command dbclientlist with TS3 server version 3.7.0 we removed our dummy database-select to hold the connection; on problems, please update your TS3 server
* minor changes on the install.php
* optimized response speed for bot commands
* updated library FontAwesome to version 5.7.2
* updated library jQuery to version 3.4.0
* optimized file permissions check during bot startup and on install process; the error message during installation now shows more information
* updated library morris chart to version 0.5.1; within added a red line with current max slots
* added requirement-check also on the login screen of the webinterface; this should prevent error reports in changed environments
* updated czech translation; thx to Nicer
+ added auto reconnect for the bot when conection to TS3 server dropped; the attempt of the re-connection takes place with gradually increased times
+ added new parameter update channel, selectable about the webinterface
+ added new parameter for default sorting on List Rankup page, selectable about the webinterface
+ added new bot commands !uptime, !logs, !runtimes and !reloadgroups
+ added new parameters for log-level and log-size for the ranksystem.log, selectable about the webinterface
+ boost factor can now handles decimal numbers; you can enable a factor e.g. 1.25
+ added new parameters (%7$s - current user rank, %8$s - name of the current servergroup, %9$s - current servergroup since) to command !nextup
+ added values for the achievements (My statistics) to the webinterface; they are now configurable
+ added output of the worker.php to the message when starting/stopping/restarting the bot about the webinterface
+ added status of the bot to the webinterface
- fixed some spelling errors in german language file
- fixed SQL command to clean the table user_iphash; no longer existing users (on TS server deleted user) got stuck
- fixed problem on webinterface when changing the password
 

1.2.12 (2019-02-24)

! changed configuration table of the Ranksystem-Bot and how config-values are handled inside the code. There is nothing you need to change on the webinterface or anywhere else. Only, when you have written third-party-applications and are using the table "config", you need to know the new table is "cfg_params" (Attention: this table has a new database-structure!); old table "config" still exists with 1.2.12 as a clone, but will be deleted with the next version!
* removed link on stats site (report to serverlist) to planetteamspeak since ScP has closed his services; RIP!
+ added new option 'fast hashing' to the IP hash function; these do not decreases the performance of the statistics page as much as it does the already existing 'secure hashing'
+ added spanish translation; thx to JavierlechuXD
- fixed wrongly named group in log when removing an expired boost group
- fixed platforms donut chart on stats page; values of Android and Linux were inverted
- fixed admin mode on "list rankup"; when joining the list rankup in admin-mode and changing sorting of the site, the admin mode was lost
 

1.2.11 (2018-09-27)

* optimized version check for command !version and on some other places
* optimized some help texts on the webinterface (leading english and german); also cleaned up the language files
* updated russian translation; thx to bykidi
* removed 2nd TS3 queryname; is no more needed with server version 3.4.0 or above
+ added support for new connect parameter 'client_nickname' which comes with version 3.4.0; this allows setting the nickname of query clients before they become visible on the virtual server
+ added cleaning tables admin_addtime and addon_assign_groups due Ranksystem update process
+ added database table for CSRF token; with that multiple siteswitches are possible without getting an CSRF error
+ added message to Ranksystem admin user, when a servergroup gets deleted, which is configured to the Ranksystem
+ added new check the HSTS header is already sent; on some webservers got a problem, which already sent this information
+ added sticking display size of group- and servericons on the stats page to 16x16 pixel
 

1.2.10 (2018-08-25)

! new PHP extension PHP-SSH2 is needed (only when you are using a secure (ssh) connection to your TS3 server, requires TS3 server version 3.3.0 or above)
* improved handling on worker.php for a higher compatibility on windows
* improved handling on cleaning Ranksystem database due query command "clientdblist" got very slow with server version 3.3.0 in some cases; bot hangs on "Get TS3 Clientlist...", timed out and needs a restart; now the Bot sends dummy requests to the database to hold the connection
* improved handling on install.php when database credentials are correct but permissions to database fails; only write out the credentials, if all database stuff was created correctly
* updated TS3 PHP Framework (version 1.1.33 from August 21, 2018)
* minor improvement of the Ranksystem.log
* updated polish translation; thx to isseihere
+ added SSH support, which is avaiable since TS3 server version 3.3.0; THIS FEATURE IS IN BETA STATUS!! (There are known ?TeamSpeak? bugs -> random connection losts)
+ added logging for login attempts on the webinterface inside the ranksystem log
- fixed bug on admin function (add / remove time), when using the filer "hide excepted clients"
- fixed problem with verify process; removed CSRF check here for the moment, cause there are no problem in case of faking data (token matchs or not..)
 

1.2.9 (2018-08-19)

! new TS3 permission b_serverinstance_version_view needed
* added warning, when changing hashing of IP addresses (user needs new connection to TS3 server)
+ added function to remove time from a user (possibility to punish / justice)
- fixed file encryption of core_ru.php (russian language), which caused the statistic graph not to be shown
- fixed problem with verify process, when multiple users are connected with the same IP address (which arised with version 1.2.8)
- fixed some display issues on stats page
 

1.2.8 (2018-07-22)

* increased session security by activating HSTS-header
* updated russian translation; thx to bykidi
* secured from pishing for all external links due hiding the referrer
* improved some code to reduce notices/warnings on stats page
- fixed XSS vulnerability with TS3 Client name; thx to FarisDev
- fixed changing language on install.php were not working
- fixed error with donut chart on stats page, when the database still have not enough different values for all stats
 

1.2.7 (2018-06-27)

! hashing of ip-address (reason EU-GDPR) as option (webinterface -> other); TS user needs to reconnect to the TS3 server to be able to verify with stats page after
! added support for MySQL 8.0 and MariaDB >= 10.3
* increased session security
* increased security on stats/ page; thx to JVMerkle
* increased performance on stats page; it is shitty fast now :-)
* updated TS3 PHP Framework (version 1.1.33 from April 18, 2018)
* updated portuguese translation; thx to Pasha
* modified check on worker.php, if a process is already running
* minor code optimizations, also removed april fool (was only valid on 1st April)
+ added support for special characters (utf-8 mb4), which came with TS server version 3.2.0; before we had it for servergroup names, now for all other needed (among other things: user nicknames)
+ added polish translation; thx to DoktorekOne
+ added CSRF token for protection against Cross-Site-Request-Forgery and replay attacks
- fixed "lost update" problem on manual adding time to an user (function about the webinterface)
- fixed problem, when timezone had a very long name; now all timezone will be supported
- fixed connection problems, when the TS3 query username or password contains special characters
 

1.2.6 (2018-03-25)

* increased performance (vs. 1.2.4 again in avg. ~25% better now); saves CPU time and memory (RAM)
* updated bootstrap-select to the actual version; bigger selections are now much more faster; thx to caseyjhol the lead developer of it
* changed startup process to be sure the auto updater will runs before the config check
* changed log file rotation; the Bot did a restart on rotation before, now it will stay connected to the TS3 server
* removed unneeded update info check; update notification will now be sent to the admin ID (webinterface -> other), which is multiple since 1.2.4; reworked update notification, which will now be sent on startup after an update
* updated italian translation; thx to jacopomozzy
+ added czech translation; thx to KeviN
- fixed bad config check (servergroup not found); if a servergroup is missed, the Ranksystem will first sync all ts3 servergroups and after that check again the config; only if the config is still bad, it will stop
- fixed wrong ascending/descending sorting, if the site were changed about the pagination
- fixed cross site scriptig vulnerability on stats/list_rankup.php
- fixed problem with special characters inside the server group name; 4 byte chars (utf8mb4) where not possible to save before and run into a database error inside the Ranksystem log
 

1.2.5 (2018-02-23)

! disable update support for versions under 1.2.0; when you are using a version below 1.2.0 and want to update, we recommend to do a fresh installation
* changed order of Bot startup procedure; now the update process will be done before the config check; this will make sure the update process will runs also, if the config is wrong
- fixed wrong values in the column nextup on the stats page for user, which are offline
- fixed empty lines in log file on updating the Ranksystem; will take note with updates above 1.2.5
- fixed problem on correction boost, when a wrong server group were configured inside; the configure check prevented the new value from being saved
- fixed problem "not enough data..." for the top user of the month; with version 1.2.4 has been added a new deletion method of unused stuff and the old one has been forgotten to be removed
- fixed special case, if no user was online for at least 1 second for more then one week, the server stats could not be saved correctly
 

1.2.4 (2018-02-12)

! changed parameter 'check' for the worker.php (startscript). Now this parameter will only start the Ranksystem, if it was crashed. In case the Ranksystem was stopped with 'stop' parameter, it will not start the Ranksystem with 'check' parameter.
! you need to define a verification channel ID to the webinterface -> core; the needed channel has to be set up manually on your TS3 server; for more information read also the online help inside the webinterface at this parameter
* increased performance: on bigger databases it will run much faster (valuable on response speed of chat commands). on smaller databases it will reduce needed resources (CPU)
* improved memory handling (RAM)
* optimized session handling on stats page and webinterface; now the Ranksystem don't touch other sessions from the same domain (relevant to multiple Ranksystem installations or other systems on the same domain, which are also using sessions)
* optimized logs preview on webinterface (site load is much faster; now all lines will be shown, also array outputs on SQL errors; error and critical entries are now red colored)
* send a little more information about Ranksystem instance to ts-n.net like total_user, user_week_ total_online_week [..] (will be sent on update check; normally 2 times a day); there will not be sending any personal data of any user, it is only instance information! also, this information will never be shared without your agreement with third ones or published to be able to associate it with your instance; our plan is to build a summary of stats (of all instances) and perhaps we will share this sometime on a website
+ made the field "admin ID" multiple (unique client ID of the admin of the Ranksystem); multiple admin uuids can be entered comma separated; note that other admins are also be able to reset the password for the webinterface
+ added new chat command "!clean" to the Ranksystem Bot; the cleaning will run at least once a day; with this command you can force to make it instant
+ added a link to the verification process with that it is possible to redeem the token automatically (before it must be entered manually)
+ added new verification step, when the users IP between website and TS3 server differs; at this point the user can register himself also with a token; to protect from spams the user need to join a verification channel, where he will be able to choose himself to be able to receive the token
+ added a few more cleaning checks; now old avatars of deleted users will be deleted from the web space
+ added percentage column for lists of nations, platforms and versions
+ added update notification on stats page and webinterface, when an update was done the last few days ago; appears once a time per browser session
+ added new validation check on TS3 host address to prevent entering a port inside, which would be wrong placed here
+ added new validation check on defined servergroup IDs (rankup definition, servergroup exception, boost); the check will be done at 3 points:
	1) saving a wrong ID inside the webinterface
	2) on starting the Ranksystem Bot
	3) on the Bots job to update the servergroups, when one group gotten removed
+ added check when removing the server icon on the TS3 server; then it will now also remove the icon from the Ranksystem
+ added check when removing an icon of a servergroup on the TS3 server; then it will now also remove the icon from the Ranksystem
+ added check for slow running Ranksystem instance and offer suggestions to optimize the environment
+ added check to top user sites of the week and month; if there are not enough data collected, on this sites will be shown the message "not enough data..." instead of wrong results
- fixed wrong sorting of the column 'next servergroup' on List Rankup (stats page)
- fixed the nations list; full name wasn't showing for some languages, even though they were available
- fixed link to the webinterface on the stats page (and vice versa), which was not working when the website port was not default (80 or 443)
 

1.2.3 (2017-12-24)

! changed location of folder "icons" to "tsicons" due problems with default apache config (personal note to me: apache sucks)
! increased site load on stats/index.php and decrease needed ressources for the Ranksystem Bot, due lost of database index on some installations
* renamed combined_stats.css and combined_stats.js files due some adblocker blocks them
* corrected italian translation; thx to jacopomozzy
* corrected russian translation; thx to bykidi
* corrected english translation; thx to M0V3
* corrected some minor other texts on language files
* optimized value checks inside the webinterface to avoid user error
* optimized some minor code stuff; so it gets minimize better performance
+ added new parameter to messages (rankup notification & command !nextup) with the name of the user (recipient)
+ added new check on install process for windows; the COM_dotnet extension of PHP need to be enabled or the installation will be stopped
+ added new check on install process; when MySQL was choosen on install.php (step 1), it will be checked if PHP MySQL is installed & correct enabled
+ added a button to restart the Ranksystem to success message by saving a change inside the webinterface
+ added two more slowmodes (2 seconds and 5 seconds) for low level server; use it only, if you have trouble with cpu load
+ added portuguese translation; thx to Pasha
- fixed problem on saving ts voice port (which comes with database optimization 1.2.1), when it is over 32767; now full port range 65535 is available
- fixed problem with addon 'assign Servergroups'; servergroups couldn't be given/removed when 'Rank up notification' was disabled
- fixed error on editing dateformat inside the webinterface; new value got saved but not changed on view (reload of site fixed the problem)
- fixed wrong link to the netherlands (nl) language on stats, webinterface and installation page
- fixed error 'calc_serverstats 8', which appears in ranksystem.log; it happened on the special case, if no user with a country flag were on the TeamSpeak server online on a fresh (empty user table) Ranksystem installation (only user over localhost are connected)
 

1.2.2 (2017-01-21)

* Added support for PHP 7.1
* Fixed TS3 PHP Framework library for PHP 7.1 support
+ optimized site loading stats/index.php for servericon.png; change from classic image to embedded data
+ optimized site loading for stats/ and webinterfac/ due merging the css and js files
+ added lines for active times on stats/my_stats.php (it can take a day until all clients are calculated)
+ added function avatar delay; delays the download of new avatar files; define the time inside the webinterface - teamspeak
+ added free text filter for ranksystem log on webinterface/bot.php
+ added french translation; many thx to Quentinti
+ added restart after update process; will take effect with versions > 1.2.2
+ added addon "assign Servergroups"
- fixed wrong stats on exception mode 'reset time'; remove now also the history of the count/idle to build correct stats (stats/my_stats.php)
- fixed message next up, when user is excepted; with version 1.2.1 was the exception changed and until this the user get only the message (excepted) if he was excepted by the channel. This is wrong, the user should get the message (excepted) on group or client exception and not on the short point of a channel exception.
- fixed database field for TS3 query port; the field was not unsigned, so there was 32767 as highest value possible (now is the highest value 65535)
 

1.2.1 (2016-12-17)

* optimize database structure; increase the database perfomance
+ added statistics based on lastseen (clients online 24h, last 7d, last 30d, last 90d)
+ added full list for nations, versions and platforms with user count (linked on stats/index.php)
+ unset https warning on install.php if an error occurred; to focus the main problem
- fixed syntax error on italian translation
 

1.2.0 (2016-11-26)

! php-zip (package) is needed on the webserver (see requirements)
! with new update process this is the last update you need to do manually
* updated libraries (jquery lib to 3.1.1, fontawesome to 4.7.0, flag-icon-css to 2.8.0, Raphaƫl JavaScript Vector Library to 2.2.1, bootstrap touchspin to 3.1.2, bootstrap select to 1.11.2)
* changed handling for the update interval; the update info message will now be sent instant after receiving an update and so long till one use could reached
* moved libraries to folder 'libs'
* allow boost factor 0 (no time gets counted) for misused punishing group, which gets removed automatically
+ added automatically update function (more informations on GitHub)
+ added other/phpcommand.php to define a different php command (when you have more then one PHP version on your system); default is 'php'
+ added exception mode; define how to handle the time for excepted (for more take care about the description inside the webinterface)
+ added notify register for channel and server chat; bot commands are now also via channel or server chat possible
+ added dutch translation (initiate already the half); thx to 0x0539
+ redirect webinterface/ respectively webinterface/index.php to TeamSpeak config, if session is already active
+ added check in webinterface on logpath; must end with a slash or backslash
+ added check on startup if files on webspace are writeable (needed for update function)
- solved list_rankup.php when scrolling the table header column width changed due fixing on top
- fixed on command "!nextup" with mode "active time" a wrong time was given back
 

1.1.3 (2016-11-02)

+ added check php-curl is available on install.php and on bot startup
+ added check on startup if logpath exists and is writeable
+ added new mode for bot command "!nextup"; for more see description in webinterface
- fixed error on command "!nextup" (message for each rank - issue 154)
 

1.1.2 (2016-10-30)

! new TeamSpeak permission "b_virtualserver_notify_register" required (for bot commands via text message)
! php-curl (package) is needed on the webserver - for linux "apt-get install php-curl"
+ added check to worker.php; if user is root -> show warning
+ added commands "help", "version", "restart", "shutdown"; TeamSpeak user can write the command to the Ranksystem bot via private text message; "shutdown" only for the Ranksystem admin
+ added command "!nextup"; TeamSpeak user can write the command to the Ranksystem bot via private text message and will get their needed time for the next rank up
+ added function to reset the password of the webinterface access
+ added function to change the password of the webinterface access
+ added function to add online time to user (reimplent due lost of version 1.1.0)
+ added function to hide the navigation on stats page (webinterface - stats page - show site-navigation)
+ added timestamp of getting the last servergroup (only those, which are given by the Ranksystem), which can be shown on the stats/list_rankup.php
+ added a check that simpleXML (linux package php7.0-xml) is available to the install.php (is needed with PHP7 for the TS3 PHP Framework)
+ added link on stats page (only for admin) to the webinterface and reverse
+ added "connect TS3" link on menu bar on stats page, if visitor is not connected to the ts3 server
* store filter selection on Ranksystem log (inside webinterface) in session
* added missed text passages on stats page to the language file
- fixed problem with continuously download of icons
- fixed wrong calculation of the versions donut-chart on stats/index.php
- fixed on webinterface that https info message overwrites an error message on failed login
 

1.1.1 (2016-10-08)

! updated TS3 PHP Framework to version 1.1.24
+ added IPv6 support
+ added a few checks to the install.php to valid the requirements are fulfilled
+ added questionmark icon to webinterface on hover a form field to indicate the online help
+ added check for the boost function, that boost factor can't be 0
+ added filter function for log-level inside the webinterface
+ disabled showing rank on list_rankup.php and on my_stats.php for clients, which are excepted (cause they are no part of the rank)
+ added server news to webinterface; the server-news files is obsolete now. The text can be changed inside the webinterface.
+ added index.php on root directory, which redirects to the "stats/" page
+ minor code improvements
* drop table job_log, which is no more needed -> ranksystem.log
- fixed client was not showing in list_rankup.php when client was in highest group and was excepted but 'excepted client' and 'Clients in highest level' was active
- fixed representation on list_rankup.php for excepted clients on column 'next rank up' and 'next servergroup'
 

1.1.0 (2016-08-20)

! PHP with version >= 5.5.0 required; If PHP version is to old, the TSN Ranksystem will stops directly after startup and log this into ranksystem.log!
! fixed security vulnerability by replacing webinterface; Please be sure the old webinterface.php got deleted after update!
! reworked webinterface; its now in bootstrap look like the stats site. To open the webinterface use subfolder "webinterface/" instead of "webinterface.php"
! updated bootstrap to version 3.3.7
+ added brute force protection to the webinterface
+ encrypt the password for the webinterface inside the database
+ added function ingore idletime; idle time of an user will be ignored (counted as active time), if it is under a predefined value
+ added possibility to except channel
+ added arabic translation (already a small part); thx to DeStRoYzR
+ added romanian translation (already a small part); thx to SakaLuX
+ performed update function; new version will now stored in database. So update info interval could be now more often then 1800 seconds.
+ added a few syntax checks inside the webinterface, which valid entries of fields like 'rank up definition'
+ added new filter country
+ added new filter lastseen
+ described filter functions on stats/list_rankup.php
+ optimized handling of client IP for session handling my_stats.php
- fixed serverlist report with ip address 127.0.0.1
 

1.0.2 (2016-05-22)

! windows support is back (for the webspace); the COM extension for PHP is required (extension=php_com_dotnet.dll -> only Windows!)
! check ts3 permission "b_client_remoteaddress_view" is set for query account
* initiate log level; log entries now have a log category
+ added log rotation; ranksystem.log will be rotate on filesize of 5 MiB
+ added italian translation; many thx to ZanK
+ added filter function on list_rankup.php; filter are usable about the search field (filters are: "filter:excepted:", "filter:nonexcepted:", "filter:online:", "filter:nononline:", "filter:actualgroup:GROUPID:"); documentation on a info box will follow
+ color online users on column "last seen" on list_rankup.php
+ increase perfomance for siteload on stats/index.php, when TSN Ranksystem already longer runs
+ added progress bar for next rankup on my_stats.php
+ the parameter "Idletime" will now be consided on calculation for the rank (i.a. on list_rankup.php?sort=rank)
- fixed wrong labeling on Top User sites for "active time" / "online time"; depending on the parameter "Idletime"
- fixed ip 127.0.0.1 were shown on stats/index.php instead of the external address
- fixed wrong subtraction of online time of already deleted users on "Online time of all user / week" and "Online time of all user / month"; in special cases it could come to minus values
- fixed wrong info in log for needed file permissions on folders (avatars, icons, logs)
- fixed wrong update notification after first run with new version
- fixed ts3 server address on stats/index.php; when ts3 address is localhost and the URL contains "www.", the "www." will be removed out of the showing ts3 address
 

1.0.1 (2016-05-01)

 ! changed the way to update the database. Its now part of the "bot.php". So no run of an update-files is needed any more. Please check the ranksystem.log for possible errors!
+ improved needed ressources for smaller server (based on count of TeamSpeak User)
+ added option to choose language on stats sites; default is what has been set about the webinterface
* in some case the "virtualserver_created" date of teamspeak is zero (perhaps a ts server bug); catch this instead of showing 01/01/1970
- optimized the restart function; now it should also work with the slowmode "high delay" and doesn't come to multiple parallel running TSN Ranksystem instances
- fixed error in stats/index.php on line 253; change code to enable support for 5.2.1 or above (before a part of it needs 5.4 or above)
- fixed progress bar on my_stats.php; percentage value was missed in some case
- fixed timzone wasn't taken correctly
- fixed repeatedly download of the servericon
- fixed servergroup exceptions wasn't consided on Top User sites
 

1.00 (2016-04-18)

! lost Windows support (for the webspace) at the moment; TeamSpeak server is still supported with Windows!
! changed the way the TSN Ranksystem works. The TSN Ranksystem connects now 24/7 to the TeamSpeak server and not each minute again. It get therby more precise, but also needs more ressources (on ressource problems, try to activate the slowmode). The worker.php is now needed to check the Bot is still connect to the server, if not it has the job to restart it. A logfile, what the bot does and also very helpful in error case, you find on "logs/ranksystem.log".
! changed the column rank on list_rankup.php; this column show now the real rank and not only a consecutive number
+ added a new site, reachable as subfolder "stats". There are some informations / stats about the TeamSpeak server and the TSN Ranksystem. There is to much to describe all, so perhaps take a look to it
+ added search (filter) function on list_rankup.php
+ added option on list_rankup.php to limit the entries
+ added column actual servergroup in list_rankup.php as option
+ added function "boost"; You can define a servergroup for the TSN Ranksystem as boost group. There is also to define how much the boost should count (factor) and how long it should be grant (time). User in the specified servergroup get rated their online time by the factor. The higher the factor, the faster an user reaches the next higher rank. Is the time expired, the boost servergroup get automatically removed from the concerned user.
- correct error by hiding column next servergroup on list_rankup.php
 

0.13-beta (2015-09-04)

* fullfilled russian translation; many thanks to sergey
- corrected problem by saving icons (PHP Warning:  file_put_contents[..])
- corrected wrong array shift by clean TSN Ranksystem database (get error like: parse/syntax error)
- complemented some missed database options with update 0.12-beta
 

0.12-beta (2015-08-30)

+ added option to show clients in highest group in list_rankup.php (not even in adminlist)
+ added function to clean TSN Ranksystem database; this deletes clients, which doesn't exist any more in the TeamSpeak database. You can also use the perfectly with the ClienCleaner together (//ts-n.net/clientcleaner.php)
+ added servergroupicon to the column next servergroup in list_rankup.php; servergroup icons get downloaded with worker.php to the subfolder "icons"
- correct count on feeter in list_rankup.php (sitegen needs to be enabled)
 

0.11-beta (2015-03-27)

! changed database connection from MySQLi to PDO; Within this also other databases (e.g. MS SQL, Oracle ..) are possible
+ added slowmode to prevent against bans in case of flood
+ added function for renew the servergroups; can be helpful, when user are not in the servergroup, they should be at the defined online time
+ added link inside the webinterface with an admin overview for the list_rankup.php with all fields/columns
+ added variable language support for list_rankup.php -> list_rankup.php?lang=en
+ added column rank number to list_rankup.php as option
+ added column last seen to list_rankup.php as option
+ added new menu to the webinterface to edit the database configuration
* smaller other improvements
- fixed bug, that the SQL statements failed with an error, when a client is using a backslash in its name or a servergroup contains a special sign
- fixed bug; clients with | character in his username couldn't be use for the "selective clients functions", cause the uuid couldn't be dissolving
- fixed bug; fixed wrong update information, when update server is not reachable
- fixed bug; year 2038 problem (max. integer 2147483647) solved, 64-bit system required; for old entries could stand a wrong ip address "127.255.255.255" in database
 

0.10-beta (2015-02-01)

+ added russian translation; many thanks to sergey
+ added option to remove client out of the servergroup (which was given by TSN Ranksystem), by deleting clients out of the TSN Ranksystem database
+ added function to delete one or multiple selected clients out the TSN Ranksystem database
+ added function to set manual a summary online time for one or multiple selected clients
+ added the most important colors to the webinterface; to define it there
+ added column next servergroup in list_rankup.php as option; new TeamSpeak permission required (b_virtualserver_servergroup_list)
+ added option to hide the site generation at the end of the site
+ added client count to the site generation
* relaunched the webinterface; separate the different settings and functions in own sectors, which are foldable
- fixed bug; add a check, when a servergroup was manually given to a client, which is relevant for the TSN Ranksystem. This clients will not until add to a servergroup, they reached the time for the next higher rank.
- fixed bug; sorting on list_rankup.php for the column 'next rank up' is now correct
 

0.02-alpha (2014-12-20):

+ added time format as value
+ added column with active time to list_rankup.php
+ hide excepted clients or rather groups in list_rankup.php as option
+ hide each column in list_rankup.php as separate option
* check version after predefined time, not with every run the worker.php, to save traffic
- fixed bug of wrong sorting for next rankup; the time for next rankup of offline users will now calculate new with every run the worker.php
- fixed bug of countdown the next rankup time in list_rankup.php of offline users
- fixed bug with header problems by saving options in the webinterface.php
- fixed bug that a "reseted" user do not gets an update for his new cldbid
 

0.01-alpha (2014-10-05)

! initial release

Support

Please report bugs and also feature requests preferred on GitHub.

You can also get support on our public TeamSpeak server ts-n.net.
Contact an admin there (server group: Ranksystem Staff Ranksystem - Staff). Please stay patient, when we don't react immediately. Please give us at least 10-15 minutes to response.

You want to ask for a free hosting? Have a look above to request a hosting.