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 Aug 15, 2013Hey about the local plugin its great all I ever wanted but it seems like every user can just shift click the item in the local shop to remove it regardless of their permission they own.
-
View User Profile
-
Send Message
Posted Aug 15, 2013Thanks a lot!
-
View User Profile
-
Send Message
Posted Aug 15, 2013@alek123222
Use the -inf flag when it asks for the price, like 10 -inf
-
View User Profile
-
Send Message
Posted Aug 15, 2013Can you make the local chests infinite?
-
View User Profile
-
Send Message
Posted Aug 13, 2013@Awsmpossum1313
I currently don't have a fix, or a known cause. It seems like the encoding of the file switches at random and breaks everything, it happens to other plugins as well, so it could be a bug with Bukkit. But thanks for the file, I'll experiment around with it.
@riskaedits
That'd be something wrong with your permission setup. Make sure they have the correct nodes.
-
View User Profile
-
Send Message
Posted Aug 12, 2013@Awsmpossum1313
Yeah, and my players have: globalmarket.create globalmarket.history globalmarket.pricecheck globalmarket.quicklist globalmarket.quickmail globalmarket.send
What other permissions do they need to have full functionality for the shop?
-
View User Profile
-
Send Message
Posted Aug 12, 2013@riskaedits
Global market has to have specific permissions set for each thing including adding listings and accessing mailboxes. There is a reference of permission nodes on the page above.
-
View User Profile
-
Send Message
Posted Aug 12, 2013@xdasfaust
Hi! Thanks for fast reply and help! everything worked out, except one thing. Only OP's are able to create listings. All my fellow players at my server are able to buy. They are also unable to open mailboxes. I have tried to enter permissions for them so I dont get what I do wrong here.
Sincerely Tommy
-
View User Profile
-
Send Message
Posted Aug 12, 2013@xdasfaust
No the file isnt being touched or edited in any way by anybody. Only 1 person has access to the file an thats me. I know without a doubt that there is no modification and the problem occurs at reboot. Thank you for at least giving me a way to recover the data that greatly helps. Here is a paste bin of the last listings file that flipped out. http://pastebin.com/F6BKrvki
I believe this problem also only started happening in 1.6. Any additional guidance after you review the pastebin is appreciated. Thanks again for a great plugin!!!
-
View User Profile
-
Send Message
Posted Aug 12, 2013@Awsmpossum1313
It's a problem with the file's encoding. Remove the item near line number 37421, let GM generate a new listings.yml and paste the modified contents into it. Also make sure that your server is off before replacing/editing any save files, because your changes will not be saved. As for a permanent fix, I don't know (at the moment.) Are you modifying the file in any way (even copying it and replacing the original file)?
@riskaedits
You'll need a currency plugin such as iConomy, Fe, Gringotts, BOSEconomy, etc. they all pretty much do the same thing.
-
View User Profile
-
Send Message
Posted Aug 11, 2013Hi!
So I added this plugin to my server but when I do "/market listings" nothing happens. So I took a look in the console and this is the output:
1:42:05 AM GlobalMarket: Enabling GlobalMarket v1.2.2 1:42:05 AM CONSOLE: [SEVERE] [GlobalMarket] Vault has no hooked economy plugin, disabling 1:42:05 AM CONSOLE: [SEVERE] Error occurred while enabling GlobalMarket v1.2.2 (Is it up to date?)
I am sure that I have installed the newest version. What am I doing wrong?
-
View User Profile
-
Send Message
Posted Aug 11, 2013@xdasfaust
This is the error i am getting. Keep in mind that the problem is only found at the time of reboot the market will be working normally up until that point. The reboot is automated and only happens occasionally. It will run for days or weeks before we see this issue. Also if you could tell us how to replace the the backed up listings.yml file while we figure this out.
2013-08-09 07:00:15 [SEVERE] Cannot load plugins/GlobalMarket/listings.yml
org.bukkit.configuration.InvalidConfigurationException: unacceptable character '‚' (0x82) special characters are not allowed
in "'string'", position 37241
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.<init>(ConfigHandler.java:28)
at com.survivorserver.GlobalMarket.Market.onEnable(Market.java:142)
at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:217)
at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:457)
at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:382)
at org.bukkit.craftbukkit.v1_6_R2.CraftServer.loadPlugin(CraftServer.java:286)
at org.bukkit.craftbukkit.v1_6_R2.CraftServer.enablePlugins(CraftServer.java:268)
at net.minecraft.server.v1_6_R2.MinecraftServer.l(MinecraftServer.java:319)
at net.minecraft.server.v1_6_R2.MinecraftServer.f(MinecraftServer.java:296)
at net.minecraft.server.v1_6_R2.MinecraftServer.a(MinecraftServer.java:256)
at net.minecraft.server.v1_6_R2.DedicatedServer.init(DedicatedServer.java:164)
at net.minecraft.server.v1_6_R2.MinecraftServer.run(MinecraftServer.java:397)
at net.minecraft.server.v1_6_R2.ThreadServerApplication.run(SourceFile:582)
Caused by: unacceptable character '‚' (0x82) special characters are not allowed
in "'string'", position 37241
at org.yaml.snakeyaml.reader.StreamReader.checkPrintable(StreamReader.java:67)
at org.yaml.snakeyaml.reader.StreamReader.<init>(StreamReader.java:47)
at org.yaml.snakeyaml.Yaml.load(Yaml.java:400)
at org.bukkit.configuration.file.YamlConfiguration.loadFromString(YamlConfiguration.java:53)
... 16 more
-
View User Profile
-
Send Message
Posted Aug 11, 2013I'll look into it.
-
View User Profile
-
Send Message
Posted Aug 11, 2013@Awsmpossum1313
Do you get an error in the console from GlobalMarket when starting the server up?
-
View User Profile
-
Send Message
Posted Aug 9, 2013I seem to have a consistent problem that is not predictable. Every so often when the server reboots it cleans out the market completely leaving it empty. There doesnt seem to be a specific reason for this issue that i can tell. At the time of the daily reboot all files ARE backed up properly and can be retrieved. However, there doesnt seem to be a way to get it to pick up that listings.yml file. I do it in this order.
1. shut down the server.
2. rename old blank listings to listings.old
3. copy the backup listings.yml file to the globalmarket directory
4. boot the server. when then doing /market listings the market is empty.
What i would like help with is figuring out why this is happening in the first place and how to make the old market listings active. I am assuming there is some mismatched data but i dont know where i would go to edit it. Please any assistance would be greatly appreciated.
Thanks.
-
View User Profile
-
Send Message
Posted Aug 8, 2013@xdasfaust
Could you please consider making creation_fee a flat fee rather than a percentage of the listing price? By all means keep the cut_amount as a percentage, but an integer creation_fee would be infinitely more useful
-
View User Profile
-
Send Message
Posted Aug 8, 2013@xdasfaust
Thanks!!! I fixed the problem! Now i can reopen my market. Thanks :')
-
View User Profile
-
Send Message
Posted Aug 7, 2013@Speedyspro
Try removing the item near line number 58939.
@Pythros
"Planned" is all I can say at the moment.
-
View User Profile
-
Send Message
Posted Aug 7, 2013db/sql support?
-
View User Profile
-
Send Message
Posted Aug 7, 2013I am having an issue with this plugin. He began to fail unexpectedly for three days. I tried to update bukkit with the last build (Beta) and GlobalMarket with the dev version, but it doesn't work. I paste the error when I start my server: http://pastebin.com/p5E6n3Nq Thanks.