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 14, 2013Is there a way for admins to see others Market Mail?
-
View User Profile
-
Send Message
Posted Sep 14, 2013ty for answer but i want only that the items in the marked are there permently, and will not be removed when nobody buy them...
-
View User Profile
-
Send Message
Posted Sep 13, 2013@anovickis
I have noticed when using MCPC+ that some plugins error out, and I believe this is due to because there is also forge installed and modifies certain things in the bukkit server itself but I wouldn't say its something specific with the plugin. However I am curious does 1.23 work in MCPC+?
@komunx3
I have not experienced this problem yet but however though, it records the ticks overall that has passed to get if the time is correct which server lag can have an effect on the accuracy of it as once a server starts to lag, less ticks go by.
I believe a better way to store listings and the time would be to use a proper database implemented into the plugin such as sqlite or MySQL. And just give the users a choice between 3 different storage types for the listings. Flatfile which is the current method SqLite or MySQL. Flatfile storage of listings is not very effiecient for large servers and can cause some isssues as opposed to using a proper database storage. I hope the last two database types I listed get implemented =)
-
View User Profile
-
Send Message
Posted Sep 13, 2013expire_time: 168
Doesn´t work :(, when i make it on 0, the items will be removed after a time
-
View User Profile
-
Send Message
Posted Sep 12, 2013using 1.5.2 MC with MCPC+ and unleashed feed the beast pack 1.1.4
same error with 1.20, 1.22 so tried 1.23 :-)
05:45:25 [SEVERE] Could not pass event PlayerInteractEvent to GlobalMarket v1.2.3-SNAPSHOT org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:363) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredListener.java:47) at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:479) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:464) at org.bukkit.craftbukkit.v1_5_R3.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:189) at net.minecraft.item.ItemInWorldManager.func_73078_a(ItemInWorldManager.java:549) at net.minecraft.network.NetServerHandler.func_72472_a(NetServerHandler.java:875) at net.minecraft.network.packet.Packet15Place.func_73279_a(SourceFile:58) at net.minecraft.network.TcpConnection.func_74428_b(TcpConnection.java:442) at net.minecraft.network.NetServerHandler.func_72570_d(NetServerHandler.java:223) at net.minecraft.network.NetworkListenThread.func_71747_b(NetworkListenThread.java:53) at net.minecraft.server.dedicated.DedicatedServerListenThread.func_71747_b(SourceFile:30) at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:859) at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:320) at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:728) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:612) at net.minecraft.server.ThreadMinecraftServer.run(SourceFile:573) Caused by: java.lang.NullPointerException at com.survivorserver.GlobalMarket.Market.onRightClick(Market.java:421) at sun.reflect.GeneratedMethodAccessor222.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:361) ... 17 more
-
View User Profile
-
Send Message
Posted Sep 11, 2013I beg you please fix the local shops
-
View User Profile
-
Send Message
Posted Sep 10, 2013@nickie3684 it would help if you posted the full list of errors in a pastebin or something similar so that not only author can see the exact errors happening but others as well who can possibly help. Permissionex however is known to not work well for some plugins and can be an issue as well as enjin minecraft plugin. However though without the full errors being provided its very hard to diagnose what your problem may be because it can be another plugin conflicting or the plugin itself.
@xdasfaust
it would be nice if you implemented a perm, or maybe a config setting one of the two, to close the gap between infinite selling and the global player slot limit to allow a per player slot limit. I would think implementing a perm setting for this would be easier. If I have time, I can try to make my own edit in the code and do a pull request. But this would be a nice feature to implement in the plugin if you can do that as it will close that gap. Awesome plugin btw love it.
-
View User Profile
-
Send Message
Posted Sep 10, 2013[SEVERE] Exception in thread "pool-1-thread-73"
[SEVERE] org.apache.commons.lang.UnhandledException: Plugin GlobalMarket v1.2.2 generated an exception while executing task 22
I am getting these errors in my console! My host company has even tried to work on it but they can't figure out whats going on. also when i do /market listings in game it says an internal error occured while attempting to perform this command. and the console says
[INFO] nickie3684 issued server command: /market listings
[SEVERE] null
exception executing command 'market' in plugin GlobalMarket v1.2.2
List of plugins i have Vault Globalmarket mcmmo jobs essentials dynmap griefprevention teleman Votifier permissionsex mcbouncer Vanishnopacket master promote Enjin minecraft plugin world edit
-
View User Profile
-
Send Message
Posted Sep 9, 2013For some reason , people randomly get charged 100k tax... when listing items for 3,000 I don't even want tax. Config: http://pastebin.com/hEHSyKgR
-
View User Profile
-
Send Message
Posted Sep 9, 2013the command /market send can make the item disappear. Maybe because the lag.
-
View User Profile
-
Send Message
Posted Sep 8, 2013http://pastebin.com/gfWsr1Eu
Error.
-
View User Profile
-
Send Message
Posted Sep 5, 2013localshops are very very glitchy !
-
View User Profile
-
Send Message
Posted Sep 4, 2013I set it to an infinite stock...the items aren't infinite. No errors, no nothing. It just delivers the item to the player and takes it out of the market stall.
EDIT
Found the issue. If you create the infinite stock then change the infinite seller in the config, it doesn't change the old infinite stock to the new name(if that makes sense), so it treats it as a normal stock...
-
View User Profile
-
Send Message
Posted Sep 4, 2013http://pastebin.com/UWVyYJm8 When you try to right click a local shop chest.
-
View User Profile
-
Send Message
Posted Sep 1, 2013@pellopo82
few errors try this http://pastebin.com/k2E23023
-
View User Profile
-
Send Message
Posted Sep 1, 2013Every time I try to translate the plugin (changing locale.yml) and do the /market reload command after saving and uploading it ... it get's deleted and set back to standard locale.yml.
Here is my locale.yml: http://pastebin.com/wcSBHTtV
Anything wrong there?
-
View User Profile
-
Send Message
Posted Aug 31, 2013please fix this http://pastebin.com/Zv41JV42
-
View User Profile
-
Send Message
Posted Aug 30, 2013why doesnt it show up
-
View User Profile
-
Send Message
Posted Aug 28, 2013as soon as you make a local shop with both latest dev builds you cant use the global market things become unclickable please get us a fix!
-
View User Profile
-
Send Message
Posted Aug 28, 2013Error on latest dev build :p
http://pastebin.com/eNVAa0bu