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! =)
@blokzeil1
The issue of being able to use the /hmerch command when Citizens has not been loaded is fixed in the latest 1.31 dev build, available from the link above in the "Development Builds and Source Code" section.
@blokzeil1
Thank you for reporting this error. I am guessing that your server does not have Citizens2 installed.
If that is the case, I will fix this later today.
i get this error, I use The last offical build of hypereconom
<<code [20:16:56 ERROR]: null org.bukkit.command.CommandException: Unhandled exception executing command 'hmerchant' in plugin HyperMerchant v1.31 at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) [craftbukkit_vgbin.jar:git-Bukkit-1.7.2-R0.2-b2974jnks] at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:196) [craftbukkit_vgbin.jar:git-Bukkit-1.7.2-R0.2-b2974jnks] at org.bukkit.craftbukkit.v1_7_R1.CraftServer.dispatchCommand(CraftServer.java:542) [craftbukkit_vgbin.jar:git-Bukkit-1.7.2-R0.2-b2974jnks] at net.minecraft.server.v1_7_R1.PlayerConnection.handleCommand(PlayerConnection.java:932) [craftbukkit_vgbin.jar:git-Bukkit-1.7.2-R0.2-b2974jnks] at net.minecraft.server.v1_7_R1.PlayerConnection.a(PlayerConnection.java:814) [craftbukkit_vgbin.jar:git-Bukkit-1.7.2-R0.2-b2974jnks] at net.minecraft.server.v1_7_R1.PacketPlayInChat.a(PacketPlayInChat.java:28) [craftbukkit_vgbin.jar:git-Bukkit-1.7.2-R0.2-b2974jnks] at net.minecraft.server.v1_7_R1.PacketPlayInChat.handle(PacketPlayInChat.java:47) [craftbukkit_vgbin.jar:git-Bukkit-1.7.2-R0.2-b2974jnks] at net.minecraft.server.v1_7_R1.NetworkManager.a(NetworkManager.java:146) [craftbukkit_vgbin.jar:git-Bukkit-1.7.2-R0.2-b2974jnks] at net.minecraft.server.v1_7_R1.ServerConnection.c(SourceFile:134) [craftbukkit_vgbin.jar:git-Bukkit-1.7.2-R0.2-b2974jnks] at net.minecraft.server.v1_7_R1.MinecraftServer.u(MinecraftServer.java:655) [craftbukkit_vgbin.jar:git-Bukkit-1.7.2-R0.2-b2974jnks] at net.minecraft.server.v1_7_R1.DedicatedServer.u(DedicatedServer.java:250) [craftbukkit_vgbin.jar:git-Bukkit-1.7.2-R0.2-b2974jnks] at net.minecraft.server.v1_7_R1.MinecraftServer.t(MinecraftServer.java:545) [craftbukkit_vgbin.jar:git-Bukkit-1.7.2-R0.2-b2974jnks] at net.minecraft.server.v1_7_R1.MinecraftServer.run(MinecraftServer.java:457) [craftbukkit_vgbin.jar:git-Bukkit-1.7.2-R0.2-b2974jnks] at net.minecraft.server.v1_7_R1.ThreadServerApplication.run(SourceFile:617) [craftbukkit_vgbin.jar:git-Bukkit-1.7.2-R0.2-b2974jnks] Caused by: java.lang.NoClassDefFoundError: net/citizensnpcs/api/CitizensAPI at grokswell.hypermerchant.HyperMerchantCommand.<init>(HyperMerchantCommand.java:32) [?:?] at grokswell.hypermerchant.HyperMerchantPlugin.onCommand(HyperMerchantPlugin.java:154) [?:?] at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) [craftbukkit_vgbin.jar:git-Bukkit-1.7.2-R0.2-b2974jnks] ... 13 more>>
<</code>>
The latest dev build provides some new features.
Get it from the development builds link further up this page.
It is version 1.31.jar
Players can now click on a player who owns a shop to open their shop menu.
Shop owners can use the /onduty command to toggle whether players can click them for shopping or not.
By default they are set to "onduty: false" so they need to use the /onduty command at least once to "open themselves for business".
There is an option in the config file to disable clicking on shop owners all together.
There is another option that requires shop owners to be physically inside of their shop to be able to be clicked on, otherwise they can be clicked on anywhere in the world.
The config file also allows you to set your default messages for new hypermerchant npcs.
@shmancelot
Working phenomenally. Thank you for such a great plugin, and your quick responses. Cheers!
@angelsklutch
Sorry about the bad link. I should have logged out of cloudbees then tried it. Working on a different link now.
Please try dev build #335 of HyperConomy. You can find the link to HyperConomy dev builds on the HyperConomy project page.
eidt: here's a link that should work for HyperMerchant dev build download goodness. http://repository-remremrem.forge.cloudbees.com/snapshot/org/grokswell/hypermerchant/hypermerchant/
These builds have not been approved by the BukkitDev staff. Use them at your own risk. <- required disclaimer
@shmancelot
I don't think I've added any additional economies, nor have I edited the shops default economy. No message. Sometimes the item I'm holding will temporarily swap with the item I'm clicking on in the shop, but I'm sure that's just lag. I'm using HyperMerchant v1.3 and HyperConomy v0.974.2. I tried following the dev build link for HyperMerchant, but I don' think the link is working. It brought me to login page for CloudBees... Just for the heck of it I hooked it to my GMail account and tried the link again, getting this page.
@angelsklutch
Does the shop you're selling to belong to the default or another economy?
Is there a message when you try to sell the item?
which version of HyperConomy and HyperMerchant are you using (try latest dev builds).
Having trouble selling items. I can't seem to get the GUI sell feature to work... When I drag an item into the shop, nothing happens. The item stays in my hand, nor do I lose or gain any money. However, I can sell through the /sell command. Any ideas?
Finally got a Jenkins server running correctly.
Dev builds are now available from that server instead of the github repository.
The link is further up this page.
@InsomniaCraft
Denizen does have pretty robust scripting capabilities. There are endless possibilities for someone who can write some custom scripts.
My plan for hiring npcs is that players will use a command like "/hmerch hire" while standing in their shop. There will be a "/hmerch tp" command so they can position the merchant, but only inside the shop.
There will be a setting in the config.yml "npc-commission: 0.0 to 100.0" which is the percentage of profit that the npc keeps. You will be able to adjust commission per npc if you are admin.
None of this is on github right now.
Regarding donations, I am not accepting any at this time. Thank you very much! I appreciate your support, and your kind words =)
@shmancelot
Thanks shmancelot, appreciate it, and this is a great plugin. My players don't appreciate it as much as I do, but hyperconomy and hypermerchant is the way any, even a real, economy should work. I just discovered the component items section of the config today, which was a conversation I debated with my staff originally when initially grabbing HyperConomy.
Have you considered using Denizen to create a script for the hired merchants? It wouldn't be too hard to setup an assignment script to assign a hireable npc, a player speaks to it, rents it for a period of time, with a price and time variable. Just a thought, I'm not code wiz, but I'll have @Benjibobs take a peak at it and see if he can't work up some magic as well.
Is there anything in the works for the hireable npcs as of now that he can work with on github? and where can I send a small donation for the work you've done on this plugin?
@InsomniaCraft
I think the permission for /ms is hyperconomy.playershop
If it's not working, please mention it on the HyperConomy project page.
I wonder if there already exists a plugin for region based permissions. I'll look into it after work.
edit: found one http://dev.bukkit.org/bukkit-plugins/regionperms/
and another http://dev.bukkit.org/bukkit-plugins/regioncommand/
These should be able to regulate HyperMerchant, HyperConomy, and Citizens permissions to your player regions.
(also look at the plugin Skript for writing your own custom commands.)
Beyond this, I will look into adding built-in region support as time permits.
You are right about npcs, right now you must create one, or player must be allowed to.
The config file isn't "active" yet, but I am working on making it easier for players to hire merchants without needing administrator help or npc permissions.
@shmancelot
Thank you for clearing that up, seems to be working properly. I do have one concern or maybe request, but how can I limit where my players can put shops? Do you think you can put a worldguard check system in somehow so that they must be a member or owner of a region? I use SimpleRegionMarket that allows players to rent an area for a limited period of time, their shop would essentially reside there, I actually dont want people running around making shops wherever they want, nor npcs.
Trying to think of a way to handle the npcs as well, if Im understanding correctly, that means I need to create an npcs for each individual persons shop, or allow them to do it
By the way, I dont know if its intended, but as I said above, a normal player with no permissions to do so, can /ms create, dont know if thats intended.
EDIT: Also noticed "npc-for-hire: 'true'" in the config, is this something active and can I utilize it?
@InsomniaCraft
Sorry I haven't explained this at all.
At this time you can set up a player shop with the HyperConomy /manageshop (/ms) command.
/ms create <shopname> (create a player shop where you are standing)
/ms select <shopname> (select the shop you are editing)
/ms owner <playername> (set the owner of a playershop)
Your players manage their shop with the /ms command as well.
/ms add <item> <amount> (add items from their inventory to their shop)
/ms status <item> <buy, sell, trade, none> (set an items status for trading)
check the HyperConomy manual for a little more info. This will all get easier to use in the future and I plan to implement a gui for players to edit shops with.
As for npc, just create a hypermerchant like normal and assign it to the players store like normal. If you want the player to be able to move and equip the npc, use /npc owner <playername>, or you can position the npc for your players.
@shmancelot
Forgive me, I'm a little confused as to how to setup the player shops. Would I be correct in assuming that this ties into their chest shop provided by HyperConomy? How would I assign that npc to that player and how would they manage it, etc?
@InsomniaCraft
Yes. These items should be available in the shop menus as soon as they are added to the HyperConomy database.
edit: actually the different fish are already in the database. try the instructions on the Hyperconomy FAQ page.
look for the section called "How do I add new items to HyperConomy?"
Are you going to add the new items from 1.7 to the shops, such as the pufferfish, and salmon?
@DoctorCooper
You can set the limit of shops per player in the HyperConomy config.yml
find the setting:
max-shops-per-player: <x>
Players are only allowed to edit their own shop by default. A player can give other players permission to edit their shop with the /manageshop (/ms) command.
/ms allow <playername>
How would I allow players to only open <x> amount of shops and only be able to edit their own?