CashFlow

CashFlow is an economy plugin that lets you create taxes and salaries that pay out at an interval you set. Compatible with iConomy 4, 5, & 6+, BOSEconomy 6 & 7, Essentials Economy 2.2.17+, and MultiCurrency. Permissions plugin optional but recommended - pick from PEX, bPermissions and PermissionsBukkit.
Requirements:
- Register (Versions 1.0.1 and up use Vault)
- An economy plugin - BOSEconomy, MultiCurrency, Essentials Eco, iCo4/5/6
- A permissions plugin - PEX, bPermissions, PermissionsBukkit
Features:
- Uses the Register API, so it is compatible with multiple economy plugins.
- Supports PEX, bPermissions, and PermissionsBukkit.
- Create multiple taxes with different amounts, intervals, and players receiving the tax (or no player receives the collected tax). Apply taxes to one group or many. Gives you the ability to add players to an "excepted players" list so if someone isn't going to play for a while you can freeze their tax without having to remove them from a group.
- Create multiple salaries with different amounts, intervals, and players paying out the salaries (or no employer). Apply salaries to one group or many. Add players to an "Excepted Players" list so you can freeze their payment if they're going to be away, without having to remove them from a group.
- Hits offline players.
- Set salaries and taxes to pay only to players who have been online within a certain number of hours.
- Supports non-player economy accounts.
Commands and Permissions
Tutorial
To Do:
- Commands to edit taxes (maybe).
- A little code cleanup.
- More permission nodes
- Percentage based salary
Trello Dev board
Visit the Trello board to see the current todo list for all projects.
You can comment and vote on any of the topics there.
All changes on the Trello board are in real-time.
If you decide to download this plugin please leave me a comment to let me know how it works for you so I can improve it! And if you like this plugin, please consider donating. It's a big incentive to continue this, and it helps me pay for things I need for school.

-
View User Profile
-
Send Message
Posted Feb 5, 2012@masteryodaaa
That is weird...
But yes, it will still pay salaries / tax players. It just might not tax players who haven't logged on after the plugin was added and who are in the default group.
If they have logged in at least once after the plugin was added, or if they are in a group other than default, they should be counted.
-
View User Profile
-
Send Message
Posted Feb 5, 2012I get this error when i try to do this /cashflow addplayers "World" Do i need to add players or does it work to take taxes anyway and why do i get this errors?
http://pastebin.com/dZyGjefW
-
View User Profile
-
Send Message
Posted Feb 3, 2012@b1r6m4n
Yeah... I don't think I can modify the forum's original post...
And also, using the top "Download" button directs to the old release as well...
The reason for that is because my latest versions are labeled as "beta" rather than "release", so BukkitDev thinks to have the "Download" button tied to the release rather than the latest available jar. There are good intentions for it, so I semi-agree with that convention...
And the major reason why I haven't promoted a beta to "release" is because I don't feel that it has all the functionality of the old release. Most namely Group Manager support, and per-player online intervals...
I haven't had much time to work on either since I'm doing my senior seminar project :\
Sorry for the confusion, and that there's not much that I can do about it until the beta has at least the same functionality as the previous release.
-
View User Profile
-
Send Message
Posted Feb 3, 2012Hello. First, thank you for this wonderful plugin! Second, I think your download link *in the forum* is outdated. I was directed to a 1.0 download, when you obviously are into the 1.1's on this page.
Thanks, took me a sec to notice this.:)
-
View User Profile
-
Send Message
Posted Feb 2, 2012@masteryodaaa
That is simply telling you that the time persistence aspect as been run and all of your taxes/salaries should now be at the correct time.
-
View User Profile
-
Send Message
Posted Feb 2, 2012What does this mean?
02.02 09:16:15 [Server] INFO [CashFlow] Buffered iterations + Rescheduled threads 02.02 09:16:15 [Server] INFO [CashFlow] Running CatchUp
-
View User Profile
-
Send Message
Posted Jan 31, 2012@HockeyMike24
Honestly, that sounds beyond the scope of the plugin... and rather something that should be integrated in the economy system itself...
-
View User Profile
-
Send Message
Posted Jan 31, 2012Could you add a credit card system?
-
View User Profile
-
Send Message
Posted Jan 31, 2012Hey all,
I've submitted v1.17, and I urge all users to update to it when it becomes available.
It contains a fix for a critical bug regarding time persistence and salary/tax CatchUp sequence.
If you don't want to wait for the approval process, then you may also grab it from the GitHub downloads page:
https://github.com/mveritym/CashFlow/downloads
Sorry for not catching this earlier.
-
View User Profile
-
Send Message
Posted Jan 31, 2012@Shayana_fr
It will generate one on load/enable.
-
View User Profile
-
Send Message
Posted Jan 31, 2012Hi everyone, there is no config.yml file in the jar, where can I find it ?
-
View User Profile
-
Send Message
Posted Jan 29, 2012@UFO64
Wait, what do you mean that they're getting put into two payment cycles?
And yes, it is intended that the setonlineonly interval is smaller than the actual tax/salary interval. Else, it wouldn't make much sense :\ I think the code catches that... but since I haven't worked on that aspect at all I can't say for sure off the top of my head.
Well, I can create the paginated list for the buffer... Just realize that buffer acts REALLY fast. The buffer is for scalability. The buffer isn't really used if there are only a handful of players getting taxed/paid. However, its absolutely necessary for if there are like 500 or 1000 or more operations that need to be done. But, usually, it goes by fast... so the only time you'll ever actually see anything in the buffer is if you catch your taxes/salaries being fired. And not just one tax/salary, but perhaps multiple. Otherwise, its usually empty. The buffer is really just a queue of bank/economy operations to do, and the operations are done in batches.
And currently, if an account does not have enough money, it auto adjusts the amount that it can pay for that single operation. Example: There's a tax for 100, and a player only has like 40. Then we only take the 40 that they have available.
The reason for this is because I don't know/think that all the economies support negative balances...
So no, the amount is not divided up. In terms of salaries with employer accounts specified, you're right that if the account has no money, then the rest of the accounts that need to get paid don't get anything as there is nothing to give :\
-
View User Profile
-
Send Message
Posted Jan 29, 2012@Mitsugaru
Thats how I assumed that setonlineonly would work, but I didn't know it wasn't implemented. I would imagine you would need to buffer the player accounts until the payment, then flush the buffer and refill it after the payment. Its kind of odd that if you are online when the event triggers, you get put into two payment cycles though. I guess it will be up to admins to leave a gap between the payment period, and the setonlineonly period.
I would be ok with the buffered list of accounts to be paid. I really only need it to debug and such!
EDIT:
One other question. What happens when the pay account doesn't have enough to fill out all the salaries? Are they divided? Does it just pay until the account hits zero and anyone else on the list is SOL?
-
View User Profile
-
Send Message
Posted Jan 28, 2012@Kanurame
Yes, I store time differently than the previous release...
Using System.currentTimeMillis() to store the time of execution / fire as a long.
-
View User Profile
-
Send Message
Posted Jan 28, 2012@Mitsugaru
Previous was in this format: 2012-01-14T04:00:13.178Z.
Current is a pure integer: 1327782112122.
-
View User Profile
-
Send Message
Posted Jan 28, 2012@Kanurame
No, its fine, it's important that we got that issue resolved.
And... what happened exactly with the fire command? What timer format?
-
View User Profile
-
Send Message
Posted Jan 28, 2012I know i've bothered you quite a bit, but when I used: /salary fire <salary_name> The timer format of the salary I put changed. That normal?
-
View User Profile
-
Send Message
Posted Jan 28, 2012@Kanurame
Alright, and lastly, don't forget to do the command : /cashflow addplayers <world>
This is so that players are re-added to the database so it knows who to tax/pay for the default group.
-
View User Profile
-
Send Message
Posted Jan 28, 2012@Kanurame
Some of those errors are expected. You loaded version 1.13, and thus the updater set its version to the old one. However, your database and tables were already formatted for 1.14/15. Which is why these errors on the updates are fine. It was trying to do updates on the database that it shouldn't have.
So, I suggest that you delete that database file. Check the config.yml and make sure it has the correct version (1.15) and then reload so that it makes a fresh database with the correct initial schema.
-
View User Profile
-
Send Message
Posted Jan 28, 2012@Mitsugaru
Nevermind, it worked, I just had to run twice. Thanks.