Player Analytics, Sponge/Bukkit/Bungee/Velocity support



Rsl1122 released this version on Dec 2, 2018

9.3 MB

Plan - Year in review

It’s been two years! I want to take this opportunity to recap what has happened during the last year and look a bit into what the future looks like.

The change log for this update is at the end of the post.

The year started with a bunch of bugfixes after the 1st anniversary update. Most crucial piece for bungee-bukkit set-ups was rewritten. It had some flaws, but in April these flaws were patched, along with new features such as the session calendar.

Along came effective date for GDPR and a bunch of changes to ease people’s minds. At the same time Sponge support was rolled out. Now Plan supported all server platforms from 1.7 bukkit to SpongeForge.

A lot of small improvements here and there, and in July a big change in how the data-analysis was written in Plan. This made it a lot easier to add data, so Ping gathering was added in the same update, with a bunch of other neat things like Geolocation bar chart and PvE PvP tab.

A lot of weird issues started popping up every now and then. Database was being closed, webserver wouldn’t respond, server would crash. It took two months of changing one big part at a time until the issues were solved, as it turned out, an outbound HTTP connection in Java required some system properties to close properly. I actually made a write-up of the process of finding this bug here.

Locale system was updated, and many people contributed to the code! It was amazing to see. A lot of 3rd party plugins were now supported by Plan.

In October I worked on technical debt, cleaning up the code and recently I have been working on test automation and project aspect, cleaning up issues and what not.

So what about the future?

The next long term goal is to improve memory performance, especially on large servers. Current design stores everything in memory while performing analysis, and that is extremely taxing. Effort will be made to do as much work with SQL, as well as working through things in smaller batches.

Once the performance is deemed good enough, the bungee-bukkit webserver connection will be the next target. The connection appears daunting to users, and limits how minigame networks can use Plan. In order to remove the connection, analysis will be moved to a single server and plugin data will have to follow.

This means that a big rewrite for PluginData is required. These are changes that require a lot of hard work.

I will be finishing my Bachelor’s degree in Computer Science in the next 7-8 months. This project has allowed me to practice a lot of things. Thank you.

Change log

  • New added 30d 7d 24h disk statistics to performance tab
  • Fixed /plan m import not listing any importers (Bukkit)
  • Fixed SQL Syntax error on BungeeCord servers with not Bukkit servers connected
  • Improvement All platforms are packaged in single jar again.