mveritym/CashFlow — pull request #2 by Mitsugaru (2012-01-05 03:34:57+00:00)
Title: Major Overhaul

Alright, this is the latest stable version of my changes to CashFlow.

I still have not done the time persistence, sorry. I'd really like your help on that part. My major issue is how to store Date objects in the yaml file, retrieving the Date object from yaml, and comparison of dates to determine what the delay for the threads should be.

Also, need to bring back player offline intervals / partial payment based off of time playing. The SQLite database should help in that all we would need to do is create a date column and store when they logged off there and retrieve when necessary.

There's been a lot of edits/additions, most of which I went over with you before but I'll reiterate over them:
+ Removed Register dependency in favor of Vault economy API.
+ Changed permission handling from specific to Vault's generic Permission API when possible.
-- Not possible for getting players from default group / no group. Which is why it retains the specific libraries.
-- Also, Group Manager support has been removed since it errors out with a NoClassDefFound error (or something close to that). The others don't have that issue.
+ Complete rewrite of Taxer and removed Timers in favor of threads and using Bukkit Scheduler.
+ Created a repeating buffer so that when doing a large amount of tax/salary edits to economy, so that it does not lag players/the server.
+ Ability to check the status of the buffer, as well as status of individual taxes/salaries.
+ Ability to enable/disable specific taxes/salaries.
+ FindBugs reports no issues for the main package
+ SQLite database of all known players. This should be better than reading from the world's data files. No longer need to specify a world for the entire player list.
++ Added a needed import option. Specify a world and it will import players into the SQLite database. This way, old players are given taxes/salaries if they haven't logged on since the new implementation.
-- Known issue: it pulls taxes / generates salaries from as many accounts as possible when using the default group. However, with iConomy 6 (and possibly others), it may not grab from all accounts due to queued writes. While, there is a way to verify that a player's account has not been edited, I'm not sure if I want to keep said tax/salary into the buffer... Would be possible, but not sure if it will make a difference or not :\
++ Created Config class to change from old, depreciated methods of Bukkit's built in yaml config file handling to the newer versions.