Phase 505 - Rewritten False Positive & Legitimate/Hacker/Suspected Player Identifications
Previously Spartan would take averages of all player violations, divide them by the days of data, and check who was ahead the average to consider them a hacker. This has several critical problems however, such as: 1. Averages do not account for the plugin version, which has an impact on the stability over a timespan. 2. Averages do not account for individual detections, which react differently per gameplay, etc. 3. Averages do not account for individual days, which can have vastly different data depending on the circumstances. You get the point, Spartan is moving away from averages which create a black/white picture and will implement more advanced mathematics in order to get more variety and more precision at the same time.
The False Positive identification algorithm has been rewritten to offer more accurate results but also better and faster stability.
The Performance Optimizer feature has been incorporated into the Player Profile object as the whole profiling system has also been rewritten.
Removed the Performance Optimizer settings.yml option as it will no longer cause players to bypass and thus won’t be of any benefit to configure.
Removed a lot of unnecessary objects, enums & classes and replaced them with more organized code.
The Information Analysis object has been incorporated into the Player Violation object to allow it to be warmed up and as a result take less resources from the CPU.
The Cloud customer-support command feature will no longer send the messages.yml configuration as there’s no use for it.
The Research Engine sub-cache will now be refreshed when its responsible thread is not currently being used to prevent overloading it and calculating unnecessarily.
Adjusted the False Positive Detection to be slightly more lenient, especially with non-hacker players by using universal variables.
Adjusted the False Positive Detection to take the memory it needs to avoid unnecessary iterations.
Restored the mention of false positives in the detection notifications as originally supposed.
Slightly improved the punishment algorithm by checking if a player had significant evidence in the past.
Restored some of the description functionalities in the Manage Checks inventory menu.
Removed the identification of problematic detections as it wasn’t being used to its full potential.
Balanced the KillAura raytrace detection in regard to how close an entity should be to block the path of the hit.
Slightly improved the Linear Regression math algorithm with better use of lists.
Several of Spartan’s threads have been adjusted to run on the main thread if the thread is not free to avoid delaying important interactions.
Rewritten all identifier handlers as objects and incorporated them into the Spartan Player object.
Slightly rebalanced the Fishing Hook handler with replacement of barely efficient used methods.
Slightly rebalanced the Game Mode handler with more conditions to consider before reaching an outcome.
The FastClicks frequency and pattern detections will now be influenced by the clicks-per-second limit slightly if raised above the default.
Slightly organized the Player info inventory menu to have a consistency with its item description.
The config.yml/checks.yml configuration will now load significantly previously relative to when it’s used to help alleviate potential exceptions.
Decreased the amount of threads the plugin uses by incorporating the ground & move utilities in the Spartan Player object.
Increased the accuracy of the feedback of the punishment algorithm in regards to punishment cancellation via code.
Added a new settings.yml option for toggling the Developer API:Important.enable_developer_api
The Player Info inventory menu will now introduce a back item instead of close for those who use it in conjunction with the Spartan inventory menu.
The anti-cheat will now use more the calculated Cancel Violation instead of the default one for more accurate results.
Removed several parts of the Player Profile objects that were not contributing to significant parts of the code.
The Cloud sub-feature Punished Players will now trust data from bedrock players.
A lot of systematic limitations related to bedrock players have been removed due to the checks having improved.
Rewritten important parts of the Maximum Checked Players and Detection Tick features to optimize performance more.
Replaced several on-ground methods with the on-ground counter method of the Spartan Player object.
Significantly improved the way the reporting system forms check relations when a player is reported.
Noticeably improved the Config utilities by spreading the cache to each message for faster replacement.
Removed complex replacing of syntax as it is no longer in use by any possible user.