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!
@AmazingAndreaz queue: trade_time: 0 How long in minutes to wait before showing a newly created listing in the interface, 0 disables this part of the queue mail_time: 30 How long in minutes to wait for items to appear in a player's mailbox if queued, 0 disables this part of the queue queue_mail_on_buy: true Whether or not to queue an item after a player buys it queue_mail_on_cancel: true Whether or not to queue an item after a player cancels a listing
Use These Settings to disable use of the mail section i think
Hello, first of all: this plugin is amazing. One thing, when a player with a filled inventory by putting an item on the market and cancelling it again. This will create a second inventory. Is there a way to prevent this?
just a quick question is there a way to deposit an item into a players mailbox via a console commnad?
@xdasfaust
Hi, just a quick question to see if you have a Spigot page for this. Had a nose but couldn't see one.
@conetopia3000
Can you give me this file ? link is dead :/
Is it possible to make it so there are different markets for different worlds? One market invent for one world then another in another world
https://gyazo.com/90630e4e0d0f56842f26e006fcd9b4d0 is it normal, that it is so high? :O
Players get free books when someone buys something from them.
i wish this was updated and that the mailbox option was removable or customizable.
can you add a command to blacklist players from market and remove their market items as if they were unsold ?
Some players attempt to scam others by listing high prices and renaming items that are supposed to be valueable on my server to trick others.
@GioBozza
Switching from the .db database the plugin offers to SQL give a lot of problems, fresh install helps with this it seems. May be caused by other things, can't really tell.
@GrimmVoid @devioursoul
If you could tell me the bugs I could try to fix them and fork the source on GitHib. Thanks.
@devioursoul
I've been trying to use this plugin for the last 2 years, it has a really bad exploit that let's players dupe their items. I reported it several times about a year ago, but it never got fixed, I would not use this plugin.
While the bukkit page is not updated, the dev builds are updated. suggest you get new updates there. As far as I can tell, this plugin is perfect. I have looked for an auction house rather than an auction chat. Which most auction plugins are.
This one offers exactly what I want, even paid plugins couldn't deliver that to me !
Edit: currently there seem to be many issues, I am testing this plugin further to give more detail. Really hope I can get it functioning. This is one of the better plugins out there if functioning.
This is the best shopping plugin. Pls do not abandon it. You are the best.
String seller = ChatColor.WHITE + market.getLocale().get("seller") + ChatColor.GRAY + ChatColor.ITALIC + listing.getSeller(); At ListingsInterface.java you set ChatColor to italic and gray before the getSeller string, so the language file cannot change it.
I also found this which discusses what I think you are doing (adding invisible lines of lore/attributes to the items), and that it can be hidden with protocolLib (which I use anyway).
support 1.7.10 ????
I need ....Plz
@hiimurfather
Oh wait, ignore this please. I found out what did the problem
Can anyone update this to 1.8.8? This isn't working for 1.8.8
can you do so i can sell more stacks at the same time, if i want to sell 2 stacks stone, i have to write the command 2 times now, but i only want to write /market create 5 128, and then it just takes 2 stacks from my inventory