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 - Item display icons above the chest, transaction limit, Discord alerts, per-player shop limit! (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, abandoned)
- 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)
- BoltChestShop - Add support for Bolt container protections (Made by the Bolt author)
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!
@Acrobot
AH.
http://pastebin.com/jRR6JTfR
Am I missing something? I don't know how it happens. :/
Works with Essentials eConomy? I mean the one that comes with essentials plugin
@asofold It's already possible with OddItem. (Which works fine with ChestShop :))
@Acrobot
Hmm, you could map those...
After all a big number or two numbers are not that much different, though it is more work to work with two numbers...
If you let the user define the mappings in an extra config-file, you can be sure, that soon there will be people offering more or less complete mappings without you having to do that...
May be a question if or how to do with/in YML, and if to allow multiple mappings and then which to chose and so on. I would probably just use a yml string-list with entries like '17:15=Unknown log' or 'potion:3453=my-potion', then have a class internally that combines id+durability and then mapping the names to that class and that class to either "the possible names" or the "sign-display-name", while the "sign-display-name" should probably be the first entry in the list that has to do with that id+data. Then care for upper/lower/capitalize and it is pretty perfect. Given peoples different language or just idea about how to abbreviate names it would be way too much to demand to let you do those lists.
I think it would be realistic, i will have a glimpse at the source code. maybe ....
@GodFear It's right. Unfortunately, Notch's idea of making the IDs and data was wrong, so bukkit only knows that the base item (351) is an ink sac.
@Acrobot
I do this for bluestone which is 351:4 and it makes it, then says on the bottom line "Ink Sack:4"
any idea?
@GodFear Just do /iteminfo to find the exact id, but basically it's just ItemName:DataValue
Hello,
How would I make a sign to sell bluestone? or any other item that has the secondary ID numbers?
Perhaps it's been asked before but heck if I could find it...
Thanks in advance
@ZMan8090 You aren't using the latest version of ChestShop.
@JoneKone Hmm, no clue then.
And no, atm there isn't.
@Protectorjk Hmm, I have no idea o.0 Are you sure that the shop (both chest and sign, or whatever is specified in config) is protected with LWC? /cinfo
@Acrobot Not for me...for normal players.. they complaint about it..
Unknown
BTW!? is there a way to reload config file without Restart?
I seem to get a message ingame: You have reached the LWC protections limit! everytime i create a new shop, although the shop is still protected. Any idea why?
Thanks.
MAJOR BUG WITH BUYING POTIONS:
I have two chests, one that sells waterbottles in stacks of 10, and one that sells potions of instant damage in stacks of 1 (I know that doesn't make sense, but it will)
I first buy 10 waterbottles, Chest shop stacks them (Bug #1) and I now have stacked waterbottles. While I have the waterbottles in my inventory, I go over to the other chest and buy 1 potion of Instand Damage.
Bug #2 (Big Bug) After buying the instant Damage potion, Chest shops puts the Instant Damage Potion, and stacks it with the waterbottles, making me have 11 Potions of instant Damage. I dont know how, or why, and I will try to test this out some more. A fix for this might just be not allowing potions to stack when bought. Just an idea. Thank you.
@JoneKone Well, the returning money doesn't work for admins, I assumed they would just give the money to themself.
And when exactly does it take too much money?
Sometimes the returning of money when you destroy a sign don't work.
Also sometimes it takes too much money when you create a sign..
@LordKainzo Well, ChestShop.shop.create contains all the ChestShop.shop.create.itemIDs
Shot in the dark:
Does anyone happen to have all perm nodes for item creation?
ChestShop.shop.create.5
ChestShop.shop.create.6
ChestShop.shop.create.16
etc?
Working on a massive Merchant class and uh... this is necssary heh - time to copy and paste shit!
@mantegudo Yep, planned to be in ChestShop 4.
@GrandRiver Hmm... It seems like a Bukkit error then. I'll try it later.
@Acrobot
Got the same error as ScottSpittle did earlier; you asked him if he was in creative mode when he got the error. I was in creative mode.
21:58:44 [SEVERE] Could not pass event SIGN_CHANGE to ChestShop java.lang.ArrayIndexOutOfBoundsException: 0 at com.Acrobot.ChestShop.Items.Items.getItemStack(Items.java:51) at com.Acrobot.ChestShop.Listeners.signChange.onSignChange(signChange.java:34) at org.bukkit.plugin.java.JavaPluginLoader$36.execute(JavaPluginLoader.java:514) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:339) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:1068) at net.minecraft.server.Packet130UpdateSign.a(SourceFile:41) at net.minecraft.server.NetworkManager.b(NetworkManager.java:226) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:93) at org.getspout.spout.SpoutNetServerHandler.a(SpoutNetServerHandler.java:550) 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)
@Acrobot
Hey, It would be awesome if u can add a dynamic sign, instead of typing the amount of itens u wanna sell, it can ask you in the chat to type the amount you wanna sell of that item, and maybe anonther sign to sell the amount on the hand!
Thank you =)