ShopChest 1.12.3

Let your players create their own nice-looking shops to sell their stuff to other players!

  1. EpicEric
    Tested Minecraft Versions:
    • 1.8
    • 1.9
    • 1.10
    • 1.11
    • 1.12
    Source Code:
    https://github.com/EpicEricEE/ShopChest
    Contributors:
    EpicEric
    [​IMG]

    This resource depends on Vault. If you don't have Vault and an economy plugin which supports it installed, ShopChest will disable itself!

    This resource uses bStats. You can view the statistics here.

    If you want your video of this resource to be listed on this page here, please let me know! ;)

    Please rate if you like it. If you get any errors or if you have questions please be sure to tell me in the discussion thread or at the GitHub issue tracker before creating a review! I will read and reply to all of them!
    And please read the FAQ at the bottom of this page before reporting issues!


    You can also find this resource on BukkitDev here.

    ShopChest is my new Shop resource. It's very simple since you don't need a command to buy something but just have to click the chest or hologram, if there's a shop.
    Creating and removing a shop is also very simple. You just have to type one command.


    [​IMG]

    Features:
    • Very simple shop interaction and creation
    • Visually pleasing with hologram and floating item
    • Normal shops and Admin shops
    • No struggle with complex attributes or flags. It just copies the item in your hand
    • Shops are protected from explosions and hoppers
    • Floating items are protected from water, lava, pistons, zombies, getting picked up, despawning and ClearLag
    • You can translate everything. You can use the language files of Minecraft to translate the name of items, enchantments, potions, effects, etc. into your language
    • Support for MySQL and SQLite
    • Supports almost every protection plugin available including WorldGuard, Towny, PlotSquared, LWC, etc.
    • Vault integration for economy and permissions
    • Extensive list of configurable options

    How to:
    1. Make sure you have permission
    2. Make sure you have enough money
    3. Make sure you hold the item you want to sell in your hand
    4. /shop create <amount> <buy-price> <sell-price>
    5. You can set buy-price or sell-price to 0 to disable buying or selling
    6. Click the chest which should be the shop
    7. If not already done, put the items inside the chest
    1. Make sure you have permission
    2. Make sure you have enough money
    3. Make sure you hold the item you want to sell in your hand
    4. /shop create <amount> <buy-price> <sell-price> admin
    5. You can set buy-price or sell-price to 0 to disable buying or selling
    6. Click the chest which should be the shop
    7. You do not need to put items inside the chest!
    1. /shop remove
    2. Click the shop you want to remove
    1. Make sure you have permission
    2. /shop removeall <player>
    1. /shop info
    2. Click the shop you want to retrieve information about
    1. Make sure you have permission
    2. /shop reload
    1. Make sure you have permission
    2. /shop update
    1. Make sure you have permission
    2. All comments in the configuration file will be deleted!
    3. /shop config <set|add|remove> <property> <value>
    1. Make sure you have permission
    2. Make sure you have enough money
    3. Right-Click the shop to buy the item(s)
    4. Look at the chat for information about your purchase
    1. Make sure you have permission
    2. Make sure you have enough items
    3. Left-Click the shop to sell your item(s)
    4. Look at the chat for information about your sell
    1. If the shop is not yours, make sure you have permission
    2. /shop open

    Permissions:
    shopchest.*
    Gives access to all the below ShopChest permissions.
    shopchest.create:
    Allows the player to create a buy and sell shop for all items
    shopchest.create.buy:
    Allows the player to create a buy-shop.

    shopchest.create.sell:

    Allows the player to create a sell-shop.

    shopchest.create.admin:
    Allows the player to create an admin shop
    shopchest.create.protected:
    Allows the player to create a shop on a protected chest
    shopchest.buy:
    Allows the player to buy something
    shopchest.sell:
    Allows the player to sell something
    shopchest.openOther:
    Allows the player to open other players' shops
    shopchest.remove.other:
    Allows the player to remove other players' shops
    shopchest.reload:
    Allows the player to reload the shops
    shopchest.remove.admin:
    Allows the player to remove an admin shop.
    shopchest.notification.update:
    Allows the player to get update notifications on join
    shopchest.update:
    Allows the player to check for updates

    shopchest.config:
    Allows the player to change configuration values per command
    shopchest.extend.other:
    Allows the player to extend other players' shops

    shopchest.extend.protected:
    Allows the player to extend shops into a protected region of WorldGuard or Towny
    shopchest.external.bypass:
    Allows the player to use shops in WorldGuard regions that deny shop use

    Language Files
    You can download additional language files here.
    There, you can also upload your own translations.

    Config:
    Code (YAML):
    # ===============================================
    # ====== Configuration File of 'ShopChest' ======
    # ===============================================
    #
    # Lines starting with '#' are comments and are ignored by the server.

    # Set the main command you have to enter to manage the shops
    # (default: "/shop ...")
    main-command-name
    : "shop"

    # Set the language of the item-, enchantment-, potion- and arrow-effect names
    # The value must equal to the name of one of a file in the 'lang' folder
    # (without the '.lang' extension)
    language-file
    : "en_US"

    # Set whether the floating shop items on top of the chest should be shown
    show-shop-items
    : true

    # Set the quality (speed) for hologram and item updating.
    # Valid values are (from slowest to fastest):
    # 'SLOWEST', 'SLOWER', 'SLOW', 'NORMAL', 'FAST', 'FASTER', 'FASTEST'
    # The faster the value, the more performance will be used, which
    # may lead to TPS loss.
    update-quality
    : NORMAL

    # Set the item with which a player can click a shop to retrieve information.
    # You can set this to an empty string to disable this feature.
    shop-info-item
    : "STICK"

    # Set whether interaction with the hologram should be enabled.
    # If set to true, a player can do the exact same thing with the
    # hologram, as with the chest. You can even open the chest if you
    # are the vendor or have permission.
    enable-hologram-interaction
    : true

    # Set whether a debug log file should be created.
    # The file may get large! Please enable this setting when reporting bugs.
    enable-debug-log
    : false

    # Set whether WorldGuard integration should be enabled
    # Of course, this only works if WorldGuard is installed
    enable-worldguard-integration
    : true

    # Set whether Towny integration should be enabled
    # Of course, this only works if Towny is installed
    enable-towny-integration
    : true

    # Set whether AuthMe integration should be enabled
    # Of course, this only works if AuthMe is installed
    enable-authme-integration
    : true

    # Set whether PlotSquared integration should be enabled
    # Of course, this only works if PlotSquared is installed
    enable-plotsquared-integration
    : true

    # Set whether uSkyBlock integration should be enabled
    # Of course, this only works if uSkyBlock is installed
    enable-uskyblock-integration
    : true

    # Set whether ASkyBlock integration should be enabled
    # Of course, this only works if ASkyBlock is installed
    enable-askyblock-integration
    : true

    # Set whether IslandWorld integration should be enabled
    # Of course, this only works if IslandWorld is installed
    enable-islandworld-integration
    : true

    # Set whether GriefPrevention integration should be enabled
    # Of course, this only works if GriefPrevention is installed
    enable-griefprevention-integration
    : true

    # Set whether AreaShop integration should be enabled
    # Of course, this only works if AreaShop and WorldGuard is installed
    enable-areashop-integration
    : true

    # Set whether the vendor of a shop should get messages when players
    # buy or sell something from/to his shop or if his shop is out of stock
    enable-vendor-messages
    : true

    # Set whether only the shops a player has in sight should be shown to him.
    # If set to false, every shop near the player (with the specified
    # distance) will be shown to him.
    only-show-shops-in-sight
    : true

    # Set whether only the shop a player is looking at should be shown to him.
    # This only has effect if 'only-show-shops-in-sight' is enabled
    only-show-first-shop-in-sight
    : true

    # Set whether the hologram's location should be fixed at the bottom,
    # so when it gets more lines, it won't interfere with the item or chest,
    # but goes higher.
    hologram-fixed-bottom
    : true

    # Set the amount (may be negative) a hologram should be lifted in the y-axis.
    # A value of '1' equals to one block, and a value of '0.25' is equal to the
    hologram-lift
    : 0

    # Set whether players should be allowed to sell their items, even if the
    # amount they have, is lower than the amount, the shop owner has set for the
    # given price, or if the inventory of the chest doesn't have enough space
    # for all the items, but only for a few, or if the player only has enough
    # money for a few items, but not for the amount, the shop owner has set.
    # When set to true, players may also buy items from a shop, even if the
    # amount of items in the chest is lower than the amount, the shop owner has
    # set for the given price, or if they don't have enough space in the
    # inventory for all of the items, but only for a few, or if the shop owner
    # doesn't have enough money to buy all of the items, the player wants to
    # sell. The price will be calculated correspondingly.
    # (If it's not clear enough, please let me know)
    auto-calculate-item-amount
    : false

    # Set whether prices may contain decimals (prices of existing shops will stay)
    allow-decimals-in-price
    : true

    # Set whether players should be allowed to sell/buy broken items
    allow-broken-items
    : false

    # Set whether the level of a potion or tipped arrow (if upgraded) should be
    # appended to the item name. If set to true, the level ("II") will be
    # displayed after the item name, but only if the item does NOT have a
    # custom name. If set to false, it will only be shown in the
    # shop info message.
    append-potion-level-to-item-name
    : false

    # Set whether shops should automatically be removed from the database if
    # an error occurred while loading e.g. when no chest is found at a
    # shop's location.
    # This might be useful if you're removing shop chests with WorldEdit,
    # resetting plots, or similar
    remove-shop-on-error
    : false

    # Set whether the mouse buttons should be inverted.
    # Default:
    # Right-Click -> Buy
    # Left-Click -> Sell
    invert-mouse-buttons
    : false

    # Set the maximal distance (in blocks) to the shop where the
    # player can see the hologram.
    maximal-distance
    : 2

    # Set the maximal distance (in blocks) to the shop where the
    # player can see the floating shop item.
    maximal-item-distance
    : 40

    # Set the price a player has to pay in order to create...
    # You can set this to 0 to disable costs.
    # Value MUST be a number (e.g. 1, 1.5, 2.75, ...)
    shop-creation-price
    :

      # ...a normal shop
      normal
    : 5

      # ...an admin shop
      admin
    : 0

    # Set whether the shop's chest should be protected by hoppers
    hopper-protection
    : true

    # Set whether the shop's chest should be protected by explosions
    explosion-protection
    : true

    # Set whether the buy price must be greater than or equal sell price.
    buy-greater-or-equal-sell
    : true

    # Set the minimum prices for each individual Item. Not per Stack, per single Item!
    # To add an item, follow the format below.
    # Important: You must have exactly 2 leading spaces in each line
    # You can find the item names in the 'item_names.txt' file.
    minimum-prices
    :
    # "STONE:1": 0.5
    # "DIAMOND_SWORD": 100

    # Set the maximum prices for each individual Item. Not per Stack, per single Item!
    # To add an item, follow the format below.
    # Important: You must have exactly 2 leading spaces in each line
    # You can find the item names in the 'item_names.txt' file.
    maximum-prices
    :
    # "STONE:1": 19.9
    # "DIAMOND_SWORD": 1000

    # Set the items of which a player can't create a shop.
    # To add an item, follow the format below.
    # Important: You must have exactly 2 leading spaces in each line
    # You can find the item names in the 'item_names.txt' file.
    blacklist
    :
    # - "STONE:1"
    # - "DIAMOND_BLOCK"

    # Set the events of AreaShop when shops on that region should be removed.
    # Important: You must have exactly 2 leading spaces in each line
    # Valid values are: DELETE, UNRENT, RESELL, SELL
    areashop-remove-shops
    :
     - "DELETE"
      - "UNRENT"
      - "RESELL"
      - "SELL"

    # Set whether the custom WorldGuard flags should be allowed by default
    # (true = Allowed by default, false = Denied by default)
    # This can, of course, be overridden in specific regions and is only
    # enabled if WorldGuard is installed and WorldGuard integration is enabled
    worldguard-default-flag-values
    :

      create-shop
    : false
      use-shop
    : false
      use-admin-shop
    : false

    # Set the types of Towny plots where shop creation should be allowed for...
    # Important: You must have exactly 4 leading spaces in each line
    # Valid values are:
    # RESIDENTIAL, COMMERCIAL, ARENA, EMBASSY, WILDS, SPLEEF, INN, JAIL, FARM
    towny-shop-plots
    :

      residents
    :
       - "COMMERCIAL"

      mayor
    :
       - "COMMERCIAL"

      king
    :
       - "COMMERCIAL"

    # Configuration of the database, where everything is stored.
    # Shops are found in the table 'shop_list', and logged economy
    # transactions are found in the table 'shop_log'
    database
    :

      # Select the type of database which should be used
      # Either use 'SQLite' or 'MySQL'. Otherwise you will break the plugin!
      type
    : "SQLite"

      # If the specified type is 'MySQL', here you configure the...
      # (You can leave this empty if you're using SQLite)
      mysql
    :

        # ...interval in seconds, when the database should be pinged,
        # to keep the connection alive
        # You can set this to '0' to disable the ping interval
        ping-interval
    : 3600

        # ...hostname where the database is accessible
        hostname
    : ""

        # ...port where the database is accessible (default: 3306)
        port
    : 3306

        # ...database you want to use
        database
    : ""

        # ...username you are going to login with
        username
    : ""

        # ...password you are going to login with
        # Be careful, as anyone who can read this file, can read the password!
        password
    : ""

    # Shop limits are handled with permissions.
    # A player with permission "shopchest.limit.X" has a limit of X shops,
    # a player with permission "shopchest.limit.*" does not have a shop limit.
    shop-limits
    :

      # Set whether admin shops should be excluded of the shop limits.
      # If set to true, admin shops won't be added to a player's shop count.
      exclude-admin-shops
    : true

      # Set the amount of shops that anyone who doesn't have a
      # specific permission may have.
      # If you don't want the players to have a limit by default
      # set the value to -1.
      default
    : 5

    Servers
    If you want your server to be listed here, please let me know.

    Videos

    If you want your video to be listed here, please let me know.
    Version 1.11.1

    Version 1.8.0-SNAPSHOT-2
    Version 1.4.3

    Developer API

    ShopChest has a maven repository. To add it to your project, insert the following code in the pom.xml:
    Code (XML):
    <repositories>
        <repository>
            <id>epiceric-repo</id>
            <url>https://epicericee.github.io/ShopChest/maven/</url>
        </repository>
    </repositories>

    <dependencies>
        <dependency>
            <groupId>de.epiceric</groupId>
            <artifactId>ShopChest</artifactId>
            <version>1.12</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>
    There are a few events you can catch with this API. The javadoc can be found here.

    FAQ
    • I cannot buy or sell anything, I am getting You don't have permission to buy/sell something here
      • If you have WorldGuard or PlotSquared installed, you need to allow or set the custom flags use-shop and use-admin-shop which are all denied (or set to owner) by default.
      • You can also grant permission shopchest.external.bypass that allows players to use shops in regions that deny shop use.
    • I cannot create a shop, I am getting You don't have permission to create a shop here
      • If you have WorldGuard installed and enabled its integration, you need to allow the custom flag create-shop which is denied by default.
      • If you have Towny installed and enabled its integration, a player can create shops only in plots with the configured type.
      • f you have PlotSquared installed, only players with a rank that allows shop creation (can be set per flag create-shop) are allowed to create shops.
      • If you have ASkyBlock, uSkyBlock or IslandWorld installed, a player can create shops only on islands where he/she is member or owner (or as set in the config).
      • If you have GriefPrevention installed, a player can create shops only in regions where he/she is allowed to open chests.
      • If you don't have any of them installed, you probably have a chest protection plugin installed (like Lockette or LWC) which denies players to open the chest. When players cannot open a chest, ShopChest will not allow them to create a shop there.
      • If you enable the debug log in the config (and reload or restart the server), you can read the reason why a player is not allowed in the debug.txt.
      • You can also grant permission shopchest.create.protected that allows players to create shops on every type of protected chest and in regions or plots that deny shop creation.
    • I am getting Could not find translation "..." in selected language file. Using default translation ("...") in the console
      • This means that the selected language file is not up to date and doesn't contain the localization of a specific message, item name or similar.
      • If you haven't changed anything in the selected language file, you can remove it so ShopChest creates a new and updated one.
      • If you have changed some entries in that file, you can either back up the changed entries, delete the file, let a new one be created and paste the entries back in, or add the missing values in the right format to the language file.
    • I am getting java.lang.NoSuchMethodError: com.intellectualcrafters.plot.flag.Flag.<init> in the console
      • Update PlotSquared to v3.5.0 or later
    You can download development builds here.
    If you want to take a look at source code of ShopChest, you can find it on GitHub
    here.

Recent Updates

  1. Fixes
  2. A few fixes
  3. Quickfix for ASkyBlock

Recent Reviews

  1. EnderCraftServer
    EnderCraftServer
    4/5,
    Version: 1.12.3
    ____________________________________________________

    Sehr tolles Plugin, es funktioniert auch fast alles, außer die
    Placeholder %BUY-PRICE% & %SELL-PRICE%, Sie werden
    gar nicht angezeigt, weder in Chat noch im Hologramm.
    Dadurch ist das Plugin für mich leider unbrauchbar =(
    Wäre schön, wenn dieser Bug gefixt wird! <3
    Ich verwende einen Spigot 1.12.2 Server.

    MfG Kev ~EnderCraft
    ____________________________________________________
  2. ZacuXDMG
    ZacuXDMG
    4/5,
    Version: 1.12.3
    cant get permissions to work for non op players but otherwise its the best ive used so far.
  3. DrOreo002
    DrOreo002
    2/5,
    Version: 1.12.3
    Good plugin BEFORE. But yeah makes my server crashed.., idk why but don't think that I'm wrong I can read error logs btw :/, and it caused by a class on this plugin.

    Overall I do not recommended this on big servers.
  4. Infro
    Infro
    4/5,
    Version: 1.12.3
    Very customisale plugin, but I think it lacks some of these features:
    -Create a shop without having an item in hand (for some cases when players don't have something they want to buy)
    -Create AdminShops without chests(they occupy too much place in my spawn shop)

    Please, leave a note if you will be up to adding these
  5. kumasro
    kumasro
    4/5,
    Version: 1.12.3
    Can you add support for shop multi-owners ?
    It will be usefull for players, playing in groups.
    something like
    /shop addowner <username>
    /shop removeowner <username>
    And money from shop will send to all owners divided by count of owners? Or add percentage...
    /shop ownerslist (Shows names with percentage)
    /shop setpartfor <username> <percentage>
    /shop autopart (automatic divide percentage between owners)
    ..............
    Good idea ? :)
  6. Sparryx
    Sparryx
    4/5,
    Version: 1.12.3
    Hello,

    I have a problem, I would like to create a store but the problem is that I have TheNewEconomy and this plugin offers a feature (null and basic) store, but the problem is that it also uses the function / shop!
    How to make the function / shop only work on your plugin?

    Thanks in advance, this plugin looks great!
  7. xSnitch_
    xSnitch_
    5/5,
    Version: 1.12.3
    Hey,
    how can i make my shop at this example?
    line 1:
    16x Coal
    line 2:
    Buy 100 Dollars
    line 3:
    Sell 50 Dollars

    I hope you can help my, thanks!
  8. TikyMEMA__
    TikyMEMA__
    5/5,
    Version: 1.12.3
    BEST SHOP..............................................................................
  9. SkylordDuck
    SkylordDuck
    5/5,
    Version: 1.12.3
    This is an amazing, easy to use chest shop plugin. I did not find a single bug in the plugin. That being said, I do wish enchanted books were better labeled.
  10. Emperortang
    Emperortang
    5/5,
    Version: 1.12.3
    Wonderful. Straightforward and makes intuitive player shops.

    Is there a way to limit how much a merchant is willing to buy? For example, if I'm looking to buy 3 stacks of cobblestone for $25 a stack, I don't want to set up a cobblestone shop then have someone come by and sell me 27 stacks of cobble for $675 instead of $75. The only other way I can think around this is fill up the other empty slots with something, but there should be a more concrete way. Just a question and suggestion, still five stars for what it has.