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

    TZer0

    Check this plugin instead: http://dev.bukkit.org/server-mods/payday/

    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
    Downloads:

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

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

    Features:
    • 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!
    Dependencies:
    Permission-nodes:
    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:

    deactivated
    Alias: d = deactivated

    Deactivates recurring payments
    usage: /pd rec d

    relative
    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.

    Q&A
    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.


    Tricks:
    • /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
    Changelog:
    • 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.



    Q&A
    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.


    Todo:
    • [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

    hks222

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

    TZer0

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

    cholo71796


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

    TZer0

    Done.
     
  6. Offline

    hks222

    Sorry for the late response, this is what I get :
    Code:
    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(PluginCommand.java:37)
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:129)
        at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:298)
        at net.minecraft.server.NetServerHandler.handleCommand(NetServerHandler.java:711)
        at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:676)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:669)
        at net.minecraft.server.Packet3Chat.a(Packet3Chat.java:33)
        at net.minecraft.server.NetworkManager.b(NetworkManager.java:226)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:84)
        at net.minecraft.server.NetworkListenThread.a(SourceFile:105)
        at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:451)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:361)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
    Caused by: java.lang.NoSuchMethodError: com.nijiko.permissions.PermissionHandler.getPrimaryGroup(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
        at tzer0.PayDay.PayDay.onCommand(PayDay.java:130)
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:35)
        ... 12 more
    
     
  7. Offline

    cholo71796

    Awesome, I love it.
     
  8. Offline

    TZer0

    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

    hks222

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

    hks222

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

    TZer0

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

    Zippo

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

    riuthamus

    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

    TZer0

    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

    Zippo

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

    TZer0

    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

    Zippo

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

    jkeller4000

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

    TZer0

    Yes.
     
  20. Offline

    Sathex

    Thank You.
     
  21. Offline

    wiigor

    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

    TZer0

    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

    wiigor

    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.

    example:

    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

    TZer0

    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

    wiigor

    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

    TZer0

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

    fneyret

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

    TZer0

    Probably in the next version.
     
  29. Offline

    fneyret

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

    TZer0

    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