QuickShop
QuickShop
The Predecessors
Showcase was abandoned. Chestshop needed a display, with signs whose order you could never remember. SCS has too many commands. I'm yet to find someone who uses essentials shops.
Don't get me wrong though, they're all awesome plugins each in a few ways.
QuickShop
So, I set out to write this. QuickShop. QuickShop is a shop plugin, that allows players to sell items from a chest with no commands. It allows players to purchase any number of items easily. In fact, this plugin doesn't even have any commands that a player would ever need!
Features
- Easy to use
- Togglable Display Item on top of chest
- NBT Data, Enchants, Tool Damage, Potion and Mob Egg support
- Unlimited chest support
- Blacklist support & bypass permissions
- Shops that buy items and sell items at the same time are possible (Using double chests)
- Herochat support
- Checks a player can open a chest before letting them create a shop!
No longer accepting feature requests
For those people that hate reading, here's an awesome video from UltiByte:
A more up to date and informative video can be found here
Installation Guide:
http://www.youtube.com/watch?v=eJsv7fqaXNk
How to Create a Shop
- Place a chest on the ground
- Hit the chest with the item you want to trade
- Type in price for the item (As prompted) in chat
- Fill the chest with the items you wish to sell
Advanced
- Face the chest
- Type either /qs sell or /qs buy to make the shop buy/sell instead (Optional: use /shop instead of /qs)
- Stock the shop accordingly, if necessary.
How to Buy/Sell to a Shop
- Find a shop
- Hit / Left click the shop
- Enter the amount you wish to trade in chat
Menu Example:
See it in action:
http://maxgamer.org or
play.maxgamer.org:25571 and /warp market!
Commands
- /qs unlimited - Makes the shop you're looking at become unlimited.
- /qs setowner <player> - Changes shop owner to <player>.
- /qs buy - Changes your shop you're looking at to one that buys items
- /qs sell - Changes your shop you're looking at to one that sells items
- /qs price <price> - Change the price of your shop that you're looking at
- /qs clean - Removes any existing shop that has 0 stock.
- /qs find <item> - Use to find the nearest shop that begins with <item> - E.g. '/qs find dia' will find the nearest diamond shop.
- /shop - Alias (Optional) of /qs
Player Nodes
- quickshop.use - Required to use ANY quickshop
- quickshop.create.sell - Required to make a QuickShop (At all)
- quickshop.create.buy - Required to use /qs buy (Change the shop type from Sell -> Buy)
- quickshop.create.double - Required to make doublechest shops.
- quickshop.create.changeprice - Required to use /qs price (Ability to change the price of a shop without destroying it. This may allow for some scammers to quickly change the price while someone is buying.
- quickshop.bypass.ItemID - Required to sell blacklisted items (E.g. bedrock)
- quickshop.find - Required to use /qs find <item>
Admin Nodes
- quickshop.unlimited - Required to use /quickshop unlimited
- quickshop.setowner - Allows use of /qs setowner
- quickshop.other.destroy - Allow breaking other peoples QuickShops if they're locked by this plugin
- quickshop.other.open - Allow opening (And stealing/Stocking) other players QuickShops
- quickshop.other.price - Allow changing price of other people's shops
- quickshop.refill - Ability to refill chests using a command (=Unlimited items)
- quickshop.empty - Ability to empty chests of all items
- quickshop.clean - Permission to purge any shops that have 0 stock.
Source: Source on Github
Checkout the config over here.
Have Towny?
Try out this plugin http://dev.bukkit.org/server-mods/quickshop-towny-interop/ to stop players creating shops outside of Towny shop plots!
Calculating Economy Prices
Vagrant326 has created an Excel spreadsheet that allows you to calculate prices for a market, if you're looking to set one up! It takes a few minutes to setup the basic material prices, and once done, will tell you the appropriate value for almost any material! http://www.planetminecraft.com/blog/how-to-create-stable-prices-system-on-your-server/
Hi, I'm an 19 year old University student studying Software Engineering. I spend my time writing code that I receive practically no reward for other than people asking questions I've answered a hundred times before. I know server Admin's and Owners aren't the richest of people - But if you're feeling particularly generous, I always appreciate any amount for the time and patience I put into coding Bukkit plugins.
For example a player is on the default group ,i now use permissions bukkit .I was so pissed so i put permissions.* : true like the admins and it still won;t work . I user Vault ,iConomy , QuickShop,Essentials (Chat,Protect,Spawn),Jobs,LWC,Residence,World Edit and Guard ,dynmap .
@Dagepaa
It isn't.
Could it be a memory issue?
@kain1990
Give players quickshop.use permissions
@Dagepaa
Maybe you have an item that corrupts it. If you find the item, put it on the blacklist (is tat in 1.7?) that should save you next tine
Ok I guess removing the DB file did not solve my problem as its back now on a fresh DB.. Its odd because it worked fine and then started throwing this error a few days ago. I didn't change anything.
18.11 19:42:39 [Server] SEVERE at java.lang.Thread.run(Unknown Source)
18.11 19:42:39 [Server] SEVERE at org.bukkit.craftbukkit.scheduler.CraftWorker.run(CraftWorker.java:34)
18.11 19:42:39 [Server] SEVERE at org.maxgamer.QuickShop.Watcher.BufferWatcher.run(BufferWatcher.java:21)
18.11 19:42:39 [Server] SEVERE at org.maxgamer.QuickShop.Database.Database.getConnection(Database.java:66)
18.11 19:42:39 [Server] SEVERE at java.sql.DriverManager.getConnection(Unknown Source)
18.11 19:42:39 [Server] SEVERE at java.sql.DriverManager.getConnection(Unknown Source)
18.11 19:42:39 [Server] SEVERE at org.sqlite.JDBC.connect(JDBC.java:64)
18.11 19:42:39 [Server] SEVERE at org.sqlite.JDBC.createConnection(JDBC.java:77)
18.11 19:42:39 [Server] SEVERE at org.sqlite.Conn.<init>(Conn.java:57)
18.11 19:42:39 [Server] SEVERE at org.sqlite.Conn.open(Conn.java:140)
18.11 19:42:39 [Server] SEVERE at org.sqlite.DB.open(DB.java:86)
18.11 19:42:39 [Server] SEVERE at org.sqlite.NestedDB._open(NestedDB.java:63)
18.11 19:42:39 [Server] SEVERE at org.sqlite.NestedDB$CausedSQLException.<init>(NestedDB.java:626)
18.11 19:42:39 [Server] SEVERE at java.sql.SQLException.<init>(Unknown Source)
18.11 19:42:39 [Server] SEVERE at java.lang.Exception.<init>(Unknown Source)
18.11 19:42:39 [Server] SEVERE at java.lang.Throwable.<init>(Throwable.java:250)
18.11 19:42:39 [Server] SEVERE at org.sqlite.NestedDB$CausedSQLException.fillInStackTrace(NestedDB.java:649)
18.11 19:42:39 [Server] SEVERE java.lang.NullPointerException
i have a problem . i use the latest craftbukkit on my server ,and my problem is that my users can create a shop for example , but besides me (the admin) no one ca buy from them , it doesn't work . I receive no message or anything .If i make myself a normal user it won;t work .If i make me an admin again it works .Only Ops can use the shops ,not normal users .
@Iversen123
That useless garbage that comes after it tells you it couldn't load QuickShop isn't useless garbage and helps us much more than 'It doesn't work'. What does it say afterwards? (Copy paste)
Quick shop dosent work at my server, i run with "craftbukkit-1.4.4-R0.1" its says: Could not load 'plugin/QuickShop.jar'
Hope you can help me cus i like this plugin! :D
@Dagepaa
Some item is corrupt in your database. If you're any good with databases, grab a SQLite database editor and try and find the corrupt item.
On further inspection, it looks like maybe you removed an item from your server that was being sold? E.g. The sold material was not found, so the item could not be reconstructed from the database
Yes that corrects it but why? All of the shops are in a single world and nothing looks out of place in the db file. I'll lose over 250 shops if i remove the db. Thanks for any help!
@Dagepaa
Okay well makeItem is the method used to reconstruct an item from the database, so try move your quickshop,db file somewhere else and reboot, see what happens.
I am running 1.7 for BUKKIT 1.2.5 ONLY version on a Tekkit server. I have been using it for months fine and just yesterday I get this on startup.
17.11 15:20:17 [Server] SEVERE Error occurred while enabling QuickShop v1.7 (Is it up to date?)
17.11 15:20:17 [Server] INFO java.lang.NullPointerException
17.11 15:20:17 [Server] INFO at org.bukkit.inventory.ItemStack.<init>(ItemStack.java:35)
17.11 15:20:17 [Server] INFO at org.bukkit.inventory.ItemStack.<init>(ItemStack.java:27)
org.maxgamer.QuickShop.QuickShop.makeItem(QuickShop.java:393)
Then this spams the console over and over until a server crash.
2012-11-16 16:09:29 [SEVERE] java.lang.NullPointerException
2012-11-16 16:09:29 [SEVERE] at org.sqlite.NestedDB$CausedSQLException.fillInStackTrace(NestedDB.java:649)
2012-11-16 16:09:29 [SEVERE] at java.lang.Throwable.<init>(Throwable.java:250)
2012-11-16 16:09:29 [SEVERE] at java.lang.Exception.<init>(Unknown Source)
2012-11-16 16:09:29 [SEVERE] at java.sql.SQLException.<init>(Unknown Source)
2012-11-16 16:09:29 [SEVERE] at org.sqlite.NestedDB$CausedSQLException.<init>(NestedDB.java:626)
2012-11-16 16:09:29 [SEVERE] at org.sqlite.NestedDB._open(NestedDB.java:63)
2012-11-16 16:09:29 [SEVERE] at org.sqlite.DB.open(DB.java:86)
2012-11-16 16:09:29 [SEVERE] at org.sqlite.Conn.open(Conn.java:140)
2012-11-16 16:09:29 [SEVERE] at org.sqlite.Conn.<init>(Conn.java:57)
2012-11-16 16:09:29 [SEVERE] at org.sqlite.JDBC.createConnection(JDBC.java:77)
2012-11-16 16:09:29 [SEVERE] at org.sqlite.JDBC.connect(JDBC.java:64)
2012-11-16 16:09:29 [SEVERE] at java.sql.DriverManager.getConnection(Unknown Source)
2012-11-16 16:09:29 [SEVERE] at java.sql.DriverManager.getConnection(Unknown Source)
2012-11-16 16:09:29 [SEVERE] at org.maxgamer.QuickShop.Database.Database.getConnection(Database.java:66)
2012-11-16 16:09:29 [SEVERE] at org.maxgamer.QuickShop.Watcher.BufferWatcher.run(BufferWatcher.java:21)
2012-11-16 16:09:29 [SEVERE] at org.bukkit.craftbukkit.scheduler.CraftWorker.run(CraftWorker.java:34)
2012-11-16 16:09:29 [SEVERE] at java.lang.Thread.run(Unknown Source)
@zRations
Strange, I've never had this issue on my server and I have never had displays breaking like that. Every time someone tries to dupe the item, they usually end up with less than they started with (Eg. Not a dupe, they lose items). I'll try to replicate it again, but that is very strange.
@Worldguard I'm pretty sure you can do per-region permissions with some worldguard plugin (or worldguard itself?) - try giving people in the region quickshop.create.*?
@netherfoam
Hello I work with BlondeBeard on our server. We do not have NoLagg installed but instead, it is bukkit itself. I am not sure but I do believe in 1.3 bukkit, the item grouping was added right into its build.
Also, as a suggestion that could benefit some server would be using a soft-dependent of worldguard and adding to allow the use of the QuickShops in a region. On our server, we are a PvP/Factions/Raid based server and one player discovered that he could create a locked chest only accessible by him inside faction land by creating a QuickShop on that chest. I was hoping we could be able to enable QuickShops only in the confines of our Player Mall and not the whole world/server. Thanks you :)
@theBlondeBeard
I'm pretty confident this is caused by NoLagg forcing the items to be stacked. There isn't much I can do about it until bukkit starts throwing an ItemMergeEvent of some sorts. However, bukkit's merge system does it properly.
I've made a comment on the NoLagg page asking for it, but I'll see what berg does about it.
Hello there. I just implemented this plugin into my PVP server as player shops. I've noticed a massive dupe glitch, it mostly centers around the double chests (Buying and Selling of the same item).
When the item on top of the chest comes within a few blocks of the same item, they group up. If you have a double chest with Diamond (or any other item) on both, the chests will generate a full stack of gathered items. Then once the player drops the same item on the ground it will pull the stack off of the chest and duplicate the item into 64.
Rather serious problem. I'm disabling the items on top of the chests for now, however this was one of the main reasons I decided to use this plugin. That and the pure ease of use. So nice job so far, you should probably think about that dupe problem, if the problem can even be fixed...
@netherfoam omg yes true, I forgot completely, not myself think of blocked-cmds.
@nhoclesnar
Shops aren't meant to be deleted when the sign is removed. Shops are deleted when the chest is removed.
It's probably some plugin which lets you open any chest at a guess causing your issue. E.g. OpenInv does something similar, except it uncancels the event at the very end, instead of forcing the chest open.
I still cannot find the source of problem. I updated BKL but the error still appear, but much less. However, I encountered a new problem. When I, its owner, destroy the sign in front of the chest, the shop is not deleted.
@FidusGFX
Isn't there some kind of worldguard flag to give/take permissions? Just give players quickshop.create.* permissions when they enter, and remove them when they leave.