ChestShop (iConomyChestShop)
Acrobot released his first Android game, would you mind giving it a go?
ChestShop
A simple, yet very powerful system for making physical shops using signs and chests.
It's never been that easy to create shops! With features like shop protection and anti-lag protection, you won't have to worry about your server's economy anymore!
"Just works"! ChestShop supports almost all economy plugins by using Vault!
(Versions above 3.9.2 also support economy plugins using the Reserve API)
Some known compatible and incompatible economy plugins.
Please check if there are newer development builds before reporting issues!
If you are upgrading from a previous version of ChestShop please make sure to always read the warnings in the file's changelog!
The plugin by default submits anonymous stats about your server (player count, plugin/server version and type) to a public statistics websites (mcstats.org and bstats.org) in order to provide the developers with usage information. If you wish to opt out, you can do so in the PluginMetrics/config.yml and bstats/config.yml files. It also features an auto-update feature, which can be turned off in the config.
Frequently Asked Questions
Permissions
User-made tutorials
Download the latest stable version
Download the latest development version
Download 1.12.2 version
Download 1.8.8 version
Download older versions
API for plugin developers
Source code on GitHub
Crowdin Localization Project
Thread on Bukkit forums
IRC chat (#chestshop on irc.spi.gt)
Discord Channel Joining through that invite auto subscribes you to important update notifications, if you don't want that use this invite.
bStats metrics
Additional modules for ChestShop:
ChestShop LegacyIds - allows usage of numeric and old pre 1.13 string IDs on signs
Notification module - to use with Notifications plugin (outdated)
Towny module - to use with Towny plugin
ChestShop Notifier - records all sales, even when the player is offline (Maintained by Phoenix616)
ChestIcon - Icons for Chests, just like the Showcase plugin! (User-made, broken on newer versions)
Libelula Auto Shop - easy creation of admin shops, using Essentials (User-made)
ChestShopLimiter+ - limits the number of shops per player (User-made)
ChestShopLogger - log and search through available shops via a database (User-made)
ChestShopConfirmation - confirmation screen before buying (User-made)
SearchChestShop - search for shops selling certain items (User-made)
Using shops
It's easy! Just right-click the sign to buy, left-click to sell. (You can configure the buttons in the config file!)
How to create a shop
Player shop
Place a chest on the ground | |
Place a sign 1 block away from the chest (for example, above it) | |
On the sign, write: | ![]() |
Leave the first line empty. It will be automatically filled with your name by the plugin (if you have the permission ChestShop.admin then you can create shops with the names of other players) |
|
Second line is the amount of items to buy or sell | |
Third line is a combination of buy and sell prices. You need to have a price indicator (like 'B' - price that will apply to items BOUGHT by PLAYERS - or 'S' - the SELL price) near the price - the prices are separated by a colon (:) |
Some of the possible price combinations: "B 5:5 S", "B 5", "S free" |
The forth line will hold the id/name of the item. Write ? on the sign and the item will be autofilled with the one from the chest or you can click on the sign with the item afterwards. Optionally you can put the actual name on it. You can find out the name of the item you're holding by doing /iteminfo |
|
Resulting Shop | ![]() |
A person can buy 64 diamonds for 10 dollars and sell them back for 5 dollars from Phoenix616 |
If you want you can also take a look at this video tutorial.
Admin Shop - shop with unlimited items
Firstly, you've got to be sure that you've the ChestShop.admin permission or that you are an OP. To make an Admin Shop, simply put "Admin Shop" (configurable in config.yml) on the first line of the sign when creating the shop. Admin Shops do not require a chest!
Translations
- /iteminfo - Get information about the item in your hand
- /iteminfo <id/name> - Get information about the item with the given id or name
- /shopinfo - Get information about the looked-at shop
- /csgive <itemcode> [<amount>] [<player>] - Give item with a unique ChestShop code to a player
- /cstoggle - Toggle buy and sell notificiation messages
- /chestshop version - Display the ChestShop version
- /chestshop reload - Reload the ChestShop config and translation messages. (This might not reload some features)
- /csaccess - Toggles ability to buy/sell on shops while having admin/access permissions and normally being ignored
Permission nodes
Description | ||
---|---|---|
ChestShop.shop.* | shop creation and buying/selling - it contains: | |
ChestShop.shop.create.* |
create all types of shops |
|
ChestShop.shop.buy | buy any item from shop | |
ChestShop.shop.sell | sell any item to shop | |
ChestShop.mod | open any shop chest | |
ChestShop.admin | open any shop chest, destroy stores, create (admin) shops |
A full list of permission nodes
Configurations
Useful tips by players
How not to get bankrupt | A customisable price table |
Alternative price table |
Compatibility
ChestShop directly hooks into the following plugins to provide additional functionality:
- AuthMe (and forks like AuthMe Reloaded)
- WorldGuard
- Residence
- LWC (and forks like LWCX and Modern-LWC)
- Lockette
- LockettePro
- Deadbolt
- SimpleChestLock
- OddItem
- Heroes
- ShowItem
Metrics
This resource sends metrics data to McStats and bStats. You can opt-out of metrics for all plugins on your server by changing the settings in the PluginMetrics/config.yml and the bStats/config.yml file if you don't want any data to be send.
More info
Even more information can be found in the old plugin thread on the forums.
Got an error or suggestion?
Simply submit a ticket here!
If you have a Github account and have coding knowledge you can also directly open an issue on Github. (You can also fund them via IssueHunt!)
If you just need general help feel free to ask in the comments or join the #chestshop channel on Spigot's IRC network (irc.spi.gt, webchat)
Has ChestShop helped you or your server?
If you want to thank the team in a more materialistic way, feel free to donate or buy Phoeni616 a beer! :)
A shout-out to Acrobot's friend:
We believe that the music he makes is really stunning - you can decide it for yourself!
If you have an issue then please open a ticket on GitHub or post on SpigotMC.org for faster replies to questions!
@Rowtag87 You know, it's kind of hard to make ChestShop 4 :P
@ObsceneNameHere Just do /iteminfo The line on sign is right - Potion:8258 is the potion of swiftness.
@deleted_7536780 Error in database, doesn't really matter. It just happens.
@Rowtag87
No world guard.. areas.. You need to select your own areas from the chestshop plugin..
WorldGuard area makings are restricted to sertain ppl (ops/admins) in most of the servers out there..
Can u implement WorldGuard Shop Area soon as possible? waiting for it long time ago :D
If I wanted to sell a potion of switftness what would I put on the last line? the ID 375:8258 Doesnt work, just translates to Potion:8258
07:29:58 [SEVERE] java.util.ConcurrentModificationException
07:29:58 [SEVERE] at java.util.ArrayList$Itr.checkForComodification(Unknown Source)
07:29:58 [SEVERE] at java.util.ArrayList$Itr.next(Unknown Source)
07:29:58 [SEVERE] at com.avaje.ebeaninternal.server.core.DefaultServer.save(DefaultServer.java:1764)
07:29:58 [SEVERE] at com.avaje.ebeaninternal.server.core.DefaultServer.save(DefaultServer.java:1751)
07:29:58 [SEVERE] at com.Acrobot.ChestShop.DB.Queue.run(Queue.java:24)
07:29:58 [SEVERE] at org.bukkit.craftbukkit.scheduler.CraftWorker.run(CraftWorker.java:34)
07:29:58 [SEVERE] at java.lang.Thread.run(Unknown Source)
07:30:28 [SEVERE] java.net.SocketException: Socket closed
07:30:28 [SEVERE] at java.net.SocketOutputStream.socketWrite(Unknown Source)
07:30:28 [SEVERE] at java.net.SocketOutputStream.write(Unknown Source)
07:30:28 [SEVERE] at java.io.BufferedOutputStream.flushBuffer(Unknown Source)
07:30:28 [SEVERE] at java.io.BufferedOutputStream.flush(Unknown Source)
07:30:28 [SEVERE] at java.io.DataOutputStream.flush(Unknown Source)
07:30:28 [SEVERE] at net.minecraft.server.NetworkWriterThread.run(SourceFile:104)
07:30:28 [INFO] [MCBans] ginger_ninja1432 has disconnected!
How do I make that last forever?
chestshop/website.html
And is it due the Odd items why ChestShop sometimes says "This is not your Chest" <- Error output that it gives is not that, but betrays the message
@sondreutheim Yeah, but not in ChestShop 3. I am working on ChestShop 4 - the best version of CS. It will be modular, so you'll be able to do it :)
@JoneKone Yeah :) I'm from Poland, 24h clock here too :) Nice, congrats :)
First: Love your plugin!
But would it be possible to utilize dynamic prices? Say the price would go up or down depending on how filled the chest is?
@Acrobot
SLEEP!!! NOOOOo it's 3:00 aclock ... 24h time here in Finland :) no sleep for evil Admins..
Btw currently our server is the biggest In the world..
150 player cap and we just oppened a new world.. HUH!
Survival Economy server.
@Qx2 Sorry - but that's iConomy 6's issue (com.iCo6). It probably has something to do with you using InventoryDB, but I don't know more.
@JoneKone Hmm, it's a newer version. I'll try it later and tell you how it worked. (Now I'm going to sleep :P)
<<code>>
00:32:56 [SEVERE] Could not pass event PLAYER_INTERACT to ChestShop java.lang.ArrayIndexOutOfBoundsException: 100 at com.iCo6.IO.InventoryDB.readInventory(InventoryDB.java:106) at com.iCo6.IO.InventoryDB.getBalance(InventoryDB.java:81) at com.iCo6.system.Queried.getBalance(Queried.java:277) at com.iCo6.system.Holdings.getBalance(Holdings.java:22) at com.iCo6.system.Holdings.add(Holdings.java:55) at com.nijikokun.register.payment.forChestShop.methods.iCo6$iCoAccount.add(iCo6.java:115) at com.Acrobot.ChestShop.Economy.add(Economy.java:25) at com.Acrobot.ChestShop.Shop.Shop.buy(Shop.java:73) at com.Acrobot.ChestShop.Shop.ShopManagement.buy(ShopManagement.java:24) at com.Acrobot.ChestShop.Listeners.playerInteract.onPlayerInteract(playerInteract.java:74) at org.bukkit.plugin.java.JavaPluginLoader$11.execute(JavaPluginLoader.java:335) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:58) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:339) at org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:178) at net.minecraft.server.ItemInWorldManager.interact(ItemInWorldManager.java:266) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:593) at net.minecraft.server.Packet15Place.a(SourceFile:39) 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)<</code>>
When trying to buy.
Version plugin 3.31
bukkit 1611
3.58 Recomented Build
@patey5 Be sure you are running 3.31
If you aren't, update. If you are, please post a ticket with a screenshot of the chest and the sign :) @JoneKone Hm... And LWC version? I tested it with LWC v3.54
@Acrobot
must be the item ids, the out of stock i confirmed, full chest and it says out of stock
@Acrobot
3.31 and 3.30
@patey5 You can't buy/sell here = The sign is wrong. And for out of stock errors - are your users sure about that?
@JoneKone Which ChestShop version?
shops on my server are claiming out of stock when the chests are full, and at random telling users "you can't buy here" (or sell)
no errors, and don't think its my config but here it is:
http://pastebin.com/H0M3ELnQ
Few problems
I had the directory writen with non capital letters (SOLVED!) my bad =)
For some reason it won't do this... I gave the www directory 755 perms.
2011/12/21 05:39:38 Couldn't generate statistics page!
2011/12/21 05:40:38 Couldn't generate statistics page!
Config file here.
http://pastebin.com/wspGNCMt
The second is that some ppl can't put signs on their chests when it is lwc protected to them + they are in worldguard area members.
@MonsterTKE
@IdealIdeas
Yeah, but you can simply make:
Admin Shop
1
S 100
Diamond
@Rowtag87
Sorry, not yet possible :/
@IdealIdeas
Idealldeas
1
B 0:100 S
Diamond
If you are talking about restricting the entire plugin to just buying, remove the Buying accociated perm nodes.