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 Sep 26, 2013i changed it but i still got the error :(
-
View User Profile
-
Send Message
Posted Sep 25, 2013@gertjan206
While the server's off try to open mail.yml in Notepad+#+ or similar and change the encoding to UTF-8 (hit the "Encoding" tab at the top of the window) save the file, then start the server and see if that works.
-
View User Profile
-
Send Message
Posted Sep 25, 2013http://pastebin.com/raw.php?i=302VeTs3 that is the error and this is my mail.yml http://pastebin.com/QSBK2wUF
-
View User Profile
-
Send Message
Posted Sep 25, 2013@gertjan206
There should be an error when the server starts up and the plugin loads. I need that one.
-
View User Profile
-
Send Message
Posted Sep 25, 2013i moved my market data from one hosting to another and got this problem: http://pastebin.com/UeuKMYDk
what could be wrong because i just copied everything?
-
View User Profile
-
Send Message
Posted Sep 24, 2013@flurryknox
I just tested with GoldIsMoney and it worked great. I used the default settings, Vault 1.2.26, and zPermissions. Perhaps it's another plugin or some bad config? Try a local barebones setup like I did and see what happens.
-
View User Profile
-
Send Message
Posted Sep 23, 2013@flurryknox
in unison with my previous post i have also tried http://dev.bukkit.org/bukkit-plugins/gringotts/ another form of item currency and it does not work either.
Any ideas?
-
View User Profile
-
Send Message
Posted Sep 23, 2013@deleted_7749246
In the latest builds Mail items have a "From: " tag in the item lore.
@alek123222
Nope.
@komunx3
Try one of the dev builds.
@flurryknox
GM does all economy transactions through Vault, so it's likely something with GoldIsMoney, I'd ask them about it.
-
View User Profile
-
Send Message
Posted Sep 22, 2013This plugin seems to be uncompatible with GoldIsMoney http://dev.bukkit.org/bukkit-plugins/goldismoney/
instead of taking the emeralds out of my inventory your plugin is giving me +1 Emeralds every purchase.
i would love this to be fixed!
-
View User Profile
-
Send Message
Posted Sep 22, 2013I do all for permanently listened items in the marked but the marked will be always cleared... I set expire_time: 0 And Permissions for the Players, but nothing runs
-
View User Profile
-
Send Message
Posted Sep 18, 2013is the local shop fixed yet?
-
View User Profile
-
Send Message
Posted Sep 17, 2013Suggestion:
Maybe include information on the sender in /market mail either like /market listings or in chat when it says "You have new mail", maybe make it "You have new mail from player1234"
-
View User Profile
-
Send Message
Posted Sep 15, 2013@xdasfaust
Sorry I already deleted the file :(
-
View User Profile
-
Send Message
Posted Sep 15, 2013Suggestion
Make an admin command that can send a player any item that is listed on the market.
Example: I was able to put Mob Spawners on /market listings by using the "/spawner mobtype" command. Once I change the spawner, I held it in my hand and listed it on /market listings.
However, I'd like to be able to give those spawners out as rewards from voting, but there's no command that I can use to give a player a specific mob spawner. (that I know of)
If there was a command that would let me give a player an item on /market listings by using a command I could add things as rewards from voting.
-
View User Profile
-
Send Message
Posted Sep 15, 2013@piritacraft
It's a YAML error in history.yml. You can try to fix the YAML errors by removing the stuff in lines 155 and 156, or if you're not too attached to your history data you can delete the file and let the plugin regenerate it. Mind sending me the unedited file so I can see what is causing the issue?
-
View User Profile
-
Send Message
Posted Sep 15, 2013Error when enabling: http://pastebin.com/2didJxG7
-
View User Profile
-
Send Message
Posted Sep 15, 2013http://pastebin.com/r1sSyiQt
-
View User Profile
-
Send Message
Posted Sep 15, 2013Big batch of replies here, sorry for my inactivity :/
@frostalf
I tried a per-person limit with permission nodes, like "globalmarket.limit.5" but couldn't get it to work with Vault/PEX (sure it's bad, but a lot of people use it.) But if you don't do a PR I might get around to trying it again.
As for storage methods, I want to do MySQL/SQLite, I'm just planning out how it should be done. YAML is actually perfect for what GlobalMarket does, it keeps the data in memory and doesn't write changes to disk unless you invoke the save method. Paired with an async saving method it's pretty fast. Check out the plugin's timings sometime, they're pretty good. Not to mention you can save items in YAML without having to "break it down" and "put it back together" like you would with SQL. But YAML has its share of issues, too.
@anovickis
Looks like an incompatibility with a mod. Items from certain mods don't like something about GlobalMarket, I'm not exactly sure which ones, but you can try removing the listing that causes the error and blacklist that item to prevent it.
@komunx3
Expiring works fine in the latest 1.2.3 build, try it if you haven't already.
@deleted_7749246
No, but you can look in mail.yml.
@piritacraft
"Can't save Market data! Was it loaded correctly?" only occurs when there was a problem loading one of the save files. Check for an error when it starts up.
@SwiftSwamp
Set "creation_fee: " to 0 to disable the creation tax.
@alek123222
I'll look into it.
-
View User Profile
-
Send Message
Posted Sep 14, 2013@komunx3
Then if you want infinite listings a possible way to do it, if setting market timer to 0 is give the players the permission node globalmarket.infinitelistings or if using the dev build globalmarket.infinite
-
View User Profile
-
Send Message
Posted Sep 14, 2013Error log: http://pastebin.com/WejLpQpQ Spigot 1.6.2 #1100 GlobalMarket 1.2.2 I am getting this error too many times.