ShopGUI+ [1.7-1.16]
vKbOMvL.png


ShopGUI+ is an advanced high-quality GUI shop perfect for every server. It allows players to easily buy/sell items, enchantments, permissions and commands.

Support is given ONLY at our Discord!
UkXPmJa.png



98pfY4L.gif

Xhthrgr.gif


LpB3Anq.png


Configuration tutorial by @Hagenite

Review by @Sean0402


CRmVh7f.png

MXiBLk6.png

dGcajbs.png

aalMHMT.png

PHAbnYB.png

E0oCsjC.png

KZ7PCzF.png

qJY3EuF.png

qp0Zxh7.png

RgGR6g2.png

GPsHKQP.png

OI8EoBd.png

XBthCoj.png

3SXIqAo.png

Vw63gAV.png


CQkKKb3.png

  • Complete, premade shops with lots of items
  • The best anti-dupe protection, even better than on some popular servers
  • Allows players to sell, sell all and buy items using convenient GUI
  • Sell multiple enchantments, permissions and commands to players
  • Sell preset mob spawners to players (supports SilkSpawners, MineableSpawners, EpicSpawners and WildStacker)
  • Supports multiple economies (Vault, exp, MySQL Tokens, PlayerPoints, TokenEnchant, TokenManager) at the same time
  • Separate log file to log shop transactions
  • Supports item-based economy (requires Gringotts and Vault)
  • Supports custom names, lores, enchantments, potions and fireworks
  • Allows you to set different prices for each player using item-based, shop-based and global price modifiers
  • Advanced amount selection GUI for buying or selling items
  • Multiple shops with per-shop permission support
  • Multiple page support in each shop GUI with buttons
  • Convenient "Go back" button to easily return to main menu
  • Customizable size of each shop GUI
  • Item placeholders to buy/sell items different from the displayed ones
  • Per-item permissions inside shops
  • 100% customizable messages, shops and items
  • Reload command to update shops without restarting the server
  • Efficient & high-quality code
uwsAy7U.png

Shop command aliases: /shop /shopgui /guishop
  • /shop - open the main shop menu (shopguiplus.shop)
  • /shop reload - reload the configuration (shopguiplus.reload)
  • /shop [shop name] - directly open the specified shop (shopguiplus.shop)
  • /shop [player] [shop name] - open the specified shop (or main one if none specificed) for specified player (shopguiplus.others)
  • /sell hand [quantity] - sell the item held in your hand (shopguiplus.sell.hand)
  • /sell handall - sells all items inventory which are the same as the one being held in your hand (shopguiplus.sell.hand.all)
  • /sell all - sells all items from your inventory (shopguiplus.sell.all)
    Price modifier commands
  • /shop addmodifier item <player> <shop> <item> <value> [buy|sell] (shopguiplus.shop.addmodifier) - add item-specific price modifier
  • /shop addmodifier shop <player> <shop> <value> [buy|sell] (shopguiplus.shop.addmodifier) - add shop-specific price modifier
  • /shop addmodifier global <player> <value> [buy|sell] (shopguiplus.shop.addmodifier) - add global price modifier
  • /shop resetmodifier item <player> <shop> <item> [buy|sell] (shopguiplus.shop.resetmodifier) - reset player's item-specific price modifier
  • /shop resetmodifier shop <player> <shop> [buy|sell] (shopguiplus.shop.resetmodifier) - reset player's shop-specific price modifier
  • /shop resetmodifier global <player> <value> [buy|sell] (shopguiplus.shop.resetmodifier) - reset player's global price modifier
  • /shop checkmodifiers <player> (shopguiplus.shop.checkmodifiers) - check player's current price modifiers
Note: Item modifiers override shop ones which override global ones.

lObT2q3.png


All command permissions have been listed above. However, players need additional permissions to access each shop. You can give or revoke access to particular shops by using the shopguiplus.shops.SHOP_ID permission node where SHOP_ID is the shop id from the shop yaml (for example shopguiplus.shops.food, shopguiplus.shops.armor etc.). You can use the wildcard permission node shopguiplus.shops.* only if you are using PermissionsEx or UltraPermissions (other plugins doesn't support it). Otherwise you have to manually add permissions to access each shop.
In order to ban player from accessing particular shop just negate the corresponding permission node.

Additional permissions:
  • shopguiplus.bypassgamemode - allows to access the shop when in a banned gamemode
  • shopguiplus.bypassworld - allows to access the shop when in a banned world
  • shopguiplus.buymore - allows to use the "Buy more" feature (it's set given to all players by default, negate it if you don't want them to have it)
  • shopguiplus.sellmore - allows to use the "Sell more" feature (it's set given to all players by default, negate it if you don't want them to have it)
cadOB10.png

  • Spigot 1.7.10 or newer
  • Vault 1.4.1 or newer
If you want to sell permissions you also need one of following plugins:
  • LuckPerms 5.0 or newer (recommended)
  • UltraPermissions: 4.4.5 or newer
  • zPermissions: 1.3-SNAPSHOT-b6 or newer
  • PermissionsEx: 1.22.7 or newer
  • GroupManager: 2.0-Phoenix or newer
Other permissions plugins may also work but support will be given only to these listed above.

Following spawners plugins are supported but optional:
The plugin is incompatible with StackableItems plugin.


jWFFjYE.png

  • Purchase (thanks!) and download the plugin
  • Stop your server, put the .jar file in your server's /plugins/ directory
  • Start the server, plugin will generate all necessary config files
  • Fill in config.yml with desired settings
  • Restart the server
  • Done!
wDVgYnP.png

All configuration files are easy to edit. If any of them lacks a feature you wish to be added, please contact us.

Configuration examples (please don't copy them, the plugin will generate all necessary files):

For more detailed installation & configuration guide please refer to the z1d77cx.png Configuration tutorial.


B9FuuaK.png


hb8GCgJ.png

This plugin comes with a simple API available at https://github.com/brcdev-minecraft/shopgui-api.

yH4XpJb.png

1. How do you add more pages?
Adding a new page is as simple as adding a page: x entry where x is the page number. When there's at least 1 item on a page it will be automatically added to the GUI. Slot numbers start from 0 for every page.
Example: http://pastebin.com/xjpWWUBf

2. How do you make weapons/armor/potions unstack?
You can make multiple weapons/armor/potions unstack by adding unstack: true entry to the item.
Example: http://pastebin.com/tJEmxW0g

3. How do you set other item as a placeholder instead of the sold one?
You can set another item as a placeholder in order to sell a different item (even with a different lore or name) by adding additional a placeholder entry below specific item in the shop yml.
Example: http://pastebin.com/bWU5Vygu

4. How do you make it so bought commands are executed by the player instead the console?
Simply add the runAsBuyer: true entry to your command item in the shop yml.
Example: http://pastebin.com/aUqvg651

5. How do you execute commands when player clicks/buys/sells an item?
For commands executed by the player you can add any of following to an item: commandsOnClick, commandsOnBuy, commandsOnSell
For commands executed by the server console you can use: commandsOnClickConsole, commandsOnBuyConsole, commandsOnSellConsole
OnClick gets executed when a player clicks an item in the shop menu (can be used for linking to other shops/plugins)
OnBuy/OnSell get executed after a player buys/sells the item
Example: https://pastebin.com/2q6yBMmG

6. How to add commands on item click to the main /shop menu?
You can use both commandsOnClick and commandsOnClickConsole described above in the main menu as well. You can use it both for an item actually opening a shop or a placeholder item with type DUMMY.
Example: https://pastebin.com/hiMhzvDs

7. Where do you find all the material names which can be used?
Some of the items have different material name than that one you know from the game and some require changing the data value (damage value) of the item. Please look for such items here.

8. How do you change the size of a shop?
You can change the size of any of shop inventories in the shop yml. Simply add a size: x entry where x is the desired size (it has to be either 9, 18, 27, 36, 45 or 54).
Example: http://pastebin.com/TtNtRtTh
More information: http://wiki.brcdev.net/ShopGUIPlus/Installation_&_configuration#Changing_sizes.2Fbuttons_of_shops

9. How do you make the buying/selling process faster?
You can enable quickBuySell in your config.yml. This will result in the amount selection GUI not being closed after buying or selling an item.

10. How do you edit the amount selection GUI buttons/slots?
Please refer to http://wiki.brcdev.net/ShopGUIPlus/Installation_&_configuration#Amount_selection_GUI_customization.

11. How do you use the per-item permissions?
It's explained here: http://wiki.brcdev.net/ShopGUIPlus/Installation_&_configuration#Using_per_item_permissions

12. How do you disable direct access to a shop (using the GUI or /shop <name>) so it can be accessed only by having it open from the console/by another plugin?
Simply add the denyDirectAccess: true entry to the shop in the shop yaml. Then the only way for players to access the shop will be to have the /shop <player name> <shop name> executed by
the console/another player/plugin.
Example: http://pastebin.com/Gkerd04V

13. How do you remove custom name/lore from the item bought by players?
You can remove it by adding stripItemMeta: true entry to the item.
Example: http://pastebin.com/GLrDv9S3

14. How do you change the maximal item stack size (regardless of global settings from config.yml)?
Simply add a maxStackSize entry to desired item in the shop yaml.
Example: http://pastebin.com/PF3W6M8s

15. How do you sell multiple permissions?
Simply add a permissions list to the shop item and list there all permissions. You can add the force flag if you want to allow players to buy the entire set of permissions even if they already have one or more of them (they won't be able to buy if they have all of them though).
Example: http://pastebin.com/nrzEz0Zz

16. How do you edit the format of displayed price?
You can add following settings at the bottom of your config.yml and edit them as you wish: http://pastebin.com/69RX1hpB

17. How do you edit the receipt message sent after buying/selling an item?
You can define the custom messages at the bottom of the shop item (messageBuy, messageSell, messageSellAll). Same placeholders apply as in the default messages from lang.yml.
Example: http://pastebin.com/98XSJrs0

18. How do you limit the item stack size players are able to enchant at once?
Simply add an entry named enchantmentStackSizeLimit with the value of the limit.
Example: http://pastebin.com/tvdqTYfJ

19. How do you set a different name of each page of the shop?
Add an entry named namePerPage below name in the shop yaml. You can set as many names as you wish (the format is PAGE: NAME)
Example: http://pastebin.com/Zmdc03My

20. How do you sell spawners?
It's explained here (it requires one of the spawners plugins listed above in "Requirements" section): http://wiki.brcdev.net/ShopGUIPlus/Installation_&_configuration#Mob_spawners

21. How do you disallow selling items with name/lore different from the shop item's ones?
Simply add a compareMeta: true setting to your shop item in the shop yaml.
Example: http://pastebin.com/DsVWWC4h

22. How do you change the /shop command?
You can't completely change it, you can only add aliases using the spigot's built-in commands.yml file (you can find in the root directory of your server).
Example: http://pastebin.com/LvqrGVg3

23. How do you add "Owned"/"Not owned" tag to permission shop items?
Simply add %owned% placeholder to shopItemLoreFormat -> permission in config.yml. It will be replaced with an appropriate tag.
Example: http://pastebin.com/ubDZh7zB

24. How do you hide only one of the "Owned"/"Not owned" tags from permission shop items?
If you want to have only one of them displayed simply set the other one to blank in lang.yml. The example below shows how to have only the "Owned" tag displayed.
Example: http://pastebin.com/QieD3NLb

25. How do you set up the price modifiers?
It's explained at the wiki: http://wiki.brcdev.net/ShopGUIPlus/Price_modifiers

26. How do you add an alias /sellhand for /sell hand (with no space inbetween)?
You can add it in commands.yml in the root folder of your server like so: https://pastebin.com/B7Rh15tt

27. How do you enable compareMeta and/or stripItemMeta globally for all items?
Add the following section to your config.yml and adjust it to your needs: https://pastebin.com/MexHAhkX

28. How do you make /sell hand sell all items of the type from the inventory instead of the single one being held in the hand?
Set sellsAllItems to true in the sellHand section in config.yml.

29. How do you allow/block access to particular shop in particular worlds?
You can add either worldsWhitelist (to whitelist allowed worlds) or worldsBlacklist (to blacklist blocked worlds) entry to the shop in the shop yaml
Example #1 (this will allow access in world_nether only):
https://pastebin.com/Lk0p5yZH
Example #2 (this will allow access in any world except world_nether):
https://pastebin.com/SULMAUSW

30. How do you fill shop and/or main menu with certain item, eg. a glass pane?
Main menu - set the item in shopMenuFillItem section in config.yml, example: https://pastebin.com/Y5zV2p4M
Shop menu - set the item in fillItem in each shop yaml, example: https://pastebin.com/kjQAg3xS

31. How do you require players to have certain permissions before they are able to purchase an item?
You can add requiredPermissions list to an item inside the shop yaml.
Example: https://pastebin.com/zh21u74e

32. How do you add an item just for decoration of the shop of no other purpose?
You can add item with type DUMMY (since 1.18.2 version of the plugin). Such items can't be bought or sold, they can be used for commands on click though.
Example: https://pastebin.com/2yQyfAJP

33. How do you add custom economy plugin support?
You can use the EconomyProvider (see section API above for link) to implement your own economy handler. Then you need to use the ShopGuiPlusApi#registerEconomyProvider method to register it and set the economyType in config.yml to CUSTOM.

34. How do you change the click cooldown inside GUIs?
You can change it by adding a clickCooldown entry to gui section in config.yml. The value is click cooldown in milliseconds (250 ms is default).
Example: https://pastebin.com/EvX9MDaG

RgVJuFK.png

By purchasing this plugin resource you agree to following terms of service:
  • No refunds will be given unless a solid reasoning is provided
  • You may not redistribute the plugin jar or any part of it's source code
  • Redistribution of config files is allowed
  • We may refuse to give you support without any specific reason
  • You may modify the plugin for personal use only

Looking for an auction plugin? Check out AuctionGUI+
Icon credits: Freepik, Flaticon, icons8
Author
Wifi
Downloads
0
Views
23
First release
Last update

Ratings

0.00 star(s) 0 ratings

More resources from Wifi

Top