GlobalMarket
GlobalMarket is a global market system. It allows players to buy and sell items via a convenient in-game interface. It's similar WoW's Auction House or Runescape's Grand Exchange. I created this plugin awhile ago (back in the days of WebAuction, it's what inspired me) for private use, but I've decided to release it to the public. This plugin requires Vault and ProtocolLib, other than that, just drop it in plugins (make sure you have Vault plus a supported economy plugin installed) and start trading!
Features
- Players can put any item up for sale using a dead simple in-game GUI system (see below)
- Uses ProtocolLib for proper item serialization that supports Bukkit, Spigot, and Cauldron
- Real time interface, all trades show up immediately without having to 'refresh' or close the GUI
- No maintenance or admin interaction required
Mailbox system that allows you to set up market areas or auction houses(not currently in 2.0.0)A built in price guide that compiles average prices from previous transactions(not currently in 2.0.0)
Latest Dev Build
Development builds of this project can be acquired at the following continuous integration server.
These builds have not been approved by the BukkitDev staff. Use them at your own risk.
http://build.survivorserver.com/job/GlobalMarket%202.0.0/
Changelog
Usage
- The Interface
- This is a display of all current listings, you click an item to buy it. You can shift+click to remove a listing if you own it, or if you have the "globalmarket.listingsadmin" permission. Listings automatically expire after 1 week (configurable). You can use
/marketto access the menu.

- Stock
- When you purchase an item it will be sent to your stock. Stock is an entirely optional system but is suggested to be enabled, as disabling it will disable certain other features like
/market send. The stock system can hold a configurable amount of stacks of items in a configurable amount of slots. Once you place an item in your stock, you can list it to be sold to other players. Players can also send items to other players' stock via/market sendif they have the "globalmarket.command.send" permission.

- Server Listings
- You can create 'infinite listings' that do not expire and can't be bought out. Create them with
/market createinf <price> <[amount]>. There's a dedicated section to server listings in the Market menu. You'll need the "globalmarket.command.createserverlisting" permission to do this. Or you can disable this system all-together in the config.
Commands
| Command | Description | Permission |
|---|---|---|
| /market | Opens the Market menu. | globalmarket.use |
| /market ? | Shows command help. | <no permission> |
| /market send <player> <[amount]> | Sends the item you're holding to <player>'s stock. Amount is optional. | globalmarket.command.send |
| /market createinf <price> <[amount]> | Creates a server listing. Amount is optional. | globalmarket.command.createserverlisting |
| /market reload | Reloads config.yml | globalmarket.command.reload |
Permissions
- globalmarket.use - base permission, required to use /market
- globalmarket.listingsadmin - ability to remove all listings
- globalmarket.command.send - ability to use /market send
- globalmarket.command.createserverlisting - ability to use /market createinf
- globalmarket.command.reload - ability to use /market reload
Config
All config values have comments that explain what they do in config.yml, how convenient for me!
If you wish to blacklist items from being used on the Market, there is blacklist.json. You can add material values with meta values:
- APPLE:0 - blacklist apples
- INK_SAC:-1 - blacklist all dies
If you're running Cauldron, you can do things like:
- oredict:ingotSteel - blacklist any item with an OreDictionary value matching ingotSteel
- extracells:storage.component:-1 - blacklist all ExtraCells storage cells
Locale
Virtually every string in the plugin is editable via the "en_US.json" file, inside the plugin's JAR. It's pretty straightforward to edit. Don't replace or edit the %s or %1$s's, these are variables. For example, "Item sold: %s" would appear as "Item sold: Cobblestone" in-game. You can add/edit colors by typing & plus a color code. So light green (the color code is a) would be &a. You can find color codes here: http://ess.khhq.net/mc/
You can also create an entirely different language set, name it something like ch_CN.json, stick it in the server's JAR, and change the appropriate config value in config.yml to use it.
Source
https://github.com/Dasfaust/GlobalMarket
That's all for now. Sorry if things are unclear, I'll be updating this page with more information periodically. If you're stuck just add a reply and I'll do my best to help!
-
View User Profile
-
Send Message
Posted Jun 13, 2013@kivix3
/rg flag __global__ blocked-cmds /market
-
View User Profile
-
Send Message
Posted Jun 13, 2013Aloha xdasfaust
All right, i think i whould handle it with WorldGuard and disable the commands in the whole world, exept in the auctionhouse. But thank you anyway
mfg kivi
-
View User Profile
-
Send Message
Posted Jun 12, 2013@kivix3
There's no way to sell/send with a sign. It's hard to get arguments for the item you're listing, like price, amount, etc. Or who you're going to send it to. Could be done like the search button arguably, but I don't really like that idea.
@Siirus_Blackbane
You need Java 7.
-
View User Profile
-
Send Message
Posted Jun 11, 2013Hello, I'm trying to use the plugin on my server, but it won't create the files for me to customize, nor will it run at all. I am linking to paste bin the error that it gives me and any assistance would be helpful.
http://pastebin.com/vtDGF0yk
-
View User Profile
-
Send Message
Posted Jun 11, 2013Aloha xdasfaust
Yeah it's possible to turn off buy and acces mailnox without the sign. But how can I turn off selling and sending without sings. Or how can I allow selling and sending with signs?
Hope you can help me.
-
View User Profile
-
Send Message
Posted Jun 11, 2013@kivix3
It's possible. Check out the description under 'Usage'.
@dirtrider478
You can only make listings of single stacks at a time, so that's why numbers higher than 64 don't work. I am planning on adding sorting like you suggested :)
@Dragonkin01
I'm currently looking into this and will give an update. But I'm pretty sure it's Spigot and not the plugin.
@Dragonkin01
-
View User Profile
-
Send Message
Posted Jun 11, 2013Here's a couple of thoughts for your plugin:
-
View User Profile
-
Send Message
Posted Jun 10, 2013@Dragonkin01
I am also having the same issue and i have the latest version
-
View User Profile
-
Send Message
Posted Jun 10, 2013Hi, I'm running into an issue. Whenever I try to use the search function, I get an "Internal Server Error" and wind up kicked from my server. If I log back in quickly, I can actually type my search still.
I understand someone already had this issue and you told them to update their Spigot, so I have done so. The problem is still there though. This makes me inclined to think it's something else entirely. Here's the console info:
10.06 17:10:46 [Server] INFO at net.minecraft.server.v1_5_R3.ThreadServerApplication.run(SourceFile:573)
10.06 17:10:46 [Server] INFO at net.minecraft.server.v1_5_R3.MinecraftServer.run(MinecraftServer.java:404)
10.06 17:10:46 [Server] INFO at net.minecraft.server.v1_5_R3.MinecraftServer.q(MinecraftServer.java:472)
10.06 17:10:46 [Server] INFO at net.minecraft.server.v1_5_R3.DedicatedServer.r(DedicatedServer.java:227)
10.06 17:10:46 [Server] INFO at net.minecraft.server.v1_5_R3.MinecraftServer.r(MinecraftServer.java:583)
10.06 17:10:46 [Server] INFO at org.spigotmc.MultiplexingServerConnection.b(MultiplexingServerConnection.java:72)
10.06 17:10:46 [Server] INFO at net.minecraft.server.v1_5_R3.ServerConnection.b(SourceFile:35)
10.06 17:10:46 [Server] INFO at net.minecraft.server.v1_5_R3.PlayerConnection.d(PlayerConnection.java:115)
10.06 17:10:46 [Server] INFO at org.spigotmc.netty.NettyNetworkManager.b(NettyNetworkManager.java:218)
10.06 17:10:46 [Server] INFO at net.minecraft.server.v1_5_R3.Packet102WindowClick.handle(SourceFile:31)
10.06 17:10:46 [Server] INFO at net.minecraft.server.v1_5_R3.PlayerConnection.a(PlayerConnection.java:1413)
10.06 17:10:46 [Server] INFO at net.minecraft.server.v1_5_R3.Container.getSlot(Container.java:105)
10.06 17:10:46 [Server] INFO at java.util.ArrayList.get(Unknown Source)
10.06 17:10:46 [Server] INFO at java.util.ArrayList.rangeCheck(Unknown Source)
10.06 17:10:46 [Server] INFO java.lang.IndexOutOfBoundsException: Index: 47, Size: 45
10.06 17:10:46 [Server] WARNING Failed to handle packet for RedWir3d/xx.xx.xxx.xxx: java.lang.IndexOutOfBoundsException: Index: 47, Size: 45
-
View User Profile
-
Send Message
Posted Jun 10, 2013Another thing i would love to see is when searching a item if the items were listed from cheapest to most expensive that would be very helpful
-
View User Profile
-
Send Message
Posted Jun 10, 2013ok well ive been testing this plugin and so far i love it but there's a couple errors. It wont sell redstone or even recognize it, and if you cant type in any item greater then 64 even if you have the amount in your inventory.
-
View User Profile
-
Send Message
Posted Jun 10, 2013Aloha Everyone
This plugin looks really nice, but bevor I install it, I need to know something: Is it possible to open the Auctionhouse-Interface by clicking on a sign or a chest? Or even better, is it possible to open the Interface only by clicking on a sing or a chest? Because i want to use this Plugin on a RolePlay-Server and i want that all Player could only use the Auctionhouse in specific Buildings in Citys.
Sorry for my english, I'm Swiss ;D
-
View User Profile
-
Send Message
Posted Jun 9, 2013@xdasfaust
Awesome, hope you do! Thanks.
-
View User Profile
-
Send Message
Posted Jun 9, 2013@xdasfaust
could u possibly add an option where it tells the seller who bought their items?
-
View User Profile
-
Send Message
Posted Jun 9, 2013@alexshots
Wasn't calling you a noob! Haha, I still make tab mistakes sometimes. Glad you found a solution. I realized that I had moved the information about the blacklist under the main config listing when I was uploading version 1.2.1, it was denied due to automatically downloading libraries. I forgot to move the blacklist information back to under the dev builds section. So the blacklist is currently only available in dev builds. Didn't catch you were using 1.2.0 before, sorry. I've since then lost my 1.2.1 builds from changing my Jenkins config, I'm working on getting something stable to release.
Also, I don't call PEX in the plugin. I use Bukkit's .hasPermission("some.node").
@YoFuzzy3
Cool! I've had this exact idea before. I'll probably work that in in the future.
-
View User Profile
-
Send Message
Posted Jun 9, 2013A player from my server posted a really good suggestion for this plugin, maybe you're interested in working on it. He illustrated it very well. http://www.fuzzoland.com/index.php?threads/market-item-packages.1233/
-
View User Profile
-
Send Message
Posted Jun 9, 2013i found the reason why the blacklist feature does NOT work, due to you did not specify that, in the 1.2.2 dev build, you changed the blacklist ITEM_ID mapping method.
with ver 1.2.0, it must be a bug there, wrong blacklist is
correct blacklist is (but even with correct blacklist format, the blacklist won't work at all)
but in dev version number 38(1.2.2), you fixed the bug, and now the blacklist works, but you changed the mapping list, the new blacklist item id mapping list should be
WITHOUT the "yaml list entry mark" - at the beginning of each line, otherwise, errored.
...... i thought you should clearly specify that in your main page, or make people use 1.2.2 a.s.a.p.
to skip the blacklist bug in ver 1.2.0. it really wasted me tons of hours.
-
View User Profile
-
Send Message
Posted Jun 9, 2013I am not that noobish as you thought. and I am quite astonished that, you use PermissionsEx as your major permission node management plugins and even using that for plugin test... everyone here knows PEX is flawed. if you use PEX, then you should specify that in your main page, saying that your plugin requires PEX as dependency, due to, read this yourself https://docs.google.com/document/d/1BIgAU7senSG1hY0BjQAQFAnbuOqFhpln7ffN6pkOp4s/edit?pli=1
, use some other permissions node management plugin for rigorous test, there are many of them .
Group Manager(essentials), PermissionsBukkit, Group Based Permissions, GroupPermsLite, zPermissions, YAPP,
And now, i use PEX as you said, and GlobalMarket1.2.0, and Vault1.2.25, and BOSEconomy0.7.3.1a, and bukkit 1.5.2 r0.1 beta on windows vista,in config.yml, i added
the normal users in the server, still can make auctions with banned/blacklisted items, e.g. bedrock (block ID 7)as defined above, and THERE IS NO ERROR, in the server console.
try it yourself. please.
I wonder, is there any other lib file or third party plugin that you run with to supporting this plugin(but you forgot to notify that in your project main-page)
and If i use DEV version snapshot No.38, when a normal player tried to create an auction in the server, the errors in the console is
17:27:04 [INFO] player1 issued server command: /market create 5 1 17:27:04 [SEVERE] null org.bukkit.command.CommandException: Unhandled exception executing command 'mark et' in plugin GlobalMarket v1.2.2-SNAPSHOT at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:18 9) at org.bukkit.craftbukkit.v1_5_R3.CraftServer.dispatchCommand(CraftServe r.java:523) at net.minecraft.server.v1_5_R3.PlayerConnection.handleCommand(PlayerCon nection.java:965) at net.minecraft.server.v1_5_R3.PlayerConnection.chat(PlayerConnection.j ava:883) at net.minecraft.server.v1_5_R3.PlayerConnection.a(PlayerConnection.java :840) at net.minecraft.server.v1_5_R3.Packet3Chat.handle(Packet3Chat.java:44) at net.minecraft.server.v1_5_R3.NetworkManager.b(NetworkManager.java:292 ) at net.minecraft.server.v1_5_R3.PlayerConnection.d(PlayerConnection.java :109) at net.minecraft.server.v1_5_R3.ServerConnection.b(SourceFile:35) at net.minecraft.server.v1_5_R3.DedicatedServerConnection.b(SourceFile:3 0) at net.minecraft.server.v1_5_R3.MinecraftServer.r(MinecraftServer.java:5 81) at net.minecraft.server.v1_5_R3.DedicatedServer.r(DedicatedServer.java:2 26) at net.minecraft.server.v1_5_R3.MinecraftServer.q(MinecraftServer.java:4 77) at net.minecraft.server.v1_5_R3.MinecraftServer.run(MinecraftServer.java :410) at net.minecraft.server.v1_5_R3.ThreadServerApplication.run(SourceFile:5 73) Caused by: java.lang.NullPointerException at com.survivorserver.GlobalMarket.Market.itemBlacklisted(Market.java:28 7) at com.survivorserver.GlobalMarket.Market.onCommand(Market.java:552) at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ... 15 more
2013-06-09 17:27:14 [INFO] player1 issued server command: /market create 5 1 2013-06-09 17:27:14 [SEVERE] null org.bukkit.command.CommandException: Unhandled exception executing command 'market' in plugin GlobalMarket v1.2.2-SNAPSHOT at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:189) at org.bukkit.craftbukkit.v1_5_R3.CraftServer.dispatchCommand(CraftServer.java:523) at net.minecraft.server.v1_5_R3.PlayerConnection.handleCommand(PlayerConnection.java:965) at net.minecraft.server.v1_5_R3.PlayerConnection.chat(PlayerConnection.java:883) at net.minecraft.server.v1_5_R3.PlayerConnection.a(PlayerConnection.java:840) at net.minecraft.server.v1_5_R3.Packet3Chat.handle(Packet3Chat.java:44) at net.minecraft.server.v1_5_R3.NetworkManager.b(NetworkManager.java:292) at net.minecraft.server.v1_5_R3.PlayerConnection.d(PlayerConnection.java:109) at net.minecraft.server.v1_5_R3.ServerConnection.b(SourceFile:35) at net.minecraft.server.v1_5_R3.DedicatedServerConnection.b(SourceFile:30) at net.minecraft.server.v1_5_R3.MinecraftServer.r(MinecraftServer.java:581) at net.minecraft.server.v1_5_R3.DedicatedServer.r(DedicatedServer.java:226) at net.minecraft.server.v1_5_R3.MinecraftServer.q(MinecraftServer.java:477) at net.minecraft.server.v1_5_R3.MinecraftServer.run(MinecraftServer.java:410) at net.minecraft.server.v1_5_R3.ThreadServerApplication.run(SourceFile:573) Caused by: java.lang.NullPointerException at com.survivorserver.GlobalMarket.Market.itemBlacklisted(Market.java:287) at com.survivorserver.GlobalMarket.Market.onCommand(Market.java:552) at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ... 15 more
please check, thx.
-
View User Profile
-
Send Message
Posted Jun 8, 2013They use the books from the Transaction History to trade the villagers for items, can this be fixed or transaction books have a disable option.
-
View User Profile
-
Send Message
Posted Jun 8, 2013@alexshots
Post your errors, because that's definitely not normal. I test on my desktop (Windows 7) and on my server, which is Ubuntu 12.10. OS won't have anything to do with the blacklist, though. Only permissions would have an affect, I use PEX. Make sure you don't have any YML errors such as tabs instead of spaces.