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 Jan 27, 2014Sorry for the wait, been a bit busy.
@mal67
The hopper is some new integration with ProtocolLib. But it looks like you didn't have the latest build. During the dupe fix I had to change the SQLite DB structure and it broke all previous SQLite DBs. That should be the only time this happens, if it was possible to save the database I would, sorry. You'll have to delete it before upgrading (could use '/market cancelSearch all' and give your players time to get items from their mail) But make sure you have the absolute latest build, the dupe bug should be fixed.
@Gametista
Hmm I can't reproduce the issue anymore with #113. Is there anything specific I can try? There are no other errors than the 'item requested but missing' messages? Double check and make sure you have the latest build, it could be possible you installed the wrong copy. That message is caused either by an auto-increment desync with the database, or that it's not saving, which is very odd. Do you think you could send me a dump of your database?
@KeithSt0ne
Fixed both in build #114.
@Bodyash
Added those locale messages in #114.
@externo6
And new listings will be shown first in the latest build.
-
View User Profile
-
Send Message
Posted Jan 27, 2014-
View User Profile
-
Send Message
Posted Jan 26, 2014Love this plugin! Very much hope that you will be able to keep it up-to-date.
-
View User Profile
-
Send Message
Posted Jan 24, 2014downloaded a fresh copy of the 1.3.0 and now theres a hopper in the inventory? weird. jenkins didnt say anything had changed since the 18th. getting an issue listing with that as well. says for example. 4 is not a valid number or whatever the amount or price may be.
also it seems that it refuses to read my old saved data.db file?! :( so all my players lost their items. any way to remount the db?
it seems the duplication happens every 24hr on the dot. its like items are trying to be returned to the box. but it doesnt remove it from the listings or something.
-
View User Profile
-
Send Message
Posted Jan 24, 2014@xdasfaust
Thanks :)
-
View User Profile
-
Send Message
Posted Jan 24, 2014Here is a copy of our config file:
http://pastebin.com/0kvaKj0c
-
View User Profile
-
Send Message
Posted Jan 24, 2014I just tested dropping the item into the search icon, it crashes your client and drops the item to the ground.
Also, were you able to find the issue of infinite listings dropping after the set amount of time like normal player listings?
-
View User Profile
-
Send Message
Posted Jan 23, 2014@xdasfaust
of course, i really hope i just messed something up in the config that caused dupes.
http:pastebin.com/PDX027sg
-
View User Profile
-
Send Message
Posted Jan 23, 2014@mal67
Can I see copies of your config?
@Bodyash
I'll add those nodes and try to fix the crash in the next build.
@smack17
Can I see a full copy of the error you get at startup?
@externo6
I'll try to resolve that in the next build as well.
-
View User Profile
-
Send Message
Posted Jan 22, 2014still having a duplication issue on build #113. anything we can do to fix it?
items show up in players /market mail even after being sold or purchased.
and i cant seem to figure out how. its not something they do on purpose, it just happens. and i dont see any errors on console for it either.
-
View User Profile
-
Send Message
Posted Jan 21, 2014I u wanna sell item via hopper (icon in /market listing) - and if u missclick to search button - client gonna crash, and this item will dissapear. Just a bug. Spigot + 1.7.4 Client.
-
View User Profile
-
Send Message
Posted Jan 20, 20142:11:50 PM [INFO] [GlobalMarket] Enabling GlobalMarket v1.2.2 2:11:50 PM [SEVERE] [GlobalMarket] An error occurred while loading listings.yml: 2:11:50 PM in "<string>", position 556 2:11:50 PM in "<string>", position 556 2:11:50 PM [SEVERE] [GlobalMarket] Can't save files until this issue is resolved
this message pops up when i load the plugin. None of the listings show up in the market listings, and this is the error that shows up periodically.
I also see this periodically:
3:23:37 PM [SEVERE] [GlobalMarket] You shouldn't see this message! Could not process queue: 3:23:37 PM [SEVERE] [GlobalMarket] Can't save Market data! Was it loaded correctly?
-
View User Profile
-
Send Message
Posted Jan 20, 2014Not sure why, but even with #113, the ISE comes back.
Here's what happens:
http://pastebin.com/V6eKde0C
This also happens as well:
http://pastebin.com/dnHEd3ET
-
View User Profile
-
Send Message
Posted Jan 19, 2014Using build 113. Sorting by newly created doesn't seem to be working. It does not display the new market creations. Other sorting, such as lowest price works fine.
-
View User Profile
-
Send Message
Posted Jan 19, 2014@xdasfaust
Hi. Can u add to locale node, from a sign, where we can see Price and Amount?
-
View User Profile
-
Send Message
Posted Jan 18, 2014@xdasfaust
Lol thanks! xD :D
-
View User Profile
-
Send Message
Posted Jan 18, 2014@tomori_peti
Check out the description, you can do exactly that.
-
View User Profile
-
Send Message
Posted Jan 18, 2014Can you add item lore based blacklisting for global market? I want to prevent selling of soulbound items in shops.
-
View User Profile
-
Send Message
Posted Jan 18, 2014@Ackuraku
Using a dev build? The permission node was split into "globalmarket.util.mailbox" and "globalmarket.util.stall"
-
View User Profile
-
Send Message
Posted Jan 18, 2014@xdasfaust
I actually ran into the problem continuously until I grabbed build #113. With that, it seemed to fix the issues! :D
Thanks again for your work on this!!!!