Commit Graph

1649 Commits

Author SHA1 Message Date
Rsl1122
c71e014096 2.2.0
https://www.spigotmc.org/resources/plan-player-analytics.32536/update?update=141073
2017-01-28 15:01:06 +02:00
Rsl1122
96240195ef Bugfix, Database optimization, Locations, Partial 2.2.0 features [2.2.0-DEV]
- Bugfix for #2 (Catch for NoSuchFieldError, null checks)
- Database now uses Batch processing with Commanduse, IPs, Nicknames &
Locations. Also used when saving whole cache.
- Uncommented Location gathering and swapped the location saving to use
batch processing. TODO: Worlds table
- Added placeholders for top lists & recent players to analysis &
planlite.html

TODO:
- Worlds Table
- Links to players
- New HashMaps in Analysis for recent players
- InspectCache clear multiper
- InspectCache clear task check. (Time value for each task)
2017-01-26 11:32:42 +02:00
Rsl1122
f1e3fe7a7e Fix for activity pie 2017-01-21 10:42:21 +02:00
Rsl1122
45279da849 Fixed MySQL Database initiation.
Issue was sent on Spigot Discussion.
Fixed typo that was causing it.
2017-01-21 09:19:25 +02:00
Rsl1122
048c201bd6 Bugfix for NoClassDefFoundError when PlanLite not installed
* Added new DataPushHook to prevent Hook from not being found.
* Added null checks for PlanLiteHook, because it was causeing NPEs
2017-01-20 09:46:33 +02:00
Rsl1122
af85c38024 javadoc generated 2017-01-20 00:39:32 +02:00
Rsl1122
5525ea2754 JavaDocs and Cleaning
Created javadoc headers for everything but UserData and SQLDB classes.
Now to just figure how to get it visible.
2017-01-20 00:31:24 +02:00
Rsl1122
7803e5dc18 Critical bugfix & Changed version check handler to use Integers to prevent possible double digit issue. 2017-01-19 22:57:38 +02:00
Rsl1122
0dfb2570e8 Version 2.1.0 update - More Customization
This update brings more customization options, couple bugfixes and extra
slice to the player composition pie that tells how many players have
only joined once, but never returned (previously counted as inactive).

In more detail:
Added "Unknown" slice to the Player Composition Pie (Players who have
joined only once)
ServerData and UserData now saved with seperate timers to avoid loss of
player activity data with less dense cache saves.
Added possibility to turn off the WebServer.
- API will return HTML without webserver if the server is off.
- If AlternativeIP is in use, all commands will use that as link,
otherwise:
- Analysis & Search commands are disabled if the webserver is off.
- If PlanLite is installed and is used as alternative UI (config),
Inspect command is passed to PlanLite.
Added possibility to use PlanLite as an alternative UI.
- Use /plan lite inspect <player> to view the data in the chatbox.
- Graphs, piecharts & list available only on the web UI.
- Analysis not yet available in PlanLite UI.
Added possibility to change all colors of the Web UI and command
messages.
- Changes in the color settings require plugin restart, fix for this in
the future.
- Web UI Colors use the HTML Color Codes without the # (hashtag)
Added possibility to translate & add/remove Demographics triggers
Bugfixes:
- Fixed ConcurrentModificationException when data is being cleared after
a save.
- Attempted fix of PlanLite balance analysis by rewriting a formatting
utility method.
2017-01-19 12:01:18 +02:00
Rsl1122
cda0148380 Small bugfix: analysis w/PlanLite, Towny NPE
- Analysis no longer throws NPE when Towny and PlanLite are installed.
2017-01-17 14:41:19 +02:00
Rsl1122
32227eb428 Changed version for Update notifiaction push 2017-01-16 22:30:51 +02:00
Rsl1122
ec78b6a007 Release 2.0.0
- Added isOnline to player inspect.
- Added plan.ignore.commanduse permission

Fixed Bugs:
- Activity piechart now displayed correctly
- Activity Graph now drawn correctly
2017-01-16 21:32:30 +02:00
Rsl1122
e8acdc678a First Release Candidate [2.0.0]
Fixed bugs:
- Demographics data properly detected.
- MapComparator now compares values as integers.
- ServerData is now saved properly, and playersOnline is updated
properly.

Other:
- Graph is untested
- MySQL untested
2017-01-16 17:47:27 +02:00
Rsl1122
5108213df6 Finished PlanLite features, partial fix to Demographics
- PlanLite features done.

Fixed bugs:
- Demographics data is not properly detected (partial fix)
-> Geolocation untested.

Known bugs:
- MapComparator compares values as strings (causes wrong order)
- Graph is wrong way around
- Graph is written to points with no data present
- (Player activity graph data might not be properly saved)
-> Graph uses players from a single point and draws a line

Other:
- (MySQL not tested)
- new API unimplemented
2017-01-15 21:29:40 +02:00
Rsl1122
2a76db770e /plan lite command, PlanLite command change: /plan > /planlite
- Started creating planlite html,
-> html unfinished.
- Tested all 3 plugins working together, fixed bugs and typos
accordingly
-> Swapped planlite permissions and commands from plan to planlite
2017-01-15 18:54:14 +02:00
Rsl1122
2538e32e6d Changed permissions for PlanLite plan. > planlite. Begun working on PlanLite features
Analysis and html creation untested for new planlite when planlite is
enabled.
2017-01-15 14:17:42 +02:00
Rsl1122
3ab14a6dd5 Bugfixes, Format fixes, Some Javadocs.
Following bugs have been fixed:
- Changed command links to say "Click me"
- Concurrent modification exception: Cachehandler 83, Cachehandler 208
- GMTimes on analysis page still shows 0 but graph works
- Page has to be refreshed multiple times to view (Faulty response)
- Data not saved to db on login
- Command usages upside down
- New Players set to 0 too easily (Wrong data was fetched)

Known bugs:
- Graph is wrong way around
- Graph is written to points with no data present
- (Player activity graph data might not be properly saved)
-> Graph uses players from a single point and draws a line
- Demographics data is not saved properly/detected

Other:
- (MySQL not tested)
- PlanLite features
2017-01-14 21:18:39 +02:00
Rsl1122
f9df236c59 Added Player Activity Graphs , updated htmls with padding
- Added Player Activity graph
- Top 50 Commands now looks proper

Fixed bugs:
- Activity now determined properly (two weeks seconds multiplied by
1000)

Known Bugs:
- GMTimes on analysis page still shows 0 but graph works
- Page has to be refreshed multiple times to view (Faulty response)
- (Player activity graph data might not be properly saved)

Not implemented:
- PlanLite features
2017-01-13 18:01:22 +02:00
Rsl1122
8c4d3e0f4d Made commands work as intended and look better. Bugfixes, top 50 commands
- Updated config file to clearer structure

Fixed bugs:
- Commands now show link with /tellraw command.
- PieCharts now check if total is not 100,
- Piecharts now render correctly (There was some issues with int)
- InspectCache updates properly.
- ClassCastException on start-up when PlanLite is not installed fixed.
- DataCache now returns active data to InspectCache if it is present.

Known Bugs:
- GMTimes on analysis page still shows 0 but graph works
- Page has to be refreshed multiple times to view (Faulty response)
- Top50Commands not pretty yet.
- Extra panel to put PlanLite stuff on is empty

Not implemented:
- PlanLite features
- Player Activity Graph
2017-01-12 13:38:13 +02:00
Rsl1122
a26622aa66 Analysis 80% complete [2.0.0-SNAPSHOT]
Known bugs:
- Commands: Link does not show ip, might be related to localhost
- Page has to be refreshed multiple times to view (Faulty response
probably)
- Gamemode Times corrupted somehow
- 0 0 0 0 0 debug in console
- GM Pie doesn't check if total 100
- Average Age shows NaN because dividing by 0
- (Inspect cache not updating properly)

- PlanLite features not implemented yet
2017-01-12 01:34:39 +02:00
Rsl1122
88283969b1 Moved to Maven project, added Chart4j to render graphs
- Moved to Maven project to solve dependencies
- > Added Chart4j (Google Charts) to render graphs and pie charts.
- More AnalysisUtils
- Added GMTimesChartCreator
2017-01-11 20:47:03 +02:00
Rsl1122
15078df7d3 Inspect Requests Handled correctly, begun work on analysis
Added player.html template.
Added analysis.html template
2017-01-11 12:48:11 +02:00
Rsl1122
7fa2254dd2 Added WebServer implementation
Added a basic SocketServer that handles requests to localhost:PORT
(Config)
2017-01-10 23:54:40 +02:00
Rsl1122
f9fbf17fe6 Clean-up, Additions, PlanLite package change, Locations disabled, More Javadoc, Bugfixes
- Changed format of all BukkitRunnables to be the same.
- Added a delayed task for cache clearing if data is being saved.
- Changed PlanLite packages from com.djrapitops.plan to
com.djrapitops.planlite
- Moved useful utilities to com.djrapitops.plan.utilities and removed
rest
- Location Handling (and saving) disabled for now because of inefficient
saving to SQL.
- Added more javadocs

Fixed bugs:
- Locations not saved when player moves (Fixed, but location handling
will be disabled for now)

Known Bugs:
- Times don't update on inspect (Just need to call update if player is
online, one line missing.)
- ClassCastException on start-up when PlanLite is not installed. (Will
fix with try catch tomorrow.)
2017-01-10 00:05:37 +02:00
Rsl1122
b7b6a0f05a Optimization, Some Javadocs, Bugfixes [2.0.0-DEV]
- Optimized GamemodeTimes table.
- Added LastPlayed to the users table.

Fixed bugs:
- Last Played now handling correctly

Known bugs:
- Locations not saved when player moves
- Times don't update on inspect
2017-01-07 18:37:01 +02:00
Rsl1122
0885ea4db1 More Bugfixes, API calls fixed, Deprecated API that moves to PlanLite
Fixed bugs:
- Logintimes now 1 instead of 2 after first login.
- Location ID now primary key
- Database now saves UserID correctly, might have been old database file
causing the error.
- Confirmed that database doesn't save multiples of entries
- API now handling deprecated methods through PlanLiteHook
- Optimized GamemodeTimesHandler code

Other:
- GameModeTimes Table is optimizable: Can save all entries on one line
instead of 4.
- OP and Banned are not checked yet.

Known bugs:
- LastPlayed is handling weird (0 on logout)
-> PlayTime is getting assigned wrong value
-> GamemodeTimes are getting assigned wrong value
- Locations not saved when player moves
2017-01-06 20:56:06 +02:00
Rsl1122
7758c5c581 More Bugfixes (2) [2.0.0-DEV]
Fixed Bugs:
- LastGameMode no longer null (PlayerLoginEvent > PlayerJoinEvent)
- Playtime no longer negative
- Logintimes now updated
- Serverdata now updating properly (PlayerLoginEvent > PlayerJoinEvent)

Known bugs:
- !! Database UserID is null when saving
- (GamemodeTimes is handling weird)
- (LastPlayed might be handling weird)
- (Database saves multiples of known things.)
- Locations not saved when player moves (UserID faulty)
- !! Location ID not primary key
2017-01-05 11:34:55 +02:00
Rsl1122
6ae61230df More Bugfixes [2.0.0-DEV]
Fixed Bugs:
- database now contains LoginTimes
- Commandlistener now gives proper command.
- Logintimes no longer null on inspect
- ServerData load SQL format fixed
- NickList and IpList changed to Set

Known bugs:
- (Id while saving might be faulty)
- (Database saves multiples of known things.)
- LastGameMode is set to null when player joins
- (Playtime is negative)
- ServerData not updating properly
- (DataBase saves non-existent ids)
- (LoginTimes is not updated)
- Locations not saved when player moves
- Location ID not primary key
2016-12-31 22:41:10 +02:00
Rsl1122
fa776d30fd Bugfixes & Two more listeners [2.0.0-DEV]
- Async tasks for database.
- Proper save on disable.
- Debugging with inspect command.
- Database now manages to save and load data, data needs to be debugged.

Known bugs:
- CommandListener things every command is /
- LastGameMode is set to null when player joins
- NullPointerException: LoginTimes when player not online on inspect
- Some values are negative (Probably times)
- ServerData not updating properly
- (DataBase saves non-existent ids)
- LoginTimes is not updated
- LoginTimes not found from database with sqlite3
2016-12-31 16:41:28 +02:00
Rsl1122
e903a5ac25 Finished first version of 2.0.0 Data Structure (SQL, Handlers, Listeners) + other
- Renamed old Plan to PlanLite with refractor
- Deprecated PlanLite API classes in Plan (Hook, DataPoint, DataType)
- API not yet changed
- extra hook calls passed onto PlanLite
- Created the new data structure that saves all the information needed
by analysis. (Not Bugtested)
- Refractored PlanDemographics code into DemographicsHandler
- Added Gender Enum
- Added Phrase Enum (plugin messages)

TODO:
- Bugtest SQL
- Bugtest UserData
- Bugtest ServerData
- Inspect command
- Analysis
- Search command (No clue yet)
- Bugtest Listeners
- Bugtest Handlers
- Command listener
- ServerData newPlayers / day reset
- Config
- html webserver for results
2016-12-31 00:39:11 +02:00
Rsl1122
df8e9dcd77 Preparations for complete rewrite of the plugin
Created two copies of the project, and left plugin yml with version so
version checking on current versions will not break.

Plan Lite:
- Current version
- Uses plugins to get the data

Plan Advanced:
- Will be almost complete rewrite of the plugin.
- Will be released as Plan 2.0.0 when ready
- Current Plan will be released as Plan Lite 1.6.3 when rewrite is
complete.
- Will gather data and save it
- Better consistency and Time axis to analysis.
- Better analysis, possibly web page creation for results
- Support for Plan Lite
- More options
2016-12-29 19:44:35 +02:00
Rsl1122
c1603198ba Version 1.6.2
Debug command, bugfixes, less errors to log.
2016-12-27 22:18:20 +02:00
Rsl1122
ae4d1138f8 Updated gitignore 2016-12-26 20:44:43 +02:00
Rsl1122
b0e0697df6 Version 1.6.1
- Removed getData for plugins that did not offer OfflinePlayer support.
- PlaceholderAPI is no longer returns data.
- placeholders.yml is no longer read or created.
- Unsupported Advanced Achievements versions no longer return data.

Bugfixes:
- Fixed Essentials Online Since, now shows proper value. (Was using afk
check method instead of LastLogin.)
- Essentials Offline Since now shows correct value even after reloads
(Same cause as above)
- Fixed Analysis failing because Time Average could not be converted to
long from double. (Caused by DataType.TIME values)

Other:
- Hooks no longer return data if player has not played on the server.
- Replaced some null checks with Optional.of().isPresent()
2016-12-25 13:19:58 +02:00
Rsl1122
bbc6b7f05a Added format of DataString for each DataType Enum 2016-12-19 23:36:12 +02:00
Rsl1122
728cfc1271 1.6.0 - New Data Structure, API changes, data handling changes, Player Logger Hook, Info Command
- Changed data format to include the Type the data is for easier
analysis (Of Future data and API Using plugins)

- API Changes:
- Hook moved to com.djrapitops.plan.api
- Hook now returns HashMap<Strring, DataPoint>
- added DataPoint to ..plan.api
- added DataType Enum to ..plan.api
- New format uses: data.put("XXX-Key", new Datapoint(String data,
Enum(DataType) datatype));
- Depricated getData(String playername) that returns old format of data,
still returns correct format
- Depricated getAllData(String playername)
- Move to get(All)Data(String name, boolean [anything]) to get the new
format of data.

- Added Player Logger Hook

- Added Info Command that gives version, hooks and checks for new
version.

- Check for new version upon startup
2016-12-19 17:30:08 +02:00
Rsl1122
615b4994b5 1.5.2 - Added Bukkit's own Data
BukkitDataHook and methods to remove extra data points with new
collisions.
Plade Age analysis method.
2016-12-16 19:45:47 +02:00
Rsl1122
9375797ca8 Fixed space returning every result and commented stuff
Analysis attempt commented
Fixed search displaying everything with -p argument.
2016-12-15 21:48:41 +02:00
Rsl1122
5756c21e5b 1.5.1 - Moved stuff around & minor bug fixes, added analysis test
Added attempt to determine if undefined data is usable

Bugfixes:
- Removed faulty towny import from Search
- Analysis now calculates averages from data point amount instead of
player amounts
- "-p" and playername removed from search arguments when -p is used
2016-12-15 21:27:48 +02:00
Rsl1122
92f43c4dae Added notification when plugin hooks into Plan.
Some bs with config and plugin yml - they were gone for some reason
2016-12-15 18:25:54 +02:00
Rsl1122
dfb158ccd3 1.5.0 Release
Added Search
Moved some things
- Name utilities to DataUtils.
Fixed AAHook
2016-12-12 21:45:05 +02:00
Rsl1122
c7d1b487d3 Processing optimization, version changed to 1.5.0
Changed some for each methods to use parallelStream.foreach instead -
this should speed up the inspect and analyze queries, especially when
the data set is large.

Changed version to 1.5.0
- Search command will be added this version.
- Possibly seperate analysis utility package incoming.
2016-12-12 17:11:39 +02:00
Rsl1122
ba488c3f70 Fixed wrong UUIDFetcher import 2016-12-11 20:09:40 +02:00
Rsl1122
19d688f498 v1.4.3 Bugfix and Added comments
Fixed AAHook using wrong method. (Coding when tired is not good!)
Flipped operation for usingUUID

Added comments for later in case I forget what happens in DataUtils and
DataFormatUtils
2016-12-10 12:39:06 +02:00
Rsl1122
ce8490f814 1.4.2 Final version
Added a check to Analyze if AAHook is UsingUUID.
2016-12-10 00:27:03 +02:00
Rsl1122
a3af8202e5 1.4.2 Possible bugfix, Advanced Achievements 4.0.3 Offline player support
Added "* 1.0" to some calculations in analysis just to make sure
returned values are doubles.

Added AA 4.0.3 Offline player support and analysis feature.
Ready for release once AA 4.0.3 is released.
2016-12-09 23:03:51 +02:00
Rsl1122
c7fc4d93bd 1 Bugfix, Additions, 1 Other & Code optimization for 1.4.2
Fixed API adding extra hook not showing up before reload

Added 4 data formatting methods to API.
Added AAC-ACHIEVEMENTS analysis, but did not add it to list of analyzed
tags - waiting for dev to implement new method for offline players

Removed analysis from Config because command reloading would be pain in
the ass to implement.

Optimized code:
- Moved analyze to DataUtils
- Removed some duplicate code from Analyze and InspectCommand
2016-12-09 19:42:09 +02:00
Rsl1122
1afacde1fe Initial commit v1.4.1 2016-12-08 19:31:10 +02:00
Rsl1122
ea94b9b99a :octocat: Added .gitattributes 2016-12-08 19:28:26 +02:00