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.esper.net)
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)
ChestShopTools - Enchantment info signs and empty shop notifier (Maintained by Phoenix616)
Adda - Adds item display icons for shops above the chest! (User-made)
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)
ChestShopListing - Stores shops and transactions in SQL; adds related features including in-game search (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!
Hey there :)
Firstly - Thanks for a great plugin. Secondly, everyone on my server with the exception of ONE player can write and use signs. He can interact with signs, buy and sell from others, but he cannot create his own signs.
Any idea why this could be? We've deleted his playerdata e.t.c - we DO have LWC installed, and I made the assumption this could be interfering, although it doesn't affect anyone else.
Thanks in advance!
Sparkz
http://pastebin.com/C2u3GdTZ
Hello I have problem with mySQL. I installed CS+CS Notifier+db connector.
Works fine, when I join game I have info about buy/sell.
Problem is because I have errors in logs:
http://pastebin.com/mTpEYfyB
Is there a way to color the format of the sign like the name of the shop show up in gold for regular shops, and Blue for admin shops. And quantity to show in white Buy Prices show in Lime Green The B and S would show up in Red and the Item would be black or whatever.
@JesseWayne21 Exactly what you are saying. Apple's Java adds garbage unicode characters into the strings. Solution - press backspace a few times before typing on the sign.
@Sitmobedaf Sorry, but you ommited the most important part of the log.
@katana322 Please recreate the local.yml file (delete it, it will auto-regenerate). (plugins/ChestShop/local.yml)
@hutt132 Mac issue, look to the top of this comment.
For some reason when i try to make shops wiht ChestShop on my server nothing happens and i dont know what to do please help! My Economy plugin is Iconomy and im runnign 1.8.1
[Server thread/ERROR]: Could not pass event InventoryMoveItemEvent to ChestShop v3.8.1 org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:302) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95] at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95] at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:509) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:494) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95] at net.minecraft.server.v1_7_R4.TileEntityHopper.tryTakeInItemFromSlot(TileEntityHopper.java:463) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95] at net.minecraft.server.v1_7_R4.TileEntityHopper.suckInItems(TileEntityHopper.java:429) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95] at net.minecraft.server.v1_7_R4.TileEntityHopper.i(TileEntityHopper.java:251) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95] at net.minecraft.server.v1_7_R4.TileEntityHopper.h(TileEntityHopper.java:228) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95] at net.minecraft.server.v1_7_R4.World.tickEntities(World.java:1516) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95] at net.minecraft.server.v1_7_R4.WorldServer.tickEntities(WorldServer.java:516) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95] at net.minecraft.server.v1_7_R4.MinecraftServer.v(MinecraftServer.java:706) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95] at net.minecraft.server.v1_7_R4.DedicatedServer.v(DedicatedServer.java:289) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95] at net.minecraft.server.v1_7_R4.MinecraftServer.u(MinecraftServer.java:584) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95] at net.minecraft.server.v1_7_R4.MinecraftServer.run(MinecraftServer.java:490) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95] at net.minecraft.server.v1_7_R4.ThreadServerApplication.run(SourceFile:628) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95] Caused by: java.lang.ClassCastException
The error occurs more than 30 times per second, so the log 5-9Gb takes 24 hours.
Hello Acrobot,
I posted a bit ago saying that I have been having trouble making signs suddenly. It seems that this is an issue with mac users only. I have confirmed it with several other mac users. Any chance you can look into this? I think the plugin is adding letters/symbols to the signs that are invisible because of what I see in console.
Thanks, JesseWayne21
Hey, I run a small Minecraft 1.7.10 Bukkit server and I use this plugin, well I just installed it today actually and I created an admin shop and bought from it and I got this: ?a[Shop] ?rYou bought 1 Diamond from Admin Shop for $0. It was all in white text and the colour codes didnt do anything (?a, ?r) and I was wondering if it was possible to change the config or something to fix the colour codes.
@hutt132
I have this issue. After the Update to 1.8.1 I no longer am able to make shop chests on any server. Please help. My MC in-game-name is "carebcito"
When some of my players try to make a shop, the sign just places as a regular sign and not a ChestShop sign. It only does that for certain player, but for everyone else it is fine. There are no errors.
Oh so if someone else use my shop it'll work normal?
@owca217 if you own the shop that's normal behavior.
I have a little problem. When i use rightclick on sign, it's opens a box, please help me ;_;
[10:08:39 ERROR]: Error occurred while enabling ChestShop v3.7.19 (Is it up to date?) java.lang.NoClassDefFoundError: com/sk89q/worldguard/protection/association/RegionAssociable at com.Acrobot.ChestShop.Dependencies.initializePlugin(Dependencies.java:83) [?:?] at com.Acrobot.ChestShop.Dependencies.loadPlugins(Dependencies.java:25) [?:?] at com.Acrobot.ChestShop.ChestShop.onEnable(ChestShop.java:107) [?:?] at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:321) [spigot.jar:git-Spigot-e497721-a1ce164] at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:335) [spigot.jar:git-Spigot-e497721-a1ce164] at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:405) [spigot.jar:git-Spigot-e497721-a1ce164] at org.bukkit.craftbukkit.v1_8_R1.CraftServer.loadPlugin(CraftServer.java:355) [spigot.jar:git-Spigot-e497721-a1ce164] at org.bukkit.craftbukkit.v1_8_R1.CraftServer.enablePlugins(CraftServer.java:315) [spigot.jar:git-Spigot-e497721-a1ce164] at net.minecraft.server.v1_8_R1.MinecraftServer.q(MinecraftServer.java:402) [spigot.jar:git-Spigot-e497721-a1ce164] at net.minecraft.server.v1_8_R1.MinecraftServer.k(MinecraftServer.java:370) [spigot.jar:git-Spigot-e497721-a1ce164] at net.minecraft.server.v1_8_R1.MinecraftServer.a(MinecraftServer.java:325) [spigot.jar:git-Spigot-e497721-a1ce164] at net.minecraft.server.v1_8_R1.DedicatedServer.init(DedicatedServer.java:211) [spigot.jar:git-Spigot-e497721-a1ce164] at net.minecraft.server.v1_8_R1.MinecraftServer.run(MinecraftServer.java:494) [spigot.jar:git-Spigot-e497721-a1ce164] at java.lang.Thread.run(Thread.java:745) [?:1.8.0_25]
Plugin isnt starting for me
Hi, Sorry my last message wasn't the clearest. I use bungee , I have bungee config set to online mode true and IP forwarding true , my spigot is set to offline mode but it does receive the true UUID as it should so the UUID is not an issue, it is correct. A player has a chestshop already created in their old name and when they change their name they cannot use it or open it or delete sign from it as they are not owner, currently I have to give staff permissions to break their old signs for them , its hard to test as its only when someone changes name. I am using chestshop v 3.8.1 and with above settings it should simply work but doesn't.
So I have just checked the users.db and can see all the users and their uuids , I checked mine and it is indeed set with true uuid so this is definitely right , a player just changed their name and in the database their name does not exist after both old name or new name , I assume it should always be in there so why was this one not ? Naturally they could not changed their signs and I have had to delete them fro them.
It's saying there is no items in my shop when shop players try to buy, when there is items in the chest. Some items like redstone will sell, when most others wont. Any idea what's causing that?
@Mcraftpete
If you enable ip-forward in your BungeeCord's config.yml and bungeecord in your spigot.yml you will get the real (online) UUIDs on your Minecraft server behind the Proxy and with that namechanges shouldn't be an issue.
@asmit119
That sounds like you either have offline UUIDs or your ChestShop's player database is corrupted. (If you are sure you already had online UUIDs try renaming it and letting ChestShop regenerate it)
@Mcraftpete
I use bungee as well, and the bungee config is set to online mode, however the server with it on it, is OFFLINE. But the UUID's do seem correct, however we have seen the same issue, at first it worked and now players with new names CANNOT use the new name on signs, but instead have to use their old name. I think this should be repairable yes? But indeed currently seeing an issue with bungeecoord.
latest error after updating to WE6, still using wg 5.9
[12:59:24 ERROR]: Could not pass event ProtectionCheckEvent to ChestShop v3.8.1 org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:305) [spigot-patched. jar:git-Spigot-fa7cbf9-59dd2dd] at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) [spigot-patched.ja r:git-Spigot-fa7cbf9-59dd2dd] at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [spigot-patched. jar:git-Spigot-fa7cbf9-59dd2dd] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) [spigot-patched. jar:git-Spigot-fa7cbf9-59dd2dd] at com.Acrobot.ChestShop.ChestShop.callEvent(ChestShop.java:452) [ChestShop.jar:?] at com.Acrobot.ChestShop.Security.canAccess(Security.java:36) [ChestShop.jar:?] at com.Acrobot.ChestShop.Security.canAccess(Security.java:31) [ChestShop.jar:?] at com.Acrobot.ChestShop.Listeners.Player.PlayerInteract.showChestGUI(PlayerInteract.java:197) [C hestShop.jar:?] at com.Acrobot.ChestShop.Listeners.Player.PlayerInteract.onInteract(PlayerInteract.java:88) [Ches tShop.jar:?] at sun.reflect.GeneratedMethodAccessor203.invoke(Unknown Source) [?:?] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [?:1.8. 0_25] at java.lang.reflect.Method.invoke(Method.java:483) [?:1.8.0_25] at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:301) [spigot-patched.j ar:git-Spigot-fa7cbf9-59dd2dd] at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) [spigot-patched.jar :git-Spigot-fa7cbf9-59dd2dd] at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [spigot-patched. jar:git-Spigot-fa7cbf9-59dd2dd] at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [spigot[57/1916] jar:git-Spigot-fa7cbf9-59dd2dd] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) [spigot-patched. jar:git-Spigot-fa7cbf9-59dd2dd] at org.bukkit.craftbukkit.v1_8_R1.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:226) [spigot-patched.jar:git-Spigot-fa7cbf9-59dd2dd] at net.minecraft.server.v1_8_R1.PlayerInteractManager.interact(PlayerInteractManager.java:463) [spigot-patched.jar:git-Spigot-fa7cbf9-59dd2dd] at net.minecraft.server.v1_8_R1.PlayerConnection.a(PlayerConnection.java:724) [spigot-patched.jar:git-Spigot-fa7cbf9-59dd2dd] at net.minecraft.server.v1_8_R1.PacketPlayInBlockPlace.a(PacketPlayInBlockPlace.java:50) [spigot- patched.jar:git-Spigot-fa7cbf9-59dd2dd] at net.minecraft.server.v1_8_R1.PacketPlayInBlockPlace.a(PacketPlayInBlockPlace.java:80) [spigot- patched.jar:git-Spigot-fa7cbf9-59dd2dd] at net.minecraft.server.v1_8_R1.PacketHandleTask.run(SourceFile:13) [spigot-patched.jar:git-Spigo t-fa7cbf9-59dd2dd] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_25] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_25] at net.minecraft.server.v1_8_R1.MinecraftServer.z(MinecraftServer.java:683) [spigot-patched.jar:git-Spigot-fa7cbf9-59dd2dd] at net.minecraft.server.v1_8_R1.DedicatedServer.z(DedicatedServer.java:316) [spigot-patched.jar:g it-Spigot-fa7cbf9-59dd2dd] at net.minecraft.server.v1_8_R1.MinecraftServer.y(MinecraftServer.java:623) [spigot-patched.jar:g it-Spigot-fa7cbf9-59dd2dd] at net.minecraft.server.v1_8_R1.MinecraftServer.run(MinecraftServer.java:526) [spigot-patched.jar :git-Spigot-fa7cbf9-59dd2dd] at java.lang.Thread.run(Thread.java:745) [?:1.8.0_25] Caused by: java.lang.IncompatibleClassChangeError: Found class com.sk89q.worldguard.protection.Applicable RegionSet, but interface was expected at com.Acrobot.ChestShop.Plugins.WorldGuardProtection.canAccess(WorldGuardProtection.java:48) [? :?] at com.Acrobot.ChestShop.Plugins.WorldGuardProtection.onProtectionCheck(WorldGuardProtection.java :42) [?:?] at sun.reflect.GeneratedMethodAccessor516.invoke(Unknown Source) [?:?] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [?:1.8. 0_25] at java.lang.reflect.Method.invoke(Method.java:483) [?:1.8.0_25] at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:301) [spigot-patched. jar:git-Spigot-fa7cbf9-59dd2dd] ... 28 more [12:59:25 ERROR]: Could not pass event ProtectionCheckEvent to ChestShop v3.8.1 org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:305) [spigot-patched. jar:git-Spigot-fa7cbf9-59dd2dd] at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) [spigot-patched.ja r:git-Spigot-fa7cbf9-59dd2dd] at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [spigot-patched. jar:git-Spigot-fa7cbf9-59dd2dd] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) [spigot-patched. jar:git-Spigot-fa7cbf9-59dd2dd] at com.Acrobot.ChestShop.ChestShop.callEvent(ChestShop.java:452) [ChestShop.jar:?] at com.Acrobot.ChestShop.Security.canAccess(Security.java:36) [ChestShop.jar:?] at com.Acrobot.ChestShop.Security.canAccess(Security.java:31) [ChestShop.jar:?] at com.Acrobot.ChestShop.Listeners.Player.PlayerInteract.showChestGUI(PlayerInteract.java:197) [C hestShop.jar:?] at com.Acrobot.ChestShop.Listeners.Player.PlayerInteract.onInteract(PlayerInteract.java:88) [Ches tShop.jar:?] at sun.reflect.GeneratedMethodAccessor203.invoke(Unknown Source) [?:?] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [?:1.8.