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!
@TheHandicrafter1234
It uses whatever currency name you set in your economy plugin config.
@ZwPBerserk
Update to the latest dev build, using PEX or a similar plugin, negate the globalmarket.create and globalmarket.send permissions in that world.
@ulumulu1510
1.) There are pages, the page items on the bottom row of the inventory are buttons that you use to switch between them.
2.) it uses YAML, I've tested it up to 50,000 listings (4mb listings file) all at once, and no hit in performance. 50,000 listings is pretty unrealistic for any sized player base, so performance should be great. This test was also on my desktop pc, with regular 7.2kRPM drives.
@SyncCraft
Can you post your error log?
@Nussi1986
Try the latest dev build, or enable automatic_payments in the config.
@commandLion
Im using only BOSeconomy for Economy, ive got Chestshop installed and Essentials. But i dont think that Essentials or Chestshop are the cause for that problem.
I want to use this Plugin so much but i have no Idea to fix it...
@Nussi1986
Ahh yeah, I am getting this too. Seller gets the money, buyer gets item but without any monetary deduction. Are you using any other plugins that manipulate money? Have a bit of an odd setup, but using both gringots (for physical currency) and bankcraft (for an interest mechanic)
Just curious if we have any similar plugins that could be preventing the withdraw on the buyers side.
I love this Plugin but ive got a big Problem. I use the latest DevBuild and it works fine. But one thing is very bad. When i buy something on the market my money dont change, but the seller recieves the money via the transactions log.
Im using yout latest dev build, vault and BOSeconomy on my Server.
Please Help
@xdasfaust
Updated both Vault and this to the latest version, and still having the same problem..
Now I'm also getting it when trying to create a listing....
Good day sir, I have a few questions if you don't mind to answer them:
1) What happens if there are too many offers to show for one screen? Will it skip some or is there a a page two command or similar? (My server is huge, this will happen if I use your plugin)
2) How do you store these data? Incase you use a yml file, please consider using a database such as SQL or similar. This would have an impact on the speed of your plugin for sure.
Besides these, great plugin mister :)
Hi,
How can i disable this in 1 world and keep it enabled in the other world?
I dont want my players send or create listing/items into the global shop from my creative worlds.
seams to be a great plugin but im a bit confused.
in the pictures your currency is gold so is it configurable or do you just call your "money whatever" gold ?
cuz im trying to optimize the emerald trading system - is it possible to use ems as currency or do i need another pl. to set them up as money ?=== Your title here... ===
Ah, seems I've found a few bugs, if you are not getting money from Transaction Logs, edit your
locale.yml
file and changeto
Also change this in
config.yml
:to
That should fix the issue. This is fixed in the latest dev build.
@DJ411
It uses Bukkit's enchant names, I forgot to mention that. They are different from what you see in the lore, you can find the names here. I'm going to fix this soon, hopefully.
@xdasfaust
Yep, works great. Thanks!
how does the search listings feature work with enchantments? i have an item with enchantments and i can't see the sword after searching for the enchantment with every possible outcome i can think of.
it works! Thank you!
@TheMisterB
Try the latest dev build now, I've made it so that it defaults to Bukkit's item names if the Vault one is null. Let me know if it works.
I get this error now whenever you /market listings - any way to fix it with out nuking my listings file? people will be pissed lol
http://pastebin.com/f59cTeST
btw I am using your latest dev. version and the latest dev. version of vault 1.2.26
Thank you for your response, as for the admin shop, yes a completely separate tab for the admin shop would be preferable.
@xdasfaust
Using Vault 1.2.25, link to the listings.yml: http://pste.me/S3BJm/
@TheMisterB
Thanks for the log. Looks like it's something with Vault, what version number are you using? E.g. 1.2.25. It could be a missing item, can you post a link to your listings.yml file?
Awesome, though I'm now getting the Internal Error issue, using the newest version of Vault. Here's the error, output right after anyone uses /market listings: http://pste.me/wzBUG/
@ecianice
Let me know the results :) I haven't tested it myself, but if those plugins use Bukkit's ItemMeta it should work.
@TheMisterB and anyone else wanting the creative fix
Check the description, I've put a link to a dev build containing the new permission nodes.
@paintball89
Did you check your mailbox? It's sent via a book called "Transaction Log"
@chrisman0091
The bottom row of the inventory contains 'buttons' that you use to switch pages. Stack sizes are limited by Minecraft, once you go past 64 things get pretty complicated.
Maybe you could add pages, so in case there is more than one. Or make it so you can view a certain person's shop too :D This is a really cool plugin and it can expand into so much. Maybe increase the map stack size so there isn't a row of bricks like in the picture? Just ideas(: