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!
@Feeriix
Definitely not, how many listings do you have?
@cindy_k
I have been working on a rewrite (off and on) to support UUIDs. I can't make any promises but I'm going to try and power through what's left before then.
@mgone2010
Are you using MySQL? Try SQLite. If not, check for other errors in the console, server crashes, any other oddities.
Hi
how to resolve this please
[03:11:54 WARN]: [GlobalMarket] Null IMarketItem in InventoryClickEvent with position 17 (raw: 17) in interface Listings, should have an ID of 1843.
item not removed after player cancel selling
Any thoughts on an UUID update? https://mojang.com/2015/01/announcing-minecraft-name-changes/
Thanks!
Is this normal? http://i.imgur.com/ULhhOik.png Using build #8. Spigot 1.8
@Nentify
It's a known issue.
https://github.com/Dasfaust/GlobalMarket/issues/35
Feel free to comment there.
Sometimes when using the GUI, items are not removed from the user's inventory.
Is it possible to turn off the hopper method of adding items?
@Adurath
Well then the only fixes is either use 1.8.x or wait for the hopper fix. I will ask him to release a special build without the hopper code included.
@madtomic
But i need ProtocolLib for other Plugins :/
@djoveryde
It should already show up when you first log in if you have any mails. I don't know about within the MOTD essentials screen. I would have to install essentials and see.
What you could do is do a delay of motd by a few seconds?
Odd question but is there a way to move the [Market] you have new mail to within the essentials motd screen as its showing up before player has logged on so popping at the top of the screen.
@151baccardi
Set max item prices.
max_item_prices:
bucket:
dmg: 0
price: 10.0
@Adurath
I just confirm that the hopper is disabled in 1.8 with ProtocolLib v3.6.3.
For older versions, just remove ProtocolLib plugin. It will disabled the hopper until the duplicate bug is fix.
This needs a /market Edit command for Admins etc - so they can take out rediculous items like a bucket for 100000 !! (or alter the price)
With "old" version was the hopper system remove? It is critical to duplicate the items. :D
@xdasfaust
I noticed this - Is the latest version still here? https://github.com/Dasfaust/MarketCompanion/releases
@xdasfaust
I use 1.7. okey i make one video with some of bugs.
@xdasfaust
I am using 1.7.9 server. Can you please add support to disable the hopper too.
Ok, back to using my own build system. Get builds at http://build.survivorserver.com/job/GlobalMarket/
The last build from drone.io had a bad build script and it packaged a bunch of dependencies with the JAR, so it's advised everyone update to the new latest build, which is 6 over at my Jenkins server.
@Adurath
Are you guys using 1.8? It's only disabled in 1.8 (I verified with build 6). If there is a bug on 1.7 servers, I can't reproduce. If you could PM me a video of it, that'd be great.
@Nentify
MarketCompanion is optional, if you don't use it extra NBT from items like ThermalExpasnion energy cells will get stripped, resulting in them losing charge. Bad NBT can crash/break some mods, so it's best to use it.
As for searching with modded item names, no, it's not possible at the moment.
Also - Is it possible to search modded items using item names instead of just IDs?
aftter a time by 1 item when i click on it: [GlobalMarket] Null IMarketItem in InventoryClickEvent with position 1 (raw: 1) in interface Listings, should have an ID of 384.
Is MarketCompanion still necessary for a Cauldron server? It seems NBT data works without it, but just want to be safe.