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 Jul 8, 2013Wow, thank you for the amazing fast response. I love your plugin, it has changed my server completely. :)
-
View User Profile
-
Send Message
Posted Jul 8, 2013@piritacraft
Probably just that item. I can't really add in support for non-vanilla items, unfortunately.
@makolord1
What're your CB/GlobalMarket/Vault versions? I can't reproduce with 1.2.2 builds.
@LeakCraft
Use /market mailbox remove on the mailbox block and then you can break it. Both right clicking and left clicking will open the interface.
@tulairn
You have something on the 4th line of your stall sign :) that's reserved for auto searching. Sorry, I thought I had that in the description. Must have lost it over the many edits I've done
-
View User Profile
-
Send Message
Posted Jul 7, 2013I found a very annoying bug that I can't seem to fix. Whenever anyone opens up the Marketplace Interface on my server, it automatically searches for "Marketplace", and you have to cancel the search before viewing the items. This is really beginning to bug me, anyone know a fix for it?
As a side note, it searches for "Marketplace" and Marketplace" are in a light aqua color.
If you would like to see the bug, join: angelicraft.com and walk straight forwards to the 'Auction House'
-
View User Profile
-
Send Message
Posted Jul 7, 2013Could you add a way to break the mailbox? Or make it so you have to right click the mailbox to use it, not left click.
-
View User Profile
-
Send Message
Posted Jul 7, 2013It seems that the search function when used within the market doesn't work, no listings are returned. but when I use the command it does work.
-
View User Profile
-
Send Message
Posted Jul 5, 2013@newmine
Try to convert files to UTF-8
-
View User Profile
-
Send Message
Posted Jul 4, 2013Found a bug (CraftBukkit version git-Bukkit-1.5.2-R1.0-1-gf46bd58-b2789jnks (MC: 1.5.2) (Implementing API version 1.5.2-R1.1-SNAPSHOT))
You'll get :
[SEVERE] Cannot load plugins/GlobalMarket/listings.yml org.bukkit.configuration.InvalidConfigurationException: unacceptable character '�' (0xFFFD) special characters are not allowed in "<string>", position 7366
at org.bukkit.configuration.file.YamlConfiguration.loadFromString(YamlConfiguration.java:55) at org.bukkit.configuration.file.FileConfiguration.load(FileConfiguration.java:138) at org.bukkit.configuration.file.FileConfiguration.load(FileConfiguration.java:105) at org.bukkit.configuration.file.YamlConfiguration.loadConfiguration(YamlConfiguration.java:175) at com.survivorserver.GlobalMarket.ConfigHandler.reloadListingsYML(ConfigHandler.java:31) at com.survivorserver.GlobalMarket.ConfigHandler.getListingsYML(ConfigHandler.java:36) at com.survivorserver.GlobalMarket.MarketStorage.getListingsIndex(MarketStorage.java:51) at com.survivorserver.GlobalMarket.MarketStorage.getAllListings(MarketStorage.java:73) at com.survivorserver.GlobalMarket.tasks.ExpireTask.run(ExpireTask.java:22) at org.bukkit.craftbukkit.v1_5_R3.scheduler.CraftTask.run(CraftTask.java:53) at org.bukkit.craftbukkit.v1_5_R3.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:345) at net.minecraft.server.v1_5_R3.MinecraftServer.r(MinecraftServer.java:513) 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: unacceptable character '�' (0xFFFD) special characters are not allowed in "<string>", position 7366
at org.yaml.snakeyaml.reader.StreamReader.checkPrintable(StreamReader.java:70) at org.yaml.snakeyaml.reader.StreamReader.<init>(StreamReader.java:50) at org.yaml.snakeyaml.Yaml.load(Yaml.java:399) at org.bukkit.configuration.file.YamlConfiguration.loadFromString(YamlConfiguration.java:53) ... 15 more
(resolved)
One more thing :
is it possible to add the name of the buyer in the transaction log ? And to sort items in the listings (by ID, name ... ) ==
-
View User Profile
-
Send Message
Posted Jul 3, 2013Is it possible to add the buyer to the transaction log?
-
View User Profile
-
Send Message
Posted Jul 3, 2013On my server, clients are crashing when using: /market listings
on FTB Ultimate 1.2.2 and Globalmarket 1.20
http://pastebin.com/DCFSiDbz
The item that make the crash are the itens ID: 13415: -1 I am using now version 1.2.2 to blacklist this item
-
View User Profile
-
Send Message
Posted Jul 3, 2013We're having a weird issue where if you click the "Page 1" page while already on page 1, it gives the player the "page 1" item, and then they cannot remove it from their inventory no matter what.
Also, whenever anyone clicks "search" we get an array out of bounds error and it kicks them from the server.
Gonna try updating to the latest dev build, but we've been having these issues on the latest devs for a while now.
EDIT: The latest dev build fixed both issues :) thanks
-
View User Profile
-
Send Message
Posted Jul 1, 2013@parrothead1337
Hmm very weird. Can you check the encoding on the file? I just tested items with custom names on my desktop (Windows) and server (Ubuntu), but couldn't replicate the bug. So I'm thinking maybe it's an issue with the encoding on the file.
@Kami675
Not yet, but I'll try to make that an option.
-
View User Profile
-
Send Message
Posted Jul 1, 2013@xdasfaust So I started my server on build #45, newly generated configuration, with an empty market, and I added an item, and then reset the server. When the server came back up, the same weird name glitch appeared. I then added the same exact item again and without even restarting the same weird characters appeared on the new auction item. However, you could not see any out of place characters on the new auction item, meaning that the malformation occurs before, but the actual name alteration comes after a reset.
This doesn't happen to items without any color formatting.
This is my listings before
http://pastebin.com/8R5J6KvB
And after
http://pastebin.com/PcGkzN2f
-
View User Profile
-
Send Message
Posted Jun 30, 2013@xdasfaust
Is there a way of on the receipt putting the name of the person that purchased the item you sold?
-
View User Profile
-
Send Message
Posted Jun 29, 2013I hope the newest Version gets released soon, and that it comes with fixes such as disabling the usage of history books and transaction books also the blacklist fixed.
-
View User Profile
-
Send Message
Posted Jun 29, 2013Late replies, sorry. Been busy with other things.
@piritacraft
I added "globalmarket.history" for /market history in dev build #45, try not giving players that, and enable automatic payments. Should work fine for now.
@SirMangler
/reload will cause unexpected results. I do not recommend using it at all. However, GlobalMarket plays nicely with PluginReloader, I use it and have not experienced any save issues.
@parrothead1337
Very odd. Try opening listings.yml in Notepadd+/+ and see what the encoding is, that could be to blame. The blacklist bug is fixed in build #45.
@wolfwork
MySQL isn't a simple thing to do. It won't happen overnight but MySQL support will come some day.
@flip284
There are no perms to use mailboxes. Only to create them.
@everyone
Awhile back there was a bug with searching for Spigot users. It has seemed to resolve itself in the latest Spigot build.
-
View User Profile
-
Send Message
Posted Jun 28, 2013the perms make no sense. I want players to be able to use the mailbox and the market CHESTS, but not the command.
-
View User Profile
-
Send Message
Posted Jun 28, 2013Could you support mysql database? sometime listing.yml is reset.... It's hard affect for server
-
View User Profile
-
Send Message
Posted Jun 27, 2013Thank you for this amazing plugin. If my server does well, I definitely plan to donate. Not very often someone makes a simple yet high-quality plugin such as this one.
-
View User Profile
-
Send Message
Posted Jun 24, 2013I'm having some sort of text graphical issue when items are added. Before the items are added, they looks fine. But after they're added to the listings, and something like a server reset happens, they get a weird A popping up in front of the name and description. I linked an example below. The name of it is &4Stash Expander, the lore that is purple didn't have a color code in front of it, and the light red text is &cType /expandstash to use.
http://imgur.com/vWAFsl3
edit: It seems that on build 43, if you try to blacklist an item with a color prefix, the stall and mailbox sometimes get unassigned, and sometimes the plugin gives you internal errors if you try to /market create. Pastebin below. Putting these items on the market also still seem to work despite being on the blacklist.
http://pastebin.com/gFg25vbm
edit2: The names gain an additional weird character (usually an A) each time the server resets. The weird characters don't start until that happens.
-
View User Profile
-
Send Message
Posted Jun 22, 2013@SirMangler
Because the /reload command is very unreliable and does not always let plugins completely stop and start. It also causes memory leaks. You shouldn't use it.