GUIShop
This plugin simply adds one command for your players; /shop.
This command will open a clickable GUI with the shop on top and your inventory on the bottom.
Simply navigate to the item you want, and click on it to buy or sell it.
Please read the whole thread if you can.
Features:
1. Easy to use click GUI.
2. Buy or sell any item at a configurable price.
3. Sell enchantments books with any enchantment.
4. Sort item into categories for ease of use.
5. Hooks into vault for economy.
Permissions:
shop.buy:
description: Gives access to buying menu.
shop.sell:
description: Gives access to selling menu.
shop.enchantments:
description: Gives access to the enchantment menu.
shop.tab.<tabID>:
description: Gives access to the specified tab.
shop.tab.* to give permission for all tabs.
shop.creative:
description: Gives access to shopping in creative mode.
shop.admin:
description: Gives access to admin commands like /reloadshop.
Commands:
/shop opens the shop GUI.
/reloadshop reload prices and config for the plugin. *working in v1.3.
Download:
Direct download:
(Use the files button)
You will also need to install vault and a economy plugin like BOSEconomy or iConomy.
Images:
Configuration:
There are four configuration files, Options, Tabs, Prices and EnchantmentPrices.
Options
There are five options:
SHOP_TITLE=§2[Shop] DONATE_MESSAGE_ON=true DONATE_MESSAGE=§cDonate to gain access! ALLOW_BROWSE=false PRICE_MULTIPLIER=1.0
SHOP_TITLE will change the prefix of all messages and GUIs made by the shop plugin. This must be under 20 characters long.
DONATE_MESSAGE_ON turns the message about donating on.
DONATE_MESSAGE lets you set the message that will ask people to donate.
ALLOW_BROWSE lets players look through tabs that they do not have permission for, but they can not buy/sell anything in those tabs.
PRICE_MULTIPLIER all the prices will be multiplied by this number, good for quickly scaling up the prices to suit your server.
Tabs
tabID=0 tabName=Building_Blocks IconID=45
Each tab must have a unique ID (tabID=0 in this case). This is used to identify which tab each item goes into.
The second part (tabName=Building_Blocks) is to set what this group of items is called, in this example "Building Blocks". Instead of spaces use underscores, '_', in the name of the tab.
The last part (IconID=45) is to change the icon of the tab. It is the item ID of the icon, eg 45 is the ID for bricks. You can find the icon IDs of items on minecraft wiki.
Example:
tabID=0 tabName=Building_Blocks IconID=45 tabID=1 tabName=Decorations IconID=38 tabID=2 tabName=Redstone IconID=331 tabID=3 tabName=Transportation IconID=27
Prices
WOOD_BIRCH itemID=5:2 buyPrice=4.0 sellPrice=0.5 tabID=0
The first part (WOOD_BIRCH) is not important, just for you to remember what item the configuration is for and it is not interpreted by the plugin at all.
The second part (itemID=5:2) is the minecraft ID of an item. You can find these on minecraft wiki or just google it.
To get a different version of an item (eg birch wood instead of Oak wood) just add a semicolon (:) and the appropriate data for the alternative version (also available on minecraft wiki).
The third and fourth part (buyPrice=4.0 sellPrice=0.5) is the price of a single item, eg one wood.
The plugin will automatically generate a list of possible block for you to use, and it will set a default price for these blocks. You can always add or remove any block you want to the list, and I recommend you modify the prices o suit your server
The last part (ItemTAB=0) is which tab (group of items) in the shop GUI the item will appear in.
0 is Building Blocks, 1 is Decorations, 2 is Redstone, 3 is Transportation, 4 is Misc, 5 is Foodstuffs, 6 is Tools, 7 is Combat, 8 is Brewing and 9 is Materials, you can change these in the tabs config.
Example:
SAND itemID=12 buyPrice=4.0 sellPrice=0.5 tabID=0 GRAVEL itemID=13 buyPrice=4.0 sellPrice=2.0 tabID=0 GOLD_ORE itemID=14 buyPrice=45.0 sellPrice=22.5 tabID=0 DIRT itemID=3 buyPrice=4.0 sellPrice=0.5 tabID=0 COBBLESTONE itemID=4 buyPrice=4.0 sellPrice=0.5 tabID=0 WOOD_BIRCH itemID=5:2 buyPrice=4.0 sellPrice=0.5 tabID=0 WOOD_DARK itemID=5:1 buyPrice=4.0 sellPrice=0.5 tabID=0
Enchantments
DURABILITY enchantmentID=34 enchantmentLevel=3 enchantmentPrice=10
Again the first part (DURABILITY) is just for you; not used by the plugin.
The second part is the enchanment ID for the enchantment type, these can be found here:
http://www.minecraftforum.net/topic/1711629-enchantment-id-list/
The third part is pretty simple, just how strong the enchantment is. This one (enchantmentLevel=3) will get you unbreaking level III.
The last bit (enchantmentPrice=10) is simple as well, just the price to buy one enchantment book.
Example:
LOOT_BONUS_BLOCKS enchantmentID=35 enchantmentLevel=3 enchantmentPrice=40 PROTECTION_FIRE enchantmentID=1 enchantmentLevel=4 enchantmentPrice=30 DIG_SPEED enchantmentID=32 enchantmentLevel=5 enchantmentPrice=50 PROTECTION_FALL enchantmentID=2 enchantmentLevel=4 enchantmentPrice=50 SILK_TOUCH enchantmentID=33 enchantmentLevel=1 enchantmentPrice=100
Please comment if you use the plugin or would like to make a suggestion.
Videos
English:
http://youtu.be/bJyvUOLr33g
Credits: SimplyAussieGamer
Portuguese:
https://www.youtube.com/watch?v=u5r01sSCE-I
Credits: AbsintoJ
Metrics
Thanks for taking time to read this,
~ Waffles
Source ?
@Pbailey622
I believe if you use Group Manager as your permissions plugin, you'll be able to make world specific perms. In a way which you can have the perms in one world, and not in the other.
Hey, I was wondering if there was any way to use this plugin in only one world.. For example I'm using Multiverse, and I want to use this in our skyblock world, but not our survival world. Any ideas? Could it be done with permissions? Like world specific permissions?
Man I am pumped now. I found a work around for the items not showing up. For me it is always the last item of a tab group. If I put the item in the prices.txt twice, it shows up.
For example name tag would not show up so I did this:
NAMETAG itemID=421 buyPrice=100.0 sellPrice=25.0 tabID=11 NAMETAG_DUP itemID=421 buyPrice=100.0 sellPrice=25.0 tabID=11
added _DUP to the second one so I know it is the one that will not show up so I update the correct line if I want to change anything about that item.
For the stack of enchantable items like swords, I just don't sell them in the shop. I sell wood, iron, gold, and diamonds, etc, players can make their own swords/tools.
This really helps me and I hope it helps others that love this shop plugin above all others.
Same here. Love the plugin. Creating a minecraft server right now and decided to use this shop plugin. Finished configuring it last night and realized that some items don't display. Will have to use something else until this gets updated. Also, if you use an item like 3:1 on the tabs, the tab will not show up. Great plugin. Just needs a few tweeks. Keep up the good work on it.
I love this plugin but I can't use it because of the bugs and exploits. For example if you buy a stack of swords, you can enchant them in an anvil with one book. Another bug is that some items aren't appearing in the shop, such as Iron Chestplate and Gold Boots. Please update this great plugin so I can use it on my server without having to worry about the economy because it makes life so much easier.
OMG IM SO STUPID NEVERMIND
My players can't do the Enchantments Shop, there's no node for it...
Please help D:
I have this plugin for my server but /shop does not work for members, it only works for mod+ because they have the '*' permission. I have given the members all the nodes except shop.creative and admin. but they can't use the shop... I don't understand why. is there a node missing?
@XLighterShadowX
Just use the dtlTrader addon for citizens.
@Jloomy
This can be achieved with Citizens and dtlTrader add-on. Very easy GUI based setup, would recommend.
Alternatively, you could bind the shop to an item using CustomJoinItems.
i cant seem to make a new Tab work with items inside it.:
[00:00:40] [Server thread/ERROR]: Could not pass event InventoryClickEvent to GUIShop v2.1
org.bukkit.event.EventException
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:294) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.3-18-g3c3980f-b3046jnks]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.3-18-g3c3980f-b3046jnks]
at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:501) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-18-g3c3980f-b3046jnks]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:486) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-18-g3c3980f-b3046jnks]
at net.minecraft.server.v1_7_R3.PlayerConnection.a(PlayerConnection.java:1361) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-18-g3c3980f-b3046jnks]
at net.minecraft.server.v1_7_R3.PacketPlayInWindowClick.a(SourceFile:32) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-18-g3c3980f-b3046jnks]
at net.minecraft.server.v1_7_R3.PacketPlayInWindowClick.handle(SourceFile:10) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-18-g3c3980f-b3046jnks]
at net.minecraft.server.v1_7_R3.NetworkManager.a(NetworkManager.java:148) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-18-g3c3980f-b3046jnks]
at net.minecraft.server.v1_7_R3.ServerConnection.c(SourceFile:134) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-18-g3c3980f-b3046jnks]
at net.minecraft.server.v1_7_R3.MinecraftServer.v(MinecraftServer.java:667) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-18-g3c3980f-b3046jnks]
at net.minecraft.server.v1_7_R3.DedicatedServer.v(DedicatedServer.java:260) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-18-g3c3980f-b3046jnks]
at net.minecraft.server.v1_7_R3.MinecraftServer.u(MinecraftServer.java:558) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-18-g3c3980f-b3046jnks]
at net.minecraft.server.v1_7_R3.MinecraftServer.run(MinecraftServer.java:469) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-18-g3c3980f-b3046jnks]
at net.minecraft.server.v1_7_R3.ThreadServerApplication.run(SourceFile:628) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-18-g3c3980f-b3046jnks]
Caused by: java.lang.IndexOutOfBoundsException fromIndex = -1
at java.util.ArrayList.subListRangeCheck(Unknown Source) ~[?:1.8.0_05]
at java.util.ArrayList.subList(Unknown Source) ~[?:1.8.0_05]
at us.alreadycoded.shop.TabSetting.makeBuyTab(TabSetting.java:43) ~[?:?]
at us.alreadycoded.shop.InventoryListener.menuClick(InventoryListener.java:78) ~[?:?]
at sun.reflect.GeneratedMethodAccessor133.invoke(Unknown Source) ~[?:?]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_05]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_05]
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:292) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.3-18-g3c3980f-b3046jnks]
... 13 more
[00:01:44] [Server thread/INFO]: 1_cool_ninja issued server command: /home
[00:02:15] [Server thread/INFO]: CONSOLE: Forcing save..[m
[00:02:15] [Server thread/INFO]: CONSOLE: Save complete.[m
I could hook this into NPC's which would be awesome but it sounds like you can only make a single shop, is this true?
[06:45:49] [Server thread/ERROR]: null org.bukkit.command.CommandException: Unhandled exception executing command 'shop' in plugin GUIShop v2.1 at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:175) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] at org.bukkit.craftbukkit.v1_7_R1.CraftServer.dispatchCommand(CraftServer.java:683) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] at net.minecraft.server.v1_7_R1.PlayerConnection.handleCommand(PlayerConnection.java:952) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] at net.minecraft.server.v1_7_R1.PlayerConnection.a(PlayerConnection.java:814) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] at net.minecraft.server.v1_7_R1.PacketPlayInChat.a(PacketPlayInChat.java:28) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] at net.minecraft.server.v1_7_R1.PacketPlayInChat.handle(PacketPlayInChat.java:47) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] at net.minecraft.server.v1_7_R1.NetworkManager.a(NetworkManager.java:146) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] at net.minecraft.server.v1_7_R1.ServerConnection.c(SourceFile:134) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] at net.minecraft.server.v1_7_R1.MinecraftServer.u(MinecraftServer.java:655) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] at net.minecraft.server.v1_7_R1.DedicatedServer.u(DedicatedServer.java:250) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] at net.minecraft.server.v1_7_R1.MinecraftServer.t(MinecraftServer.java:545) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] at net.minecraft.server.v1_7_R1.MinecraftServer.run(MinecraftServer.java:457) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] at net.minecraft.server.v1_7_R1.ThreadServerApplication.run(SourceFile:617) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] Caused by: java.lang.IllegalArgumentException: Title cannot be longer than 32 characters at org.apache.commons.lang.Validate.isTrue(Validate.java:157) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] at org.bukkit.craftbukkit.v1_7_R1.inventory.CraftInventoryCustom$MinecraftInventory.<init>(CraftInventoryCustom.java:48) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] at org.bukkit.craftbukkit.v1_7_R1.inventory.CraftInventoryCustom.<init>(CraftInventoryCustom.java:26) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] at org.bukkit.craftbukkit.v1_7_R1.CraftServer.createInventory(CraftServer.java:1472) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] at org.bukkit.Bukkit.createInventory(Bukkit.java:588) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] at us.alreadycoded.shop.MenuIcons.getMainMenu(MenuIcons.java:64) [?:?] at us.alreadycoded.shop.Shop.onCommand(Shop.java:97) [?:?] at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] ... 13 more
help i can't use command /shop
The building blocks tab won't open
player's shops not possible?
only 1 shop per world? -.-
This is working fine for me, what would have made it perfect for me though was to be able to set up a block or better yet an NPC in a location you had to interact on to open up the shop, rather than a command one. Anyone know of a way to do this?
I'm having an issue, the second page won't open :(
Bug: The last item in a tab doesn't appear.
How do you make it to where you can buy kits? I've seen it on KitPvP servers before, but I can't figure it out for find any tutorials. Is this a feature in this plugin or am I thinking of another one?
- tnvols02
Btw, first post ^.^