Inactive [ECON] RepairChest v0.9.1 - Spend gold to fix your tools [1.4.6-R0.3]

Discussion in 'Inactive/Unsupported Plugins' started by DemmyDemon, May 1, 2011.

  1. Offline

    DemmyDemon

    RepairChest - Spend gold to fix your tools:
    Version: v0.9.1

    Inspired by one of my most favorite plugins ever, PhysicalShop, this provides a way to spend gold ingots on repairing tools.

    Simply slap a sign over a chest, make the first line "[Repair]", and you're done!
    Users will then put their damaged tools into the chest and right-click the sign while holding their hard earned gold ingots, and the tools in the chest will be repaired.
    Video demonstration by SeaborgiumMC (open)

    Thanks SeaborgiumMC

    Features:
    • Entirely gold-and-sign based. No commands, no economy plugins.
    • As easy to set up as you could hope for.
    • Updated to new Permissions system ("SuperPerm"), but entirely optional.
    • Configurable currency, in case you'd like to keep your valuable Gold Ingots.
    • Configurable prices, but with a sane default.
    • Configurable what is and isn't repairable.
    • Possibility of allowing partial repairs if the player is short on cash.
    • Repair chests are protected against explosions and destructive users.
    • Translatable: Strings built into the configuration.
    Download RepairChest

    Source Code

    Planned improvements
    • None, but feel free to suggest something and I probably won't be extending it any further.
    Permission nodes (open)


    repairchest.create - Place the Magic Sign
    repairchest.use - Use the repair chest, but even checking this permission is off by default.
    repairchest.destroy - Destroy the Magic Sign
    repairchest.testing - Access to /rc test command
    repairchest.reload - Access to /rc reload command

    Commands (open)

    /rc test - Severely damage the held tool
    /rc reload - Reload RepairChest's configuration

    Configuration (open)

    Default values:
    Code:
    verbose: false
    currency: 266
    baseCost: 0.01
    currencyName: g
    currencyString: Gold ingot
    partialRepair: false
    distributePartialRepair: false
    triggerString: "[Repair]"
    checkRepairPermission: false
    repairables: (looong list of integers)
    strings: (list of strings)
    verbose,boolean
    Should the plugin spew loads of irrelevant information to the console?
    Don't turn this on. Seriously. You'll just turn it back off again right away.

    currency,integer
    What item ID does your chosen currency have?
    Default is 266, which is the gold ingot. Perhaps you prefer 341, the Slime ball?
    I suggest you refer to http://www.minecraftdatavalues.com/ to get the ID of your preferred currency if you don't already know it.

    baseCost,double
    What should one point of damage cost to repair?
    The default here is 0.01, meaning you pay 1g for every 100 points of damage.
    Since it's not possible to pay in fractions of an item, it's rounded DOWN to the closest whole, but the price can never be 0.
    This means that even if the baseCost is 0.01 you still have to pay 1g to repair a stone pickax used only once.

    currencyName,string
    What do you refer to your currency as? "I'm rich! I have 200g!"
    It will be used without a preceding space, so set it to " slime balls", including the space, if you want it to say "34 points of damage costs 34 slime balls to repair." rather than "34 points of damage costs 34g to repair."

    currencyString,string
    The long name of your currency, used in the explaining text.
    This should match your currency, so the default is "Gold ingot"

    partialRepair,boolean
    Should it be allowed to only repair some of the items?
    Default here is false, so you can't repair unless you can afford to pay the full sum.

    distributePartialRepair,boolean
    Should partial repairs be distributed?
    If they are distributed, and you pay 1g to repair 5 tools, the 100 "repair credits" will be distributed evenly among them.
    If not, then it will repair the first tool first, then move on if there are "repair credits" left, then the next and the next until your gold is spent.

    checkRepairPermission, boolean
    By default, this is false, meaning that anyone can repair at a repair chest.
    If set to true, it checks the repairchest.use permission before allowing repairs.

    triggerString, string
    The string on signs you want to trigger the repair function with.
    The default is "[Repair]", but it could be "[Reparere]" or "[Fix]" or whatever you want.
    Just keep in mind that changing this will break any existing repair chests out there!

    repairables, list of integers
    Default repairables (open)

    repairables:
    - 256
    - 257
    - 258
    - 259
    - 261
    - 267
    - 268
    - 269
    - 270
    - 271
    - 272
    - 273
    - 274
    - 275
    - 276
    - 277
    - 278
    - 279
    - 283
    - 284
    - 285
    - 286
    - 290
    - 291
    - 292
    - 293
    - 294
    - 298
    - 299
    - 300
    - 301
    - 302
    - 303
    - 304
    - 305
    - 306
    - 307
    - 308
    - 309
    - 310
    - 311
    - 312
    - 313
    - 314
    - 315
    - 316
    - 317
    - 346
    - 359

    Just a looooong list of item IDs of what you want to be repairable.
    The default is all tools, all armors, all weapons, shears and the fishing pole.

    strings, list of strings
    Default strings (open)

    strings:
    spammy: VERBOSE MODE ON! This will get spammy!
    testNoConsole: Sorry, but the console can't have an item in it's hand...
    testNoEmptyHand: You can't test with an empty hand, man.
    testNearlyBroken: Your tool has been nearly broken...
    testNotSuitable: This item isn't suitable for this test.
    reloadedSuccessfully: RepairChest settings reloaded successfully!
    permissionDenied: Permission denied.
    invalidArgument: Invalid argument!
    cantAfford: You can't afford this repair!
    ding: Ding! Repair complete!
    usage: Right-click the sign with a currency item in your hand to pay.
    currencyIs: "The currency is:"
    nothing: Nothing to repair!
    noChest: Uh, there is no chest.
    usagePermissionDenied: Sorry, you don't have permission to use repair chests.
    removePermissionDenied: Permission denied! You can't remove repair chest signs.
    cantRemoveProtected: This block has a protected sign on it, and can't be removed.
    explosionBroadcast: Everyone, please refrain from blowing up repair chests. It's not nice.
    damagePoint: point
    plural: s
    ofDamageCosts: of damage costs
    toRepair: to repair.
    chestAuthorized: Repair chest authorized!
    chestDenied: Sorry, you lack permission to create repair chests!
    chestFirst: Chest first!

    This is for translating the plugin. If you don't already know how to do this, I suggest you play with it for a while, but no support will be given on translations!



    Changelog:

    Version 0.9.1, January 2nd 2013
    • Fixed "Could not find chest" issues that came with a breaking Bukkit change.
      The cardinal directions rotated (to match Minecraft), so I had to rotate the chest-finding method accordingly.
    Version 0.9, August 11th 2012
    • Updated for 1.3.1-R1
    • Repair permission checks is now configurable, and defaults to being off
    • What can and can't be repaired is now configurable
    • triggerString is now respected everywhere (...I hope!)
    • Other minor tweaks and fixes here and there.
    Version 0.8
    • Translatability introduced.
    • Updated for 1.1-R6 compatibility.
    • Made more stuff configurable.
    • Simplified language in the plugin a bit to aid in translatability.
    • Made sure "translatability" is a perfectly cromulent word.
    Version 0.7, January 30th 2012
    • Hop to new Bukkit Events system
    • Potential fix for strange bug that sometimes Enchantments go away. Unable to reproduce, so I have no idea if it's even RepairChest's fault, but hey, I have to try.
    Version 0.6.1, December 20th 2011
    • Fixed sign-on-side-of-chest support.
    • Added refusal to accept edible stuff as currency because of some weird Bukkit(?) bug.
    Older changelog (open)

    Version 0.6, December 13th 2011
    • Combined both commands into /rc, which takes an argument.
    • Thrown out old Permissions support, now 100% SuperPerms
    • Adjustment to API changes, fixing for some (Block.getRelative) and warning suppression for others (org.bukkit.util.config.Configuration).
    • Fixed some brokenness in the /rc test command
    Version 0.5, May 21st 2011
    • Testing shows the explosion resistance is dependable as far as I am able to test. Now considered a Real Feature.
    Version 0.4.2, May 14th 2011
    • No longer clobbers configuration changes on /reload
    • Added /rcreload and /rctest commands (/rctest was already there, but undocumented and called /repairchesttest)
    Version 0.4.1, May 10th 2011
    • Fixed the path and name of the configuration file. I hope.
    Version 0.4, May 9th 2011
    • Fixed the configuration directory not being created if needed.
    • Added partial repairs, in two variants "distributed" and "sequential" (See config options)
    Version 0.3, May 4th 2011
    • Fixed issue where currency was always referred to as "gold", and gold was required for transactions even when a different currency was set. (Thanks Bokou)
    Version 0.2, May 1st 2011
    • Configuration support
    • Working chest/sign protection. Still needs work...
    • Much cleaner code overall.
    Version 0.1, May 1st 2011
    • Initial release
     
    wavecom, kahlilnc, columb and 3 others like this.
  2. Offline

    Retribution831

    iConomy support?
     
    EarlyLegend likes this.
  3. Offline

    jamescosten

    kinda like blacksmith??
     
    Tirelessly likes this.
  4. Offline

    DemmyDemon

    Nope, sorry, this is for physical economies.
    My users like the value it brings to gold, and putting iConomy in the mix sort of negates that.
    Sure, I could fix it so you could sell gold for iConomy credits, but then gold would be just another resource.

    Perhaps you're looking for Blacksmith?

    Yes, kind of like blacksmith, but lighter weight, and you can repair a bunch of tools at the same time by putting them all in the chest.
    Unlike Blacksmith, this plugin doesn't have a smart formula. It's dumb as a rock, but a very pretty rock at that.
     
  5. Offline

    jamescosten

    Dumb but pretty lol
     
  6. Offline

    Bokou

    couple of bugs:

    No matter what you set the currency name to, when you click the sign with the wrong item it will tell you you must have a gold ingot in hand.

    Is there a increasing cost? Another player on my server couldn't repair for any less than 2 gold ingots for his full diamond suit. I was able to repair mine for one but didn't have as much damage as his had.
     
  7. Offline

    DemmyDemon

    Ooooh, the check for item in hand is gold still, not whatever-you-set-in-settings.
    That needs fixing for sure, and I'll get right on it.

    The cost increases according to the base cost. Each point of damage costs one base cost, which defaults to 0.01 gold, but you can never pay less than 1g.
    That means you pay 1g for 4 damage, and 1g for 198 damage, but 2g for 200 damage.
    If you want to set the cost to always be 1g, set the base cost to 0.
     
  8. Offline

    Bokou

    roger that, wasn't aware of the increasing cost but I understand that now.

    glad I could help report something that needs fixing! ;)
     
  9. Offline

    DemmyDemon

    Should be fixed now, just fetch the file again :)
    It would be awesome if you could test with a different currency and get back to me, because I just theoretically fixed it and verified that it still worked with gold. I'm at work, and shouldn't be doing this at all, but I have been told to expand my knowledge into Java, so ... oh well, excuses excuses.

    Just don't tell my boss, mm-kay?
     
  10. Offline

    Bokou

    hehe I'll test with a few different currencies and let you know the results.

    At first I forgot I had removed OP from myself from the server (I have a tendency to cheat) and kept getting denied but I opened up the mod and started reading some values and saw "isOP" and was like "hmm... doh!"
     
  11. Offline

    DemmyDemon

    Yep, to place the chest you have to be an OP, unless Permissions is in effect and you have the relevant permission.

    Thanks a bunch for the feedback, it's appreciated.
     
  12. Offline

    NotoriousPyro

    Works perfectly, can you please add partial repair?
     
  13. Offline

    DemmyDemon

    Hmm, that's an interesting request indeed, but how would you like to see it implemented?
    I could make it so that if you request a repair that costs 5g, but only have 4g, it will repair 4g worth of damage.
    The problem is: If there are multiple repairable items in the chest, how should the repair be distributed?

    Of course, I could simply have it repair the items in the first slot fully, then the next slot, and the next, until it runs out of payment. Any and all repair points paid for but not used will then be applied to one final item...

    Hmm, yes, I'll implement, but it'll take some pondering.
     
  14. Offline

    Bokou

    keep it to where you can at least config say 1g for an entire chest if you so choose... it's entirely too convenient! :)

    edit: that is, if you do implement the partial-repair as well
     
  15. Offline

    DemmyDemon

    You can easily configure repairing the whole chest for 1g.
    Just set the baseCost to 0.00001, and you can't fit enough tools in the chest to reach 2g
     
  16. Offline

    NotoriousPyro

    Add it as a choice in the configuration.
    E.g.
    AllowPartialRepair = 1
    PartialRepairMethod = 1
    1 to repair evenly
    2 to repair consecutively
     
  17. Offline

    DemmyDemon

    Not a bad idea at all Notorious!
    I think I'll tweak it sliiightly, but yeah, that's probably the way I'll go.
     
  18. Offline

    Latros

    I dont see the config anywhere?
     
  19. Offline

    DemmyDemon

    When you run your server with it for the first time, it will create a directory called plugins/RepairChest/
    In that directory, you'll find settings.yml

    This seems to be the standard, so I went with it :)
     
  20. Offline

    kaasinees

    Can i make it so it only requires one gold bar for all items?


    [q]When you run your server with it for the first time, it will create a directory called plugins/RepairChest/
    In that directory, you'll find settings.yml[/q]

    it does not create a directory it seems.
     
  21. Offline

    DemmyDemon

    That's odd. Create the directory for it, then.
    I'll look into why it doesn't do it automagically.

    And yes, you just set the baseCost setting to something very low, and it will never reach 2g
    Set it to 0.0000001, for example.
     
  22. Offline

    kaasinees

    Yeah something must be going wrong when it tries to create the directory, i made the directory and the settings file is there.

    Is this implemented yet?

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 14, 2016
  23. Offline

    DemmyDemon

    I'm working on it this exact moment, actually.
    There should be a 0.4 soon-ish, with partial repair and fixed directory creation for the configuration file.

    Edit: 0.4 is out.
     
  24. Offline

    DragonSupremacy

    Doesn't work on CB#766.

    Log
     
  25. Offline

    DemmyDemon

    Actually, it works fine with build 766, but the .jar file had become corrupted during upload to GitHub or something, because that was NOT a valid Java ARchive.

    Anyway, fixed now. Enjoy.
     
  26. Offline

    DragonSupremacy

    Works now. Thanks!

    edit: there's no sign of any plugins/RepairChest (or plugins/RepairChest/settings.yml for that matter) upon first run.
     
  27. Offline

    kaasinees

    going to test it now.
     
  28. Offline

    NotoriousPyro

    If you put the plugin in the plugins folder and then /reload twice it will create the folder.

    Also, thank you for the update DemmyDemon!
     
  29. Offline

    DragonSupremacy

    I believe I found why the settings.yml isn't properly being generated. When I did /reload repairchest I got a folder that's called "settings.yml" rather then a file that's called settings.yml
     
  30. Offline

    DemmyDemon

    Ah crud. Looking into that right now, DragonSoup.
     

Share This Page