- Added a new free disk space to TPS, in megabytes
- Added Gathering method to TPSCountTimers
- Added Column to plan_tps
- Added Patch for adding plan_tps column
- Added Disk usage point mutation method to TPSMutator
- Filtered out -1 values in Disk and CPU graphs
- Added DiskGraph and its factory method
- Added 'diskSeries' placeholder replacement to AnalysisContainer
- Added diskGraph.js for drawing disk graph
- Added 'diskMedium' & 'diskHigh' threshold placeholders
- Added Medium and high disk threholds to settings
- Replaced MB references with Mb, since B is bit and b is byte
- Added Html Lang
HTTPS routing override can be activated by setting keystore path to
'nginx' - In this mode Plan uses HTTP server and gives out HTTPS links.
Affected issues: #669
Wrong method was in use for database name setting retrieval, resulting
in wrong query. Fixed by replacing usage with correct method
Affected issues: #754
Issue: Can not view non-ascii player name pages
Cause: Raw encoded URI was in use (Contains %20 etc)
Fixed: Decoded URI now in use
Affected issues: #735
Created dagger modules for each platform and turned Bridge abstract.
Injections to classes that require Plugin specific objects are not
possible, and will lead to compile time errors.
Classes that require information about another class at runtime cause
Plan to fail to start if the class is not present - another solution has
to be worked for PlaceholderAPI.
This test was tougher than usual to fix, since Database could not be
provided during object construction due to config setting default not
being loaded. This would have lead to new installs not functioning.
Fixed by replacing all Database injections with DBSystem
This is a merge commit of a PR that introduces Velocity support.
Some of this support has been ported to APF already and will be removed after merge.
Thanks to Micklebrick and astei! :)
Database was not enabled when the call was made, leading to a NPE when
using MySQL. (DataSource not initialized)
Fixed by moving the calls to scheduled tasks inside TaskSystems.
Some features could not be implemented or will have reduced precision:
- Server type
- Players Online is deduced from TPS data
- Analysis Refresh date is now a true/false based on cache value
Compile issues were caused by recent changes in APF:
* ISender -> Sender rename
* BukkitCMDSender was in use in test, but was made package private.
Fixes:
* Replaced ISender -> Sender
* Replaced BukkitCMDSender use in MiscUtilsTest
* Moved two database tests out from MiscUtilsTest
Session#getLongestWorldPlayed was a violation of Single Responsibility
Principle.
The method was moved to WorldAliasSettings, although still a violation,
it makes more sense there than inside the Session class. It also allows
creation of Session without a WorldAliasSettings dependency.
Most uses of this method were already handled, but database related were
not. Dependency was met by adding a Supplier<UUID> to SQLDB class.
Patch and Table classes have getServerUUID() method that use supplier in
SQLDB.
UserImportDataBuilder required the dependency, and it was provided via
UserImportData#builder(UUID).
1 second delay is not enough when a patch system has not applied all
patches, and some data requiring patching is scheduled for removal.
Affected issues: #732
ErrorResponse caught an IOException for reading a file from the jar,
but this error should be moved further up stream - thus catching it was
delegated to ResponseFactory, where the error can be parsed into
InternalErrorResponse and dealt with accordingly.
MySQL query for has column did not take database name into account.
This means that a database with multiple Plan databases would provide
wrong results for the Patch system, leading to patch failiure
Affected issues: Fixes#732
Changed the Lang that was being used to replace things on the html, now
some of the Lang is no longer used. (CmdHelpLang, CommandLang, etc)
GenericLang caused page breakage due to wrong replacements, so it is no
longer used for replacement
Affected issues: Fixes#706