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!
@Jonukas5 Yup, pretty major. Could you try opening plugins/ChestShop/version and changing the "version: 2" to "version: 1"?
Anything major?
@Perkulator_Time No. WG 5.9 does not use UUIDs.
Can you make this plugin compatible with WorldGuard 5.9 please
this is what i get
[20:04:52 ERROR]: Could not pass event ProtectionCheckEvent to ChestShop v3.8.7 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.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.callEvent(SimplePluginManager.java:487) [spigot-patched.jar:git-Spigot-fa7cbf9-59dd2dd] at com.Acrobot.ChestShop.ChestShop.callEvent(ChestShop.java:474) [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) [ChestShop.jar:?] at com.Acrobot.ChestShop.Listeners.Player.PlayerInteract.onInteract(PlayerInteract.java:88) [ChestShop.jar:?] at sun.reflect.GeneratedMethodAccessor187.invoke(Unknown Source) [?:?] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [?:1.8.0_40] at java.lang.reflect.Method.invoke(Method.java:497) [?:1.8.0_40] at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:301) [spigot-patched.jar: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.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-Sp igot-fa7cbf9-59dd2dd]
@alantaru Sounds like a problem with MultiWorldMoney, not ChestShop.
Im using Multiverse, Iconomy and MultiWorldMoney plugin to separate accounts per world. I tested this bug right now and it is still happening. I bought something in a sign at survival and the shop owner was in skyblock world, and he got the money immediately.
As I said, whatever world the owner of the sign is, he recieves money in that world.
@alantaru This shouldn't be the case, as the money is added to the world where the sign of the shop is. Which economy plugin are you running?
Hi there. Im having a bug. I manage a server with multiverse and 2 worlds: Survival and SkyBlock.
Players are allowed to create ChestShops in Survival, but not in Skyblock world.
Here's the bug: when someone creates a shop in survival, he will recieve the income in the world he is in the moment. If he goes to SkyBlock world, and someone buys something at his shop in survival, he will recieve money in Skyblock's world.
Can I separate this? so there will be no cross-world negotiations? Thank you in advance and sorry for the poor english.
@asmit119 I cannot remove all shops. I do not log the shops anywhere. The limits would only apply to new shops - and not all the shops that were created before.
Believe me, I investigated all the options.
OMG THX DUDE!@Acrobot
Acrobot, Actually I had a different idea rather than adding the shops to a DB that shouldn't require a DB. Also the module you say exists does not actually work, just as ChestShopLogger is no longer on the DEV! It was pulled off! So my theory was why bother pushing shops to a DB, when the only thing that matters is how many shops each player is allowed to have (a permission granted to them which corresponds to how many shops people with that permission can have and a permission that allows for INFINITE SHOPS *backwards compatible...) Thus, on the new update, you would just have to add this permission.
Now rather than create the database, create a YAML file. Populate it with UUIDs. One per line. As players create a shop it increments a value on that line one time per creation and decrement one time per deletion. Now yes, already made shops WOULD not be counted here, so you would have to remove them all to use this feature accurately however its a much simpler solution and easier to maintain.
http://timings.aikar.co/?url=10695220
My timings are very high on the join events for Chestshop. Please fix it. it is cauing alot of lag.
@asmit119 Well, there is one already made:
http://dev.bukkit.org/bukkit-plugins/chestshoplimiter/
But if you'd like to create it yourself - go for it. The main reason it's not in ChestShop yet is backwards compatibility - I'd have to add all the shops to some kind of database.
@marc050301 "Shop owner doesn't have enough money" is an issue with your economy setup. I'm not sure whether Essentials Eco supports creating accounts.
Hey there, Im having an issue with a Fake Account for selling saying "Shop Owner doesnt have enough money" I have essentials eco running and vault. Maybe vault is being an issue? Im not 100% sure on this, If you could help me, it would be much appreciated,
Thanks.
Looking to create a working chestshop limiter module for ChestShop's. Any issue with this Acrobot or go for it?
@rcs2112
Have you put out all the permissions? Does the log say anything?
@speedfreak07 That's a hard question for me to answer. Since ChestShop is basically compatible with all Bukkit versions that support UUIDs, the only thing limiting the compatibility might be Spigot itself. I guess that it should be fine, unless Spigot 1.7.10 has some hidden bugs which could prevent ChestShop from working.
Shops are working perfectly for me on spigot 1.8.3
I admin a prison server (spigot 1.7.10) that also allows 1.8 players to join the server. If i update the plugin to the latest version of chestshop will it work? Basically, will the latest version of this plugin run on a 1.7.10 server. I am currently battling a bug where players can other peoples chests if its a double-chest and they have an item in there hand. (on plots)
Doesn't appear to work for me on my Spigot 1.8.3 server. However, Everyone seems to be saying it works fine for them.
Anyone else having issues with it?