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!
ich fände es cool wenn das plugin für die 1.14 gäbe. Könnte vllt ein update kommen?
Is there a version of this that works for 1.7.10?
After years I still came back to this plugin. WHERE'S THE UPDATE?!
Cortesian's fork resources page does not exist anymore, and I guess I'm still waiting for an alternative.
I've published my inofficial update to 1.13 at SpigotMC.
https://www.spigotmc.org/resources/globalmarket.54874/
I hope this helps a few of you, even though it hasn't been tested thoroughly.
anyone knows if this works? as I am having difficulty getting to work.
Whats the permission node to give players access to the command /Market Listings
I forked this in order to fix it, but didn't find any errors in the latest source code. The source seems to be newer than the latest available build right here and has no errors with 1.12.2. However, I might do some fixes for future versions. There's a link to a compiled .jar at the top.
https://github.com/Sataniel98/GlobalMarket
Update for 1.12?
Hey! Great work, thanks a ton.
A 1.12 update would be greatly appreciated!
In reply to OpiumPrime:
Update please in 1.12...
Um, dev build site 502 bad gateway... I'm having an emergency, please fix the site.
Also latest beta build won't work with Protocol build 377, the /market command never register. No log given thou...
Hi guys. I use the Spigot Minecraft 1.11.2 and GlobalTrade v1.2.2.
When I start the server, every 10 minutes the following message appears in the console:
[00:15:36 WARN]: [GlobalMarket] Plugin GlobalMarket v1.2.2 generated an exception while executing task 58
java.lang.NoSuchMethodError: org.bukkit.Server.getOnlinePlayers()[Lorg/bukkit/entity/Player;
at com.survivorserver.GlobalMarket.MetricsLite.postPlugin(MetricsLite.java:285) ~[?:?]
at com.survivorserver.GlobalMarket.MetricsLite.access$200(MetricsLite.java:51) ~[?:?]
at com.survivorserver.GlobalMarket.MetricsLite$1.run(MetricsLite.java:173) ~[?:?]
at org.bukkit.craftbukkit.v1_11_R1.scheduler.CraftTask.run(CraftTask.java:71) ~[spigot-1.11.2.jar:git-Spigot-3fb9445-6e3cec8]
at org.bukkit.craftbukkit.v1_11_R1.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:52) [spigot-1.11.2.jar:git-Spigot-3fb9445-6e3cec8]
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:1.8.0_131]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:1.8.0_131]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_131]
In reply to VodkaBoyzz:
Hi guys. I use the Spigot Minecraft 1.11.2 and GlobalTrade v1.2.2 And I make the menu with this plugin https://dev.bukkit.org/projects/chest-commands .I make a menu with many buttons of different plug-ins in one menu. All my plugins work with the menu buttons. But the Global Trade plugin does not work correctly. When you click on the button of my menu, my Global Trade opens as expected. I see all the goods. But if I click on any product, the trade window is immediately closed.
How do I get the Chest Commands GUI to work together with Global Trade?
Here is the text of my button Chest Commands GUI:
openmarket:
COMMAND: 'market listings'
NAME: '&eMarket'
LORE:
- 'Global Trade Market'
ID: melon block
KEEP-OPEN: true
POSITION-X: 3
POSITION-Y: 1
the permission for use the command:
/market createinf <price> <[amount]>
is:
globalmarket.command.createlisting
will this be updated any time soon? Or can we have an updated link to the dev builds please :)
I am running this plugin on the latest build of 1.11, and everything works perfectly EXCEPT - when installed, this plugin causes items not to stack properly in players' inventories.
Please fix!
umm, is this plugin going to get updated for 1.11? its a really cool plugin!!!!!! :))
Can you please help me: [12:12:45 ERROR]: [GlobalMarket] Could not load locale file locale/vi_VN.json. Check your syntax com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $ at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:200) [GlobalMarket-2.0.0.20.jar:?] at com.google.gson.Gson.fromJson(Gson.java:810) [GlobalMarket-2.0.0.20.jar:?] at com.google.gson.Gson.fromJson(Gson.java:775) [GlobalMarket-2.0.0.20.jar:?] at com.google.gson.Gson.fromJson(Gson.java:724) [GlobalMarket-2.0.0.20.jar:?] at com.google.gson.Gson.fromJson(Gson.java:696) [GlobalMarket-2.0.0.20.jar:?] at me.dasfaust.gm.tools.LocaleHandler.init(LocaleHandler.java:55) [GlobalMarket-2.0.0.20.jar:?] at me.dasfaust.gm.Core.onEnable(Core.java:69) [GlobalMarket-2.0.0.20.jar:?] at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:321) [spigot-1.8.jar:git-Spigot-550ebac-7019900] at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:335) [spigot-1.8.jar:git-Spigot-550ebac-7019900] at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:405) [spigot-1.8.jar:git-Spigot-550ebac-7019900] at org.bukkit.craftbukkit.v1_8_R1.CraftServer.loadPlugin(CraftServer.java:356) [spigot-1.8.jar:git-Spigot-550ebac-7019900] at org.bukkit.craftbukkit.v1_8_R1.CraftServer.enablePlugins(CraftServer.java:316) [spigot-1.8.jar:git-Spigot-550ebac-7019900] at net.minecraft.server.v1_8_R1.MinecraftServer.q(MinecraftServer.java:402) [spigot-1.8.jar:git-Spigot-550ebac-7019900] at net.minecraft.server.v1_8_R1.MinecraftServer.k(MinecraftServer.java:370) [spigot-1.8.jar:git-Spigot-550ebac-7019900] at net.minecraft.server.v1_8_R1.MinecraftServer.a(MinecraftServer.java:325) [spigot-1.8.jar:git-Spigot-550ebac-7019900] at net.minecraft.server.v1_8_R1.DedicatedServer.init(DedicatedServer.java:211) [spigot-1.8.jar:git-Spigot-550ebac-7019900] at net.minecraft.server.v1_8_R1.MinecraftServer.run(MinecraftServer.java:505) [spigot-1.8.jar:git-Spigot-550ebac-7019900] at java.lang.Thread.run(Thread.java:745) [?:1.8.0_72] Caused by: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $ at com.google.gson.stream.JsonReader.beginObject(JsonReader.java:387) [GlobalMarket-2.0.0.20.jar:?] at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:189) [GlobalMarket-2.0.0.20.jar:?] ... 17 more