[ECON] ChestShop 3.7.18 (iConomyChestShop) - Chest&sign shop for economy plugins [1.8]

Discussion in 'Archived: Plugin Releases' started by Acrobot, Feb 12, 2011.

  1. Offline

    Acrobot

    An easy way to create shops - no protection plugin needed!
    You don't need to be on-line to earn money anymore!
    [​IMG]
    I've put a LOT of effort into making this plugin,
    you can donate if you appreciate my effort =)

    Requirements:
    - An economy plugin supported by Register or Vault, for example iConomy, BOSEconomy or Essentials Eco.
    Optional:
    - For additional economy plugin support - Vault
    - For Permissions: bPermissions, PEX, or any other permission plugin
    - For additional protection: LWC, Lockette, Deadbolt
    - For other item names (aliases): OddItem


    Setup:
    Copy the .jar file from the .zip you downloaded into /plugins folder.
    You can also copy the example files if you want to generate statistics page.

    Translations:
    You can change the plugin's language, here's a list of all user-made translations.
    If you want to update or submit a translation, feel free to PM me.
    Translations (open)

    Arabic - Attarhsase2
    Bulgarian - Muff1Ncho
    Czech - LordPgsa
    Chinese (Simplified) - tab415263
    Danish - Cannafix
    Dutch - speedlegs
    French- DragonSlayer875
    German - RasCas
    Hungarian - Anachen
    Indonesian - Yahya98
    Italian - Massimo1993
    Korean - Zwing87
    Norwegian - _AlexN_ and TheUnkownGamer
    Polish - Holls1
    Portugese (Brasil) - FelipeMarques14
    Russian - VADemon from http://minemania.ru/
    Slovak - LordPgsa
    Slovenian - jEErc
    Spanish - thxaaaa
    Swedish - Maxell
    Turkish - Developer
    Traditional Chinese - hellboyincs
    Vietnamese - etrubi1 from http://minevn.com/


    Permissions:
    How to create a ChestShop?
    - Place a chest, if you haven't already.
    - Place a sign 1 block near the chest (for example, above the chest)
    - On the sign, write:

    [​IMG]
    (Item name can actually be item ID or alias)
    First line will be filled in by the plugin automatically.
    Price is a combination of buy and sell price.
    You have to have B near buy price (people buy from you), and S near sell price (people sell to you).
    If you have both B and S, separate them with a colon - :
    For example:
    [​IMG]

    means that AcrobotPL wants to sell 64 diamonds for 10 currency, and buy them back from you for 5 currency.
    Also, if you put "free" instead of price, it is free to buy or sell :)

    - Now, when you finish editing the sign, if LWC is turned on in config, shop will be automatically created.
    Also, if your default protection is turned on in the config, people won't be able to break chest, sign or the block the sign is on.

    What is an Admin Shop?
    Admin shop is the shop that doesn't require a chest, because it has infinite stock.
    If you sell to it, the items will disappear, and if you buy from it, items will magically appear.
    To create one, you have to be Admin/OP. Just put "Admin Shop" (or anything specified in config file) on the first line of the sign.

    Restricting shops to some groups or regions
    You can either use permissions, or you can just put a sign ABOVE shop sign (you need to be in that group to create the sign) to restrict it to players with ChestShop.group.groupName permission
    The syntax is:
    [restricted]
    firstGroupName
    2ndGroupName
    3rdGroupName
    Only those groups will be able to use that shop

    To restrict a shop to some regions:
    - If you're using Towny, turn TOWNY_INTEGRATION on. Residents will be able to create shops in economy plots (either their or, if specified in config, any)
    - If you're using WorldGuard, you can use an experimental "chestshop" flag. Turn WORLDGUARD_INTEGRATION on and flag a region. (f.e. /region flag ChestShopRegion chestshop allow)

    Do you want to limit the maximum prices for items?
    Well, there's an app.... wait, not that : P
    You can use an experimental feature in ChestShop.
    In your config.yml, add lines like:
    max-buy-price-5: 14
    max-sell-price-5: 15

    That means that the maximum price for items BOUGHT by PLAYER is 14, and items SOLD by PLAYER using the shop is 15.

    You can also use a global setting, like this:
    max-sell-price: 200

    That means that the maximum price for items SOLD to PLAYER is 200 (if there is, for example, a max-sell-price-5 found, it will be used instead of the global sell price)

    USING SHOPS
    You could buy and sell by right and left clicking the sign for a long time.
    Now it's the only way to use the shops.
    It's SIMPLE!
    Just LEFT-CLICK to SELL to shop, and
    RIGHT-CLICK to BUY from shop.
    (This can be changed in the config file)

    DESTROYING SHOPS
    If you want to delete your old shop, simply SNEAK and destroy the sign.
    It's that easy =)

    STOCKING THE SHOPS
    You can either open the chest and stock it up, or click on your own sign - it will open chest's inventory (that way you can have chests not openable by other people for sure :D)

    ItemInfo command
    It's a simple command that shows item information.
    If you use it without any arguments, it shows you information about the item you're holding.
    If you specify item id or item name after the command, it will show you information about that item.

    Source code
    ChestShop is Open-Source =)
    You can find its code on https://github.com/Acrobot/ChestShop-3


    Thanks to:
    - kali876, ziomekYOYO and Herocraft server for testing the plugin and finding every little bug =)
    - Everyone who uses this plugin - really big thanks for this, I never thought it will be so popular
    - Everyone who provided translation - many people's lives will be easier now
    - @Nijikokun for Register
    - @LennardF1989 for awesome Persistence Reimplemented
    - @Temaska for fixing the plugin while I was on holidays
    - @VADemon for providing a great support for other users
    - @Euthyphro for his patience and really good bug spotting
    - vagrant326 for making a great price sheet
    - Epics for his great help
    :)
    If something's not working
    You can't change the sign color - that breaks the formatting.
    If that's not the issue, please give me this information, so I can help you faster.
    - CraftBukkit version (type /version in chat)
    - ChestShop version (type /csversion in chat)
    - Your economy plugin (iConomy? BOSEconomy? other one?)
    - Have you got any Permission plugin? Which one?

    [​IMG]
    Changelog (open)

    Changelog can be found on BukkitDev - http://dev.bukkit.org/server-mods/chestshop/files/
     
  2. Offline

    Acrobot

  3. Offline

    xBlueXFoxx

    For some reason builders in my server can create shop chests (chestshop.shop.create) even though they do not have the permission to do so, I can't really seem to pinpoint the issue... Just an FYI the plugin I'm using is group manager.
     
  4. Offline

    Acrobot

    @xBlueXFoxx
    That's a feature of superperms.
    You need to add a "negative" node.
    Just add '-' before the permission:
    -ChestShop.shop.create
     
  5. Offline

    xBlueXFoxx

    That worked, thanks!
     
  6. Offline

    Mine4Tim

  7. Offline

    Acrobot

    @Mine4Tim
    Just do /iteminfo (or /iinfo) while you're holding the item. It will tell you its ID and other data.
     
  8. Offline

    Kozzy68

    Hi, Iv Figured that this wont work so well with GM :( first I deny shop create to Default group but later I cant add it back to group that inherits Default groups perms. -Owerides also granted perms. Funny tho it does not seems oweride - -bukkit.command.plugins granted same way as this perm. Wouldnt be simpler to not give shope create prem by default ?
     
  9. Offline

    MatrixJ21

    This error recieved just now. Running CraftBukkit build #1597.

    The plugin's hooked into:

    12:57:57 [INFO] [ChestShop] Permissions version 2.7.7 loaded.
    12:57:57 [INFO] [ChestShop] Lockette version 1.4.9 beta loaded.
    12:57:57 [INFO] [ChestShop] WorldGuard version 5.4 loaded.
    12:57:57 [INFO] [ChestShop] version 3.31 initialized!
    12:57:57 [INFO] [ChestShop] iConomy 6 loaded.

    13:19:21 [SEVERE] Could not pass event SIGN_CHANGE to ChestShop
    java.lang.ArrayIndexOutOfBoundsException: 0
    at com.Acrobot.ChestShop.Items.Items.getItemStack(Items.java:51)
    at com.Acrobot.ChestShop.Listeners.signChange.onSignChange(signChange.java:34)
    at org.bukkit.plugin.java.JavaPluginLoader$36.execute(JavaPluginLoader.java:511)
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:58)
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:339)
    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:1068)
    at net.minecraft.server.Packet130UpdateSign.a(SourceFile:41)
    at net.minecraft.server.NetworkManager.b(NetworkManager.java:226)
    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:93)
    at net.minecraft.server.NetworkListenThread.a(SourceFile:108)
    at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:527)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:425)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:457)
     
  10. Offline

    Etsijä

    Hi, just wanted to note that I must be doing something wrong as well, as I don't seem to get this shop creation working. You see, I have a "normal" player who I don't want to give the userrights to create shops, but a "vip" player should have the rights. Now, however I tweak this, either both classes seem to get the rights, or neither does. I cannot figure out how to set up my GroupManager permission nodes so that this would work. Here's the relevant part at the moment:

    Code:
      normal:
        default: false
        permissions:
        - ChestShop.shop.buy
        - ChestShop.shop.sell
        - -ChestShop.shop.create
    . . .
      vip:
        default: false
        permissions:
        - ChestShop.shop.create
        inheritance:
        - normal
    With the above settings, neither of those groups can create chest shops. Is it the inheritance somehow that screws things up? Perhaps by first letting the ChestShop.shop.create node to a "vip", but then inheriting the negative setting from the "normal" group?
     
  11. Offline

    chinchila

    no man.. i dont like permission plugin... i like the simple OP system from the Bukkit
     
  12. Offline

    DeathNOES

    Does this work for Permissions Ex? I really like this plugin, and hope that I can configure with the my permissions plugin.
     
  13. Offline

    Acrobot

    @DeathNOES
    Yep, it does.

    @Kozzy68
    You can modify it if you want.
    Just open ChestShop.jar with WinRAR/7Zip/whatever, open plugin.yml and delete the whole "permissions" section.
    And for your question - nope, not giving the shop creation permission isn't better. This would mean that without any permission plugin users couldn't do anything.

    @MatrixJ21
    What is on your sign?

    @Etsijä
    Yeah, probably - it's GroupManager's fault :/
    However, there is a solution - open ChestShop.jar with WinRAR, open plugin.yml and delete the whole "permissions" section. There won't be any default permissions then.

    @chinchila
    And what error do you get?
    Have you got any economy plugin?
     
  14. Offline

    Kozzy68

    for all asking this same thing about - -ChestShop.shop.create
    It will work as you need when you do - -ChestShop.shop.create.* instead
    you can grant -ChestShop.shop.create to subgroup and it will work
     
  15. Offline

    Sich

    I have a problem with the restricted shop.
    I give the right permission to one of my user, but he still have a access denied when he try to build a restricted shop.

    Any idea about a perm that I forgive to add ?
    For the moment I only add this : ChestShop.group.Arboretum (Arboretum is the group name).

    The player can create shop without problem.
     
  16. Offline

    Acrobot

    @Sich
    Oh - also forgot about that. Only users with ChestShop.admin node can create restricted shops atm :p
     
  17. Offline

    Sich

    erf ok.... thanks for the information.
     
  18. Offline

    Etsijä

    I'm sorry to disagree but it doesn't. Example: we have "guest", "normal", "vip" groups. I want to give the rights to create shops only for the "vip" group. Here's the relevant part of my GroupManager nodes:

    Code:
      guest:
        default: true
        permissions
        - -ChestShop.shop.create.*
    ...
      normal:
        default: false
        permissions:
        - ChestShop.shop.buy
        - ChestShop.shop.sell
        inheritance:
        - guest
    ...
      vip:
        default: false
        permissions:
        - ChestShop.shop.create
        inheritance:
        - normal
    With those definitions, a "normal" can create a shop, although they shouldn't. Maybe I didn't understand your suggestion?
     
  19. Offline

    Kozzy68

    You did understand well.
    Exactly same configuration is working for me. I have latest RB and GM. I got that suggestion from GM irc gurus.
     
  20. Offline

    chinchila

    i got Iconomy 6 and i have a problem no one can sell to the shop. just buy it when they try to sell appear ''could not pass player_interact''
     
  21. Offline

    Etsijä

    Well I'll be damned. This bugs me to no end. I put myself to "normal" and am able to create shops, although I shouldn't.

    I thought I understood the permissions system thoroughly but obviously I don't anymore :(
     
  22. Offline

    Etsijä

    Also after enabling your plugin yesterday on our server, the server did a severe "out of heap space" crash twice today. In the process, it created a ghost java process which our server provided needed to manually kill in order to bring the server back up. This is the relevant error:

    Code:
    2011-12-25 11:52:52 [SEVERE] Error occurred while enabling ChestShop v3.31 (Is it up to date?): Java heap space
    java.lang.OutOfMemoryError: Java heap space
        at java.util.jar.Manifest$FastInputStream.<init>(Unknown Source)
        at java.util.jar.Manifest$FastInputStream.<init>(Unknown Source)
        at java.util.jar.Manifest.read(Unknown Source)
        at java.util.jar.Manifest.<init>(Unknown Source)
        at java.util.jar.JarFile.getManifestFromReference(Unknown Source)
        at java.util.jar.JarFile.getManifest(Unknown Source)
        at sun.misc.URLClassPath$JarLoader$2.getManifest(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$100(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$100(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Unknown Source)
        at org.sqlite.Conn.open(Conn.java:122)
        at org.sqlite.Conn.<init>(Conn.java:57)
    2011-12-25 11:52:52 [SEVERE]     at net.minecraft.server.ThreadCommandReader.run(ThreadCommandReader.java:33)
    2011-12-25 11:53:30 [SEVERE] java.lang.OutOfMemoryError: Java heap space
    2011-12-25 11:53:48 [SEVERE]     at java.io.BufferedOutputStream.<init>(Unknown Source)
    2011-12-25 11:53:48 [INFO] [ChestShop] Essentials 2.2 loaded.
    2011-12-25 11:53:48 [SEVERE]     at net.minecraft.server.NetworkManager.<init>(NetworkManager.java:56)
    2011-12-25 11:53:48 [SEVERE]     at net.minecraft.server.NetLoginHandler.<init>(NetLoginHandler.java:27)
    2011-12-25 11:53:59 [SEVERE]     at net.minecraft.server.NetworkAcceptThread.run(SourceFile:49)
    Now I'm not necessarily saying ChestShop was the one guilty for this, but the error does seem to suggest so. Could you please take a look at this, Acrobot?
     
  23. Offline

    Hasteman

    Ya, I have the same exact problem as you. Please help.
     
  24. Offline

    MatrixJ21

    ------------------------------
    | MatrixJ21 |
    | 1 |
    | B 1 |
    | Dirt |
    ------------------------------

    I can't remember what event triggered that output, but I was in creative if that helps you at all.
     
  25. Offline

    Etsijä

    You might want to know that iConomy doesn't seem to be very actively maintained atm. If I understood correctly, the plugin author will be away for some months.
     
  26. Offline

    Acrobot

    @MatrixJ21
    Hmm, yeah. Maybe creative causes it.
    I'll try it, thanks.

    @Hasteman
    @chinchila
    Please post the exact error?
    If you're using Pail, just go to server.log and find the latest error, please.

    @Etsijä
    Hmm, no clue. As you can see, there isn't any of my code in the error message :/
    It is probably connected to the database stuff, I'd recommend that you turn it off for a moment.
     
  27. Offline

    Etsijä

    OK thanks. It might actually be LogBlock causing these...it is frustrating to try and find out the reasons for crashing, since I am by no means a Java expert, so cannot even read those error messages. And Bukkit server doesn't tell the user a lot when it crashes...it would help if I could turn on some sort of extra debugging messages in the logfile.
     
  28. Offline

    Hasteman

    Ok, I figured it out.... you're gonna laugh in my face for this but I was testing the chests too close to spawn for defaul members to use >.> You could right-click the sign but clicking made the server think you were "destroying" the sign so if prevented it's use XD

    In short, I figured it out and thank you for the fast response and merry christmas
     
  29. Offline

    tommy3579

    - CraftBukkit
    version 1.0.1 R1
    - ChestShop version 3.3.1
    - Your economy plugin iConomy
    - Have you got any Permission plugin? GroupManager
    Before I installed Towny Advanced, it worked Fine. But after, Theres a message saying "Cannot Sell Here/Cannot Buy Here" HELP
     
  30. Offline

    Acrobot

    @tommy3579
    Cannot sell/buy here means that your 3rd sign line is wrong
    It's either (B and S can be on either side)
    B 5
    S 5
    B 5:5 S

    @Hasteman
    Hah, no problem :)
    Merry Christmas to you too :)
     
  31. Offline

    Rasmu1996

    I know this is gonna sound noobish but i cant make a shop to sell pants(leather,iron etc), all item IDs i´ve tried has been "invalid".
    can somebody please help?
     

Share This Page