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 May 18, 2013Looks good I'm gonna download now it will be great for my rs server :D
-
View User Profile
-
Send Message
Posted May 18, 2013Hi there! Nice plugin :)
I have a question. Is it possible to make an option so people can only only view the items sold by clicking on a chest or sign instead of a command. This way i can mimic a real auctionhouse at my spawn.
Hope this is possible... thx
-
View User Profile
-
Send Message
Posted May 17, 2013Is there a way to prevent creative players from selling items in the market? Thx!
-
View User Profile
-
Send Message
Posted May 17, 2013@mumblerit
They would have to go though a pain to do so. They would have to list the thing, wait for it to appear then remove it. If you set the list time longer it shouldn't be an issue.
-
View User Profile
-
Send Message
Posted May 17, 2013@xdasfaust
In a pvp setting the unlimited mailboxes would be abused by players storing items.
Feature request: limit mailbox pages or option to send purchases directly to players
-
View User Profile
-
Send Message
Posted May 17, 2013@joshep92
Try the latest dev build, let me know if it fixes it.
@SonarBeserk
Yes, it is intentional. I may make it configurable in the future, though
-
View User Profile
-
Send Message
Posted May 17, 2013is being able to cancel a stall sign's search intentional? It seems like those would be a set search and not changeable.
-
View User Profile
-
Send Message
Posted May 17, 2013New problem... Actually this plugin is the better :3
In console, spam with this error. The Plugin run well. Players can buy/sell his items, but sometime, giveme this error.
http://pastebin.com/raw.php?i=uYPLjKHD
-
View User Profile
-
Send Message
Posted May 17, 2013@joshep92
Done in build #21.
-
View User Profile
-
Send Message
Posted May 17, 2013Can you add trapped chest for mailbox?
Thx.
-
View User Profile
-
Send Message
Posted May 16, 2013@BrandonT91
Hah! Thanks for pointing that out, fixed in build #20.
-
View User Profile
-
Send Message
Posted May 16, 2013Small text error with mail delivery:
Build #18:
-
View User Profile
-
Send Message
Posted May 16, 2013@joshep92
To disable the trade log, set
automatic_paymentsto true in config.yml, as for the dupe see below@darkmed
I was able to reproduce and fix the dupe, can you try dev build #19 and confirm? And anyone else that experienced the dupe too, I want to make sure it's 100% fixed before making a release since file approval time is slow.
-
View User Profile
-
Send Message
Posted May 16, 2013This video is to show a bug where players were able to remove a paper labelled as page, in order to freely duplicate the listed items from the chest Implementing a delay between openings of the list from the chest could probably prevent it
http://www.youtube.com/watch?v=Z11qz_qrSlg&feature=youtu.be
-
View User Profile
-
Send Message
Posted May 16, 2013Thanks, it was my java version!
Now, a bug of the plugin. Sometime, players, when buy armors or tools/sword, it duplicate the item. ¿Can you solve it? The problem is when they take the items with shift, close the chest and open the chest. The items is in their inventories, and the chest.
Thanks, see you soon.
Can you add a option for disable the book of trade log?
-
View User Profile
-
Send Message
Posted May 16, 2013Got around to adding some much needed features in the latest dev build. You can now set how long it takes for items to arrive at player's mailboxes, and how long it takes for listings to appear, hindering anyone using it as storage. You can also set how many active listings players can have at once.
You can also configure when listings expire, and I implemented the stall type idea from below. There's more info on all of this in the description.
Also, I'm compiling against Java 6 from now on, so if you get the major minor error make sure you've updated to build 17 or later.
-
View User Profile
-
Send Message
Posted May 16, 2013@joshep92
Update your java from 6 to 7 =s
-
View User Profile
-
Send Message
Posted May 16, 2013In a debian server, with no plugin (only vault):
Version: GlobalMarket-1.2.0-SNAPSHOT
[SEVERE] Could not load 'plugins/GlobalMarket-1.2.0-SNAPSHOT.jar' in folder 'plugins' org.bukkit.plugin.InvalidPluginException: java.lang.UnsupportedClassVersionError: com/survivorserver/GlobalMarket/Market : Unsupported major.minor version 51.0 at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:184) at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:307) at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:231) at org.bukkit.craftbukkit.v1_5_R3.CraftServer.loadPlugins(CraftServer.java:263) at org.bukkit.craftbukkit.v1_5_R3.CraftServer.<init>(CraftServer.java:241) at net.minecraft.server.v1_5_R3.PlayerList.<init>(PlayerList.java:55) at net.minecraft.server.v1_5_R3.DedicatedPlayerList.<init>(SourceFile:11) at net.minecraft.server.v1_5_R3.DedicatedServer.init(DedicatedServer.java:95) at net.minecraft.server.v1_5_R3.MinecraftServer.run(MinecraftServer.java:388) at net.minecraft.server.v1_5_R3.ThreadServerApplication.run(SourceFile:573) Caused by: java.lang.UnsupportedClassVersionError: com/survivorserver/GlobalMarket/Market : Unsupported major.minor version 51.0 at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) at java.lang.ClassLoader.defineClass(ClassLoader.java:615) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) at java.net.URLClassLoader.defineClass(URLClassLoader.java:283) at java.net.URLClassLoader.access$000(URLClassLoader.java:58) at java.net.URLClassLoader$1.run(URLClassLoader.java:197) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at org.bukkit.plugin.java.PluginClassLoader.findClass0(PluginClassLoader.java:87) at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:53) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:247) at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:173) ... 9 more
Can you help me?, please.
-
View User Profile
-
Send Message
Posted May 15, 2013@SonarBeserk
Negate
globalmarket.createfrom them. You can easily do it with world-specific permissions.-
View User Profile
-
Send Message
Posted May 15, 2013would it be possible to enforce creative players not being able to create listings? adding some kind of bypass to that also would be helpful.