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. 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.
  2. Patfreeze
    Patfreeze
    5/5,
    Version: 1.12.3
    Very nice plugin... Easy to use and fast to create a hug admin shop place. Good work!
  3. DrOreo002
    DrOreo002
    4/5,
    Version: 1.12.3
    Good but. I'll not recommended it to anyone that having 1gb ram on their server or bad processor. Because its causing serious lag spike.., and I got like 50% tps loss from 20.0 to 10 or even 13 when player joining on my server.

    But overall its a good plugin :)
  4. KeplerLabs
    KeplerLabs
    3/5,
    Version: 1.12.3
    Best shop plugin, except it creates heavy lag when players are in combat on my case, tried to disable every others plugins but apparently shopchest is the cause, once i disable it the lag goes away.
  5. vinhlglgle
    vinhlglgle
    5/5,
    Version: 1.12.3
    Update language vietnam plssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss
  6. dwgr8ergolfer
    dwgr8ergolfer
    5/5,
    Version: 1.12.3
    Can you add a notification system so users can check who purchased items from there shop when they are offline? Love the plugin! 5/5
    1. EpicEric
      Author's Response
      The vendor will get a message containing the revenue he made while being offline. If every purchase or sell was added to the message, it would be too stuffed.
  7. Lokiro
    Lokiro
    5/5,
    Version: 1.12.3
    nice plugins its amazing

    Can you update the french language
    or somebody can update it ?
  8. Federion
    Federion
    5/5,
    Version: 1.12.3
    Works fine with spigot 1.12. Fonctionne très bien sur serveur spigot 1.12 avec worldguard 6.2.1 ! :D
  9. Kequo
    Kequo
    5/5,
    Version: 1.12.3
    An incredible plugin that is easy to use with quite an awesome developer behind the works. I would love a premium version of this plugin to donate towards EpicEric and his development of plugins.
  10. astrayalien
    astrayalien
    5/5,
    Version: 1.12.3
    Love this plugin. Does everything I want in a shop. I had to set some WorldGuard flags to make it work, but that sort of thing is expected. I would have paid for this plugin.