Inactive [ADMN/ECON] PayDay v0.3.1 - User payouts by group (iConomy) - automated - synchronization[1000]

Discussion in 'Inactive/Unsupported Plugins' started by TZer0, Apr 10, 2011.

  1. Offline


    Check this plugin instead:

    Support for this plugin has been discontinued. If you wish to take over, please contact me.
    "It is pay day."
    -Dungeon Keeper 2

    Note: I'm going to rewrite/refactor my plugin once I get better (having a rather interesting fewer right now). This may take some time, but it will be worth it. Once this is done, the plugin will be released on bukkitdev.

    Note 2: I think that I will make a system that uses permission-nodes instead.

    Version: 0.2.10

    Jar (Github),
    Jar (Dropbox),
    Source (GitHub)

    old (iConomy 4): jar(Github)
    old (iConomy 4): jar(Dropbox)

    • Automated paydays!
    • Allows you to administrate your users' income. (allows negative income!)
    • Separate groups for players - easily imported from Permissions. Use worldconf to choose worldname.
    • Lots of, lots of aliases!
    Commands (all start with /pd for in-game help - say /pd):

    Remember: if a parameter contains spaces, surround it with quotes, that is: this chracter: "
    Show Spoiler

    • For non-admins: /pd shows the time to the next payday.
    • time - for admins: shows the time to the next payday.
    • checkerrors - checks for errors in the config-file
    • players [#] - shows number # page in the list of players
    • groups [#] - shows number # page in the list of groups
    • payday - pays everyone their money, won't run if checkerrors fails
    • payday [#] - same as above, but does it # times. (can be run for -1 times etc.)
    • set group name value - creates a group with earns value per payday
    • set player name groupname - assigns a player to a group
    • mv groupname1 groupname2 - moves all players from one group to another
    • delete player/group name - deletes a group/player
    • searchdelete player/group name - wildcard delete (may delete multiple entries, this is a powertool and should be treated as such)
    • sync [overwrite] - imports players and groups from iConomy and Permissions, if overwrite is given, players lose their current group and get a new group from Permissions. Group-names are also added with an income of 0 if not present.
    • recurring - see how to set up recurring payments
    • onlinemode [f/t] - only online players get paid.
    • lastperiodmode [f/t] - only players who have been online in the last period get paid, overrides onlinemode.
    • interest [value] - sets or displays interest (it is in percent, the amount paid will be (value/100)*money_in_account at each automated payday). Interest is paid out to ALL accounts, not only those registered in PayDay.
    • worldconf [worldname] - sets or displays what permissions-configuration is to be used in PayDay.
    • message [message] - sets or displays payday-message.
    • Aliases:
      • player = pl,
      • players = pl
      • groups = gr
      • group = gr
      • checkerrors = ce
      • payday = pd
      • set = s
      • delete = d
      • move = mv
      • sync = sy
      • overwrite = ow
      • sd = searchdelete
      • recurring = rec
      • onlinemode = om
      • time = t
      • lastperiodmode = lpm
      • interest = i
      • message = msg
      • worldconf = wc (oh wow! :p)
    Player names are CASE SENSITIVE, group names are CASE INSENSITIVE and for simplicity - I recommend using /pd sy or /pd sync

    How to set up recurring payments
    Show Spoiler

    Note: this is a bit untested but should work, please report any bugs ASAP
    The command is /pd rec mode arg
    There are 3 modes:

    Alias: d = deactivated

    Deactivates recurring payments
    usage: /pd rec d

    Alias: r = relative
    Sets recurring paydays relative to the current time. For instance: /pd rec r 10:1:3 will set paydays every 10 min, 1 hour and 3 days (or 263400 secs).
    /pd rec r 1 will set a payday every minute
    usage: /pd rec r minute:hours:days

    static, usage: /pd rec static (hour,day,week,month)
    aliases: h = hour, d = day, w = week, m = month, s = static
    Static will always happen on the first minute of the hour, month,
    day or week, depending on what you choose.
    Example: "/pd rec s d" sets the recurring payments to happen every day.

    Ohnoes, I've broken my settings without knowing it and then set up a recurring payday, what should I do?
    Don't worry: the system will tell the console and anyone who has the "payday.admin"-permission that something has gone wrong and prompt them to run /pd ce to fix things.

    • /pd s gr epicgroup 10000 = /pd set group epicgroup 10000
    • /pd s pl TZer0 epicgroup = /pd set player TZer0 epicgroup
    • /pd pd = /pd payday
    • /pd d gr epicgroup = /pd delete group epicgroup
    • v0.3.1
      • Bug fix related to changes in code due to adding Essentials-support.
    • v0.3
      • Added customizable messages.
      • Starting to add essentials-support (experimental version included, don't try this unless you're adventurous)
      • Fixed issues involving dots in names
    • v0.2.10
      • If an account holds negative amount of money after a PayDay, it is set to zero instead.
    Previous changes (open)

    • v0.2.9
      • Interest
      • Customizable world-name.
    • v0.2.8
      • Fixed upper and lower case-issues
      • Added handling of quotes
    • v0.2.7
      • Fixed /pd time for static modes.
    • v0.2.6
      • Let the admins know how long payday has been failing so that they can easily compensate the users' losses and how long ago the last successful payday was.
      • Payouts for people who have been online in the last period.
      • Commands which allow players and admins to see how long it is to the next payday (/pd for normal users, /pd t or /pd time for admins)
      • Undo and multi-payday
      • Removed player or group-payday.
    • v0.2.5
      • Removed a debug-message and a call to a deprecated function.
    • v0.2.4
      • Removed a debug-text.
    • v0.2.3
      • Onlinemode - enable to only pay people who are online.
    • v0.2.2
      • Re-enabled sync!
    • v0.2.1
      • iConomy 5, deactivated sync
    • v0.2
      • Recurring payments!
    • v0.1.6
      • Added negative payouts
    • v0.1.5
      • Fixed what v0.1.4 should've fixed.
    • v0.1.4
      • Fixed bug when running without Permissions.
    • v0.1.3
      • Foolishly discovered that I should've blacklisted "nation-" as well.
    • v0.1.2
      • Fixed /pd players 2+ giving an error, /pd ce now gives warnings when seeing accounts starting with "town-" (also blacklisted when importing), wildcard delete added.
    • v0.1.1
      • Fixed possible sync issue.
    • v0.1
      • Initial release.

    Show Spoiler

    Q: Do I get money while I'm offline?
    A: If online-mode is off (default), yes.

    Q: When is <feature> going to be implemented?
    A: I go for the "release it when it is done" way of doing things and I generally don't schedule things, if I say that I'll do it - it will be probably done within 24 hours, if I say it goes on the todo-list, expect some waiting-time. Currently, I'm rather busy so I only update the most important things or things which are really simple to add but add lots of value.

    • [medium] Player-owned companies where players pay other players for doing jobs etc. with easy administration + ranks.
    • [low/maybe] Might add BOSEconomy-support. BOSEconomy kind of has this including sync - but I might add this just for the sake of portability.
    • [low/maybe] Essentials Eco-support?
    Please leave feedback and any errors which should happen to pop up, but read Q&A before you ask a question.
    DoomLord likes this.
  2. Offline


    Sorry stack trace? Don't understand :(
  3. Offline


    Copy your log after you run the command.
  4. Offline


    I want this the most- players who log in once per day on my server should get the money.
  5. Offline


  6. Offline


    Sorry for the late response, this is what I get :
    2011-07-10 00:26:05 [SEVERE] null
    org.bukkit.command.CommandException: Unhandled exception executing command 'pd' in plugin PayDay v0.2.5
        at org.bukkit.command.PluginCommand.execute(
        at org.bukkit.command.SimpleCommandMap.dispatch(
        at org.bukkit.craftbukkit.CraftServer.dispatchCommand(
        at net.minecraft.server.NetServerHandler.handleCommand(
        at net.minecraft.server.NetServerHandler.a(
        at net.minecraft.server.Packet3Chat.a(
        at net.minecraft.server.NetworkManager.b(
        at net.minecraft.server.NetServerHandler.a(
        at net.minecraft.server.NetworkListenThread.a(SourceFile:105)
        at net.minecraft.server.MinecraftServer.h(
    Caused by: java.lang.NoSuchMethodError: com.nijiko.permissions.PermissionHandler.getPrimaryGroup(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
        at tzer0.PayDay.PayDay.onCommand(
        at org.bukkit.command.PluginCommand.execute(
        ... 12 more
  7. Offline


    Awesome, I love it.
  8. Offline


    Are you absolutely sure that you are running permissions 3.0 or higher? That error is caused when another plugin tries to access an unavailable method (in this case, getPrimaryGroup) or possibly (not sure about this one): your configuration for permissions is incorrect.
  9. Offline


    Oh you're right, I forgot i'm using another version of permissions, PermissionsEx. That explains it, thanks.
  10. Offline


    Could it ever be possible for PayDay to be compatible with Permissions 2.7.7?
  11. Offline


    Syncing will fail every time, other than that: it will work.
  12. Offline


    When I type /pd rec s d, it comes up the same as when you say /pd?
  13. Offline


    let me know what function you need added and we can do that. Although, you stated we already have paybrackets! Maybe... if you wanted you could help to add your idea to BOSEcon?
  14. Offline


    Actually, it seems that I've found what I need. I'll add support if someone actually requests it.

    Also, mind unquoting the post? Kind of big thing to have there. ;) Edit: remove everything but the relevant part

    Uhm, what exactly are you trying to say?
  15. Offline


    When I try type the command: /pd rec s d, it comes up that no recurring payments have been created
  16. Offline


    Fixed. It was working (the recurring payday that is), but I managed to break the function which displays the information. Sorry about that! -_-
  17. Offline


    Could you come on my server and help me for a sec (
  18. Offline


    can we use this to take awya money from players, like paying negative money?
  19. Offline


  20. Offline


    Thank You.
  21. Offline


    Im getting this behavior:

    CONSOLE: ?cThe last 19 payday(s) failed, see /pd ce for more information
    Server: /pd ce
    CONSOLE: Checking for errors.
    CONSOLE: DEVIL SPIDER may be a duplicate of Devil Spider (or vice versa)
    CONSOLE: Errors found, fix them before running payday

    Problem description:

    The problem seems to be that the plugin checks for duplicate user names in a case insensitive way.

    The desired behavior:

    Only check usernames in a case sensitive way: John is not the same username as JOHN this could easiliy be another account. So its not correct to throw a duplication error for that. Because they are not duplicates.

    I hope you want to fix this in a next release. Thanks :)
  22. Offline


    Here's the problem: I believe there was a time when if a player was offline while the payout was started, he wouldn't get money if the name wasn't exactly the same. I'll experiment a bit with it, if it doesn't work, then I'll just make a small hack to get around it :p

    Here's what you can do while waiting: check the actual spelling of the player's name and remove invalid one. (if you check your config.yml, you'll see that his name in there twice).
  23. Offline


    Hi TZero. thanks for your answer :) I hope you can disable the throwing of an error if the duplicated names are not exactly the same. i'd rather have some offline players not getting paid than no one getting paid.

    I maybe found another problem while playing with your plugin :)

    Can you tell me how i can use the delete function to delete a player with spaces in his username?

    The /pd delete player function does not seem to support usernames with spaces in it.


    Server: /pd delete player "DEVIL SPIDER"
    CONSOLE: Incorrect format, see help

    Server: /pd delete player DEVIL SPIDER

    CONSOLE: Incorrect format, see help

    Server: /pd delete player "Devil Spider"
    CONSOLE: Incorrect format, see help

    Server: /pd delete player Devil Spider

    CONSOLE: Incorrect format, see help

    The plugin allows storage of usernames with spaces, which looks fine because they are allowed, but the plugin does not yet seem to support deletion of usernames with spaces in it.

    Im very happy with your plugin youre doing a great job :) I hope you keep improving it. It has a lot of potential
  24. Offline


    Oh, yes, I'll include that in my next fix! (I'm used to usernames containing anything but spaces :p)

    Nice that you liked my plugin - anyways: here's the way I see it: I'd rather have the plugin not pay out anything at all, rather than execute a faulty pay-out. If the config is incorrect, then you should have it corrected, check how many automatic paydays that should've occurred (for instance: by reading the in-game messages or console messages) and then do a multi-payday.
  25. Offline


    yes youre right, it has something to do with atomicity. You either do all actions right or yu do none at all :) Thanks for including it in your next fix.
  26. Offline


    Should be working now. Tell me if you encounter any issues.
  27. Offline


    Do you know when interest will be implemented?
  28. Offline


    Probably in the next version.
  29. Offline


    Ok, thank you :)
  30. Is it possible to sync with any other permission file then world ? (not named world ?)
  31. Offline


    Not right now - I don't see this as critical because 99% of all servers use world as their main world and have everything related to permissions stored there. Remember, your users need to be in the correct group, not have certain permissions etc.

Share This Page