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

    DemmyDemon

    Yeah, that's what I'm going to try and do, exactly.
     
  3. Offline

    Tj43

    DemmyDemon,

    I just wanted to thank you truly for you work on this pluggin. it works very well on my server and i had no issues implementing it. i wanted to apologize for all the naggers and hasslers who don't know how to read. It took me a while to figure out how to change the default permissions from op to default, but i figured it out by reading the FORUMS instead of posting for help, and you repeating yourself. Now that i figured it out things are better, I just wanted to thank you again for the pluggin and volunteering your time.
     
  4. Offline

    DemmyDemon

    Thank you for your support, and I hope it serves you well.
    I'm actually working on this exact plugin right this moment! :-O

    Edit: 0.9 is now released! :-D
     
  5. Offline

    ThaSourceGaming

    Why don't you make a BukkitDev page?, You'll get more users to use it and suggestions, and maybe developers who will want to help!
     
  6. Offline

    DemmyDemon

    *sigh* How many times do I have to answer this?
    1. I don't agree with the Curse terms of service entirely. Their licensing is a little too restrictive.
    2. I'm moving off Bukkit to the Official API anyway.
    3. I like to track the downloads myself, and I'm already very well hosted.
    As far as "more users", I don't really see any benefit with that. I'm just releasing what I use myself anyway, and if others enjoy it, fun for them.
    Other developers helping? They know where to find me if they want to fork the project, but I really don't want or need any more devs on my plugins.
     
  7. Offline

    ThaSourceGaming

    Okay I was just suggesting. If you will keep this project up to date and tell us where to find the new updates if you do move to a different place, let us know, if not then i wont bother using it. But this seems like a great plugin to use that's why I want you to keep it alive and not leave it die like most of the developers here at Bukkit.
     
  8. Offline

    DemmyDemon

    When I stop writing Bukkit plugins and start using the official API, it won't work for Bukkit any more.
    That's what writing for a different API does.

    Until then, the updates will be right here in this thread.
     
  9. Offline

    ThaSourceGaming

    Okay and ill be using it when the API does come out.
     
  10. Offline

    DemmyDemon

    By then we'll probably have some official Mojang repository, and I'll sure as L jump on that ;-)
     
  11. Offline

    wakinglife142

    I absolutely love this mod. I changed the currency to emeralds, giving my users more of a reason to trade with villagers. I only use simple mods, with no permissions, and a white-list. so this is perfect for our server style.

    Thanks for a great piece of work!
     
  12. Offline

    DemmyDemon

    You're welcome!

    Good thing I made the permissions check optional now, then ^__^
     
  13. Offline

    paveu

    For currency, can i use item IDs with sub-code ?
    (e.g. ID of Lapis Lazuli is 351 and sub-code is 4 )
    Thank you.
     
  14. Offline

    DemmyDemon

    No, that's not supported yet, but it's something I've been meaning to do for a while.
     
  15. Offline

    paveu

    Thank you for the reply.
    I am waiting for the update without haste:)
     
  16. Offline

    DemmyDemon

    Don't hold your breath, as I'm very busy out in the Real World at the moment.
     
  17. Offline

    Nori_Silverrage

    Just out of curiosity. Can any ID be repaired? For instance if I use Tekkit and want to repair a bronze pickaxe can I add that ID into the list of repairables and be able to repair it?
     
  18. Offline

    DemmyDemon

    That's the whole point of making repairables configurable like that :)
    Should work fine. If not; Tell me!
     

Share This Page