HyperMerchant
I will no longer be supporting this plugin. I can't find the time or motivation and I have moved on to Sponge for my personal servers. If anyone is interested in forking this, go right ahead and I will link to your project.
Thanks to everyone who reported a bug or donated their time or cryptocurrency.
Introducing HyperMerchant
HyperMerchant is a shopmenu GUI and NPC shopkeeper plugin for HyperConomy shops.
HyperConomy is the premier fully dynamic minecraft shop plugin. It is loaded with super unique features and is the perfect shop/economy plugin for RP, Faction, Freeplay, Towny, and Hybrid servers; Or any other server that is in need of a superb economy or shop plugin.
HyperConomy is most likely compatible with whatever economy plugin you are already using; And if you don't have an economy plugin already, HyperConomy has one built in.
So what is a fully dynamic shop plugin? It means that prices change automatically based on what your players buy and sell, much like they would in a real economy. This functionality can be disabled if you want prices to remain the same. Check out HyperConomy now.
HyperMerchant simmers alongside and together they become a super sauce, packed with vitamin awesome!
To get started, download the correct versions of each program. Details can be found in the compatibility guide.
Follow the links below to learn more about configuring and using HyperMerchant.
Commands and Permissions
Configuration
Menu Buttons
Compatibility
How To
Languages
HyperMerchant Features
Coming soon in version 1.58
Language support. Currently available in the latest development build.
- Simple to use Inventory-style shop menus.
There are helpful tooltips in the shop menu to guide new players.
Purchase 1, 8, or a full stack of items in a single click.
To sell items, simply drag them from your inventory window to the shop window. - Management Menu for player shops. Players can use /mmenu while staning in their shop, or shift+click their shopkeeper NPC.
- NPC's are not required, you can enjoy the shop interface with /shopmenu and /remotemenu commands.
- Assign many NPC's around your world to the same shop.
- Convenient commands to quickly set NPC greetings, farewells, offduty, and service denial messages.
- NPCs can be toggled to offduty mode to temporarily close shops.
- Players who own a player shop can be "clicked on" to open their shop menu.
- Player shop owners can toggle themselves "/onduty" and you can limit them to only being "open" while inside their shop.*
- Your players can /hire their own NPC shopkeepers (clerks) for a configurable "comission percentage".
- You can set up NPCs who are ready to be hired by a player to work in that player's shop.
- You can set up shops to be rented by players with NPC shopkeepers included.
- Configure the Interface Icons in the shopmenu gui by editing "menubuttons.yml".
- Sort menu by name, material, sell price, buy price, or stock amount. (donated for by hellphish)
- Hide items with zero stock. (donated for by hellphish)
Requirements
See the compatibility page for a breakdown of Bukkit + HyperConomy + HyperMerchant + Citizens matchups.
HyperMerchant is compatible with Java 6.
You must have Citizens2 installed to use NPC shopkeepers. You do not need Citizens if you only want to use the shop menus.
Development Builds and Source Code
Development builds are available at the continous integration server.
Development builds have not been verified safe by Bukkit staff. Use at your own risk.
Get the source for HyperMerchant on github.
Donations
I now accept donations in cryptocurrency. If you message me I will happily honor you as a donor on this page.
DogeCoin:
DJHgjbD2qpeWstJxBtyzEVetPSeGiQN2Zt
BitCoin:
1EwTvDRXu9nERfzdFxWZMV8y5ct76e1DPT
SHORT VIDEO TUTORIAL
https://www.youtube.com/watch?v=afvurpJJC6g
Also, you can direct your players to this video on how to shop in HyperConomy shops via HyperMerchant menus or HyperConomy commands:
Shopping Tutorial: http://www.youtube.com/watch?v=Ck4gr-QrjG8
Video is courtesy of JacksmackDave. Thank you!
Special Thanks
Thanks to Tux2 for getting me started with this bukkit plugin tutorial.
Thanks to nisovin for sharing his menu code in this forum post.
And especially thanks to RegalOwl for developing the featurefilled HyperConomy plugin. It is the machine and HyperMerchant is just an interface built upon it.
Much credit also goes to the developers of Citizens, whose plugin provides all the npc interaction.
Reporting Bugs
If you are having a problem, there is a good chance it has never been reported yet. If I don't hear about the bug, I probably won't ever know about the bug, because I don't run a populated server to test out every feature of HyperMerchant.
Please take the time to report any issue, it will be a help to the community and your own server. I usually check this page each day. Thanks! =)
-
View User Profile
-
Send Message
Posted Dec 23, 2014im using latest dev builds HyperConomy B: v0.975.2 [Dev] for 1.8.1 HyperMerchant : #6 21-Dec-2014 10:37
i created admin shop added the shop to the npc. i get sorry i am closed for business.
i try /shopmenu give me error errors :
org.bukkit.command.CommandException: Unhandled exception executing command 'shopmenu' in plugin HyperMerchant v1.57-dev at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) [minecraft_server.jar:git-Spigot-b023457-7017af7] at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) [minecraft_server.jar:git-Spigot-b023457-7017af7] at org.bukkit.craftbukkit.v1_8_R1.CraftServer.dispatchCommand(CraftServer.java:644) [minecraft_server.jar:git-Spigot-b023457-7017af7] at net.minecraft.server.v1_8_R1.PlayerConnection.handleCommand(PlayerConnection.java:1115) [minecraft_server.jar:git-Spigot-b023457-7017af7] at net.minecraft.server.v1_8_R1.PlayerConnection.a(PlayerConnection.java:950) [minecraft_server.jar:git-Spigot-b023457-7017af7] at net.minecraft.server.v1_8_R1.PacketPlayInChat.a(PacketPlayInChat.java:26) [minecraft_server.jar:git-Spigot-b023457-7017af7] at net.minecraft.server.v1_8_R1.PacketPlayInChat.a(PacketPlayInChat.java:53) [minecraft_server.jar:git-Spigot-b023457-7017af7] at net.minecraft.server.v1_8_R1.PacketHandleTask.run(SourceFile:13) [minecraft_server.jar:git-Spigot-b023457-7017af7] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) [?:1.7.0_55] at java.util.concurrent.FutureTask.run(FutureTask.java:262) [?:1.7.0_55] at net.minecraft.server.v1_8_R1.MinecraftServer.z(MinecraftServer.java:683) [minecraft_server.jar:git-Spigot-b023457-7017af7] at net.minecraft.server.v1_8_R1.DedicatedServer.z(DedicatedServer.java:316) [minecraft_server.jar:git-Spigot-b023457-7017af7] at net.minecraft.server.v1_8_R1.MinecraftServer.y(MinecraftServer.java:623) [minecraft_server.jar:git-Spigot-b023457-7017af7] at net.minecraft.server.v1_8_R1.MinecraftServer.run(MinecraftServer.java:526) [minecraft_server.jar:git-Spigot-b023457-7017af7] at java.lang.Thread.run(Thread.java:744) [?:1.7.0_55] Caused by: java.lang.NullPointerException at grokswell.hypermerchant.ShopMenu.<init>(ShopMenu.java:106) [?:?] at grokswell.hypermerchant.HyperMerchantPlugin.onCommand(HyperMerchantPlugin.java:131) [?:?] at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) [minecraft_server.jar:git-Spigot-b023457-7017af7] ... 14 more
-
View User Profile
-
Send Message
Posted Dec 17, 2014@DrkMatr1984
Thanks for report =) Should be fixed in latest dev build.
HyperMerchant project has jenkins service once again. Thanks to all the folks at the Citizens project and mcmonkey for setting it up.
http://ci.citizensnpcs.co/job/HyperMerchant/
Dev builds have not been tested by Bukkit staff. Use at your own risk.
-
View User Profile
-
Send Message
Posted Dec 17, 2014@Ava2421
/rslist
Spits out error when there aren't any shops to show.
17.12 17:50:27 [Server] INFO ... 14 more 17.12 17:50:27 [Server] INFO at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) [spigot.jar:git-Spigot-612de46-07c2162] 17.12 17:50:27 [Server] INFO at grokswell.hypermerchant.HyperMerchantPlugin.onCommand(HyperMerchantPlugin.java:230) [?:?] 17.12 17:50:27 [Server] INFO at java.lang.String.substring(Unknown Source) [?:1.7.0_55] 17.12 17:50:27 [Server] INFO Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: -1 17.12 17:50:27 [Server] INFO at java.lang.Thread.run(Unknown Source) [?:1.7.0_55] 17.12 17:50:27 [Server] INFO at net.minecraft.server.v1_8_R1.MinecraftServer.run(MinecraftServer.java:526) [spigot.jar:git-Spigot-612de46-07c2162] 17.12 17:50:27 [Server] INFO at net.minecraft.server.v1_8_R1.MinecraftServer.y(MinecraftServer.java:623) [spigot.jar:git-Spigot-612de46-07c2162] 17.12 17:50:27 [Server] INFO at net.minecraft.server.v1_8_R1.DedicatedServer.z(DedicatedServer.java:316) [spigot.jar:git-Spigot-612de46-07c2162] 17.12 17:50:27 [Server] INFO at net.minecraft.server.v1_8_R1.MinecraftServer.z(MinecraftServer.java:683) [spigot.jar:git-Spigot-612de46-07c2162] 17.12 17:50:27 [Server] INFO at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.7.0_55] 17.12 17:50:27 [Server] INFO at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.7.0_55] 17.12 17:50:27 [Server] INFO at net.minecraft.server.v1_8_R1.PacketHandleTask.run(SourceFile:13) [spigot.jar:git-Spigot-612de46-07c2162] 17.12 17:50:27 [Server] INFO at net.minecraft.server.v1_8_R1.PacketPlayInChat.a(PacketPlayInChat.java:53) [spigot.jar:git-Spigot-612de46-07c2162] 17.12 17:50:27 [Server] INFO at net.minecraft.server.v1_8_R1.PacketPlayInChat.a(PacketPlayInChat.java:26) [spigot.jar:git-Spigot-612de46-07c2162] 17.12 17:50:27 [Server] INFO at net.minecraft.server.v1_8_R1.PlayerConnection.a(PlayerConnection.java:950) [spigot.jar:git-Spigot-612de46-07c2162] 17.12 17:50:27 [Server] INFO at net.minecraft.server.v1_8_R1.PlayerConnection.handleCommand(PlayerConnection.java:1115) [spigot.jar:git-Spigot-612de46-07c2162] 17.12 17:50:27 [Server] INFO at org.bukkit.craftbukkit.v1_8_R1.CraftServer.dispatchCommand(CraftServer.java:645) [spigot.jar:git-Spigot-612de46-07c2162] 17.12 17:50:27 [Server] INFO at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) [spigot.jar:git-Spigot-612de46-07c2162] 17.12 17:50:27 [Server] INFO at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) [spigot.jar:git-Spigot-612de46-07c2162] 17.12 17:50:27 [Server] INFO org.bukkit.command.CommandException: Unhandled exception executing command 'rslist' in plugin HyperMerchant v1.57-dev 17.12 17:50:27 [Server] INFO [17:50:27 ERROR]: null
Easy enough to get around but still annoying
-
View User Profile
-
Send Message
Posted Dec 17, 2014Thanks shmancelot! Works! Keep up the good work and know that my kids and their friends appreciate it!
-
View User Profile
-
Send Message
Posted Dec 17, 2014@itamarbeer
That would be HyperMerchant-1.56.1
The link is on this page. See the compatibility guide for more info on which version of HyperConomy and Citizens to use wih it
-
View User Profile
-
Send Message
Posted Dec 17, 2014can you send link to the plugin for version 1.7.10
-
View User Profile
-
Send Message
Posted Dec 17, 2014@Ava2421 Alright should be fixed in this build:
http://speedy.sh/z76Hq/hypermerchant-1.57-dev.jar
This build has not been verified safe by Bukkit staff or any other third party. Use at your own risk.
Thank you very much for your help =)
-
View User Profile
-
Send Message
Posted Dec 16, 2014Ok.. when I type "/hmerchant setshop worldstore" when I'm in a server shop with a newly created NPC with the trait hypermerchant (/npc create Milo trait hypermerchant).
Tried "/hmerchant setshop worldstore id 1" also with it still giving the response you must have an NPC selected to use command /hmerchant.
In the console output it shows: [21:31:04] [Server thread/INFO]: [HyperMerchant] /hypermerchant setshop call threw exception java.lang.NullPointerException [21:31:04] [Server thread/INFO]: Honeynose issued server command: /hmerchant setshop worldstore id 1
Other things I have tried: The command "/hmerchant info id 1" works... so it is selecting the npc.
Tried going into and manually setting the store in the citizens2 save file for milo(id 1). now i get this in the console when i type /citizens reload [21:38:43] [Server thread/INFO]: [HyperMerchant] npc #1 is assigned to a shop named worldstore. This shop does not exist.
but it does../shopmenu works fine no errors.
NOTE: I used the correct
id (for id and traits), but gives me red crossed out lines like my below post. But it was typed correctly :) Thanks! Need more info let me know.EDIT:Reinstalled and rebooted...changed saves.yml in citizens to the correct worldstore..rebooted and seems to work now. Still can't do it with the command /hmerchant
-
View User Profile
-
Send Message
Posted Dec 16, 2014@Ava2421
Thank you!
I will run this down after work tonight.
Please if you will, share the commands as you typed them.
-
View User Profile
-
Send Message
Posted Dec 16, 2014hmmm did not mean to have some of my post lined out in red...did not know what i did lol
-
View User Profile
-
Send Message
Posted Dec 16, 2014Ok... have had some time to test out the new merchant. The only thing im having a problem with is when I try to assign an npc to a store. It says I have to select a hmerchant npc first. tried the
id argument and got the same response. The console only shows 1 line: [16:13:28] [Server thread/INFO]: [HyperMerchant] /hypermerchant setshop call threw exception java.lang.NullPointerException .Thanks
-
View User Profile
-
Send Message
Posted Dec 15, 2014@shmancelot
Thank you for steering me in the right direction. ^_^
-
View User Profile
-
Send Message
Posted Dec 15, 2014@bren42
That is a cool and somewhat specific suggestion.
But I don't think it really fits in to the core of what HyperMerchant is.
You should be able to do something like that with Denizen scripting.
There is always activity on the #denizen-dev irc channel on EsperNet servers.
If you are interested in learning to use Denizen, the folks there are fantastic helping anyone with a humble attitude.
edit: I see also that they have added HyperConomy support to Depenizen, which should make it a little easier.
-
View User Profile
-
Send Message
Posted Dec 15, 2014Alright I have a working build of HyperMerchant.
It is compatible with spigot 1.8 and the latest build of Citizens and HyperConomy. DO NOT use it on any server that is important to you.
Please test it if you can.
Here is the link:
http://speedy.sh/jFaed/hypermerchant-1.57-dev.jar
This build has not been verified safe by Bukkit staff or any other third party. Use at your own risk.
I have tested the menu gui a bit.
The Water and Lava icons no longer work, so if you are using those as your menu buttons, you will need to edit your menubuttons.yml file to use something else. I changed mine to STAINED_GLASS_PANE
I have not tested anything relating to NPC merchants. Thanks ahead of time for your bug reports. I will fix them straight away.
-
View User Profile
-
Send Message
Posted Dec 14, 2014Just curious, but how difficult would it be to add functionality to HyperMerchant to add in a robbery mode? I am building a 1920's era mafia rp server, and the ability to strong arm merchants would be alot of fun for players, even if it was on a timer/limiter. Maybe some sort of time requirement for a successful robbery, with a chance to activate nearby denizens to attack the robbers? Thanks in advance for your consideration.
-
View User Profile
-
Send Message
Posted Dec 14, 2014Thanks for the hard work. Looking forward to it!
-
View User Profile
-
Send Message
Posted Dec 14, 2014I put a few hours into HyperMerchant last night/this morning. A lot has changed so I anticipate it will take at least 2 more hours best case scenario. I will try to get a working build tonight. 5:45am and time for bed. =)
-
View User Profile
-
Send Message
Posted Dec 11, 2014@shmancelot
Thanks for the help. Come to find out it was WorldGuard. I needed to set the "use" flag to allow.
-
View User Profile
-
Send Message
Posted Dec 10, 2014Thanks for taking time to look at this for us, this is one of the last pieces of the puzzle for our new server, having HyperConomy and HyperMerchant back together would be a massive plus on Spigot 1.8
It's been a long time coming but at last I think things are getting back on track in all things Minecraft, despite the recent "events"
-
View User Profile
-
Send Message
Posted Dec 9, 2014@xXSshadowXx
try: citizens.npc.*
and for your admins: citizens.admin.*