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
/market
to 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 send
if 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!
I can see an issue here whereby players can use the market mailbox as a virtual chest, which is a VIP perk on our server. Is there any way to bypass the use of the market mailbox, but have the same principle of item storage? For example a queue of items waiting for an open slot in the player's inventory?
Regards, Thomas.
Love the plugin by the way!
@mal67
The stack limit is more of a limit in Minecraft. I want auctions, but the interface is kind of limited. I need a good way of doing it without making it complicated,
@Mewtripiller
You need Java 7.
@SyncCraft
Hmm, try unloading the plugin and moving listings.yml to another directory or rename it, then load it again and see if it works.
@AStrongerFellow
I can do that.
A feature to have listings expire after X amount of time would be exceptionally helpful.
Can we change the time which listings expire?
@Adrenalineq
If you were talking to me (I don't know if you were), I have tried deleting my config and locale files, and letting them regenerate. Still, unfortunately, no luck.
"Caused by: java.lang.NullPointerException"
Do you restart your config / lang file to default ? :)
@xdasfaust
Just tried #12, and I'm still getting an error with market listings. >:(
@Mewtripiller
Update your java..
This what I get when i load my server: [SEVERE] Could not load 'plugins/GlobalMarket.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) what does that mean?
love this plugin. a little disappointed that it did not have auction/bidding capability that i thought it did. and i can not list more than one stack at a time. but all around very nice.
if there were a way to set up a basic auction system with this. it would be amazing, there are no other auction plugins that use the inventory GUI that i know of. if so, someone please correct me.
@Mewtripiller
I couldn't say, I use my own. But there's a list of supported currency plugins on the Vault page, under 'Vault currently supports, Econ'
Thank you. What currency plugin could I use? Because I think that's why it's not working. I already have vault.
@Mewtripiller
Did you look at the console? If it doesn't load there will be an error. Also make sure you have Vault, plus a currency plugin.
When I drag the jar file in the plugins folder, after when i reload the server it doesn't show as a plugin. Help please.
@SyncCraft
Hm, try the latest dev build, #12.
@tomori_peti
Sadly it isn't possible, I've tried. The creative interface is client-side. I'll look at the Citizens API, though.
@xdasfaust:
Nope, didnt get any cant keep up messages or error messages at all.
Hello I viewed lot's of shop plugins and i think that's the best. I have some suggestions for it. 1, a,You should try to use the creative mode menu (i don't know it's possible) it has got search bar and you can easily categorize the goods. b, How should it work?: Players search for something if it's exist the plugin list the items the player click one of them another menu will open where he can se all of the items what's on sale like now and he have to choose one. 2. Some kind of npc support. Thats all.
Thanks for the great plugin
@xdasfaust
Hi again. I had this plugin working, and now all of a sudden it stopped. I tried updating to the dev build, and upon using /market listings, I get:
http://pastie.org/7822713
Please help! :S
EDIT: Sending items to players works, as does the mailbox.
@frol1
One mailbox will work for everybody.
@xcanner
There will be a server API through Sockets that you can use to pull data like listings, mail, etc. I'm not totally sure how viable it'll be, so we'll wait and see. You can see my progress on the GitHub repo (if you want to sift through un-commented code, haha). I'll provide documentation when it's finished, and a web client.
@crysis992
I'll try to test everything you listed, thanks for the info. Number 3 is concerning, do you get any 'Cant keep up!' messages in console when the delays happen?
@xdasfaust
MySQL gives other benefits, like an easy way to post the market on a webpage.