GlobalMarket

Listings Window

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.

Listings

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.

Stock

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

CommandDescriptionPermission
/marketOpens 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 reloadReloads config.ymlglobalmarket.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!

You must login to post a comment. Don't have an account? Register to get one!

  • Avatar of SuperRonanCraft SuperRonanCraft Jun 24, 2016 at 18:17 UTC - 0 likes

    Latest build gives me this error in console every once in a while
    --
    [14:07:09] [Craft Scheduler Thread - 30/WARN]: Exception in thread "Craft Scheduler Thread - 30"
    [14:07:09] [Craft Scheduler Thread - 30/WARN]: org.apache.commons.lang.UnhandledException Plugin GlobalMarket v1.2.2 generated an exception while executing task 73
        at org.bukkit.craftbukkit.v1_9_R2.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:56)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)
    Caused by: 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_9_R2.scheduler.CraftTask.run(CraftTask.java:71)
        at org.bukkit.craftbukkit.v1_9_R2.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:53)
        ... 3 more
    [14:07:09] [

    http://SuperRonanCraft.Enjin.com

  • Avatar of Mickael5425 Mickael5425 Jun 21, 2016 at 13:41 UTC - 0 likes

    an update 1.10 expected ?

  • Avatar of Nussi1986 Nussi1986 Jun 14, 2016 at 01:35 UTC - 0 likes

    Is this project still active? Last DevBuild is from last month!

  • Avatar of ThisIsEcho ThisIsEcho Jun 11, 2016 at 06:46 UTC - 0 likes

    @davidsstrains96: Go

    Hey add me on skype thisis.echo i updated plugin it now works on all versions from 1.6.4 - 1.9.4

  • Avatar of davidsstrains96 davidsstrains96 Jun 07, 2016 at 15:39 UTC - 1 like

    [11:20:40] [Server thread/ERROR]: Error occurred while enabling GlobalMarket v2.0.0.33 (Is it up to date?)

    assistance please i dont know what the problem is it is the most up to date

    it gives this for any version i try to use and the plugin will not work i am on 1.9.4

  • Avatar of ThisIsEcho ThisIsEcho Jun 04, 2016 at 19:23 UTC - 0 likes

    Guys if you need this for 1.9 - 1.9.4 msg me on skype thisis.echo i updated it. :P

  • Avatar of Bodyash Bodyash Apr 25, 2016 at 22:37 UTC - 0 likes

    @pluzvn: Go

    Protocollib

    http://monitoringminecraft.ru/chart/151.80.109.158%3A25565.png

  • Avatar of pluzvn pluzvn Apr 25, 2016 at 03:08 UTC - 0 likes

    BungeeCord - Spigot 1.9.2 - Java 8 - Ubuntu 14x64

    [03:00:25] [Server thread/ERROR]: Error occurred while enabling GlobalMarket v2.0.0.29 (Is it up to date?)
    java.lang.NoClassDefFoundError: com/comphenix/protocol/utility/MinecraftReflection
    	at me.dasfaust.gm.trade.WrappedStack.<init>(WrappedStack.java:31) ~[?:?]
    	at me.dasfaust.gm.config.Config.load(Config.java:222) ~[?:?]
    	at me.dasfaust.gm.Core.onEnable(Core.java:43) ~[?:?]
    	at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:292) ~[spigot.jar:git-Spigot-944aa20-d39a750]
    	at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:340) [spigot.jar:git-Spigot-944aa20-d39a750]
    	at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:405) [spigot.jar:git-Spigot-944aa20-d39a750]
    	at org.bukkit.craftbukkit.v1_9_R1.CraftServer.loadPlugin(CraftServer.java:361) [spigot.jar:git-Spigot-944aa20-d39a750]
    	at org.bukkit.craftbukkit.v1_9_R1.CraftServer.enablePlugins(CraftServer.java:321) [spigot.jar:git-Spigot-944aa20-d39a750]
    	at org.bukkit.craftbukkit.v1_9_R1.CraftServer.reload(CraftServer.java:745) [spigot.jar:git-Spigot-944aa20-d39a750]
    	at org.bukkit.Bukkit.reload(Bukkit.java:539) [spigot.jar:git-Spigot-944aa20-d39a750]
    	at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:25) [spigot.jar:git-Spigot-944aa20-d39a750]
    	at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) [spigot.jar:git-Spigot-944aa20-d39a750]
    	at org.bukkit.craftbukkit.v1_9_R1.CraftServer.dispatchCommand(CraftServer.java:645) [spigot.jar:git-Spigot-944aa20-d39a750]
    	at net.minecraft.server.v1_9_R1.PlayerConnection.handleCommand(PlayerConnection.java:1350) [spigot.jar:git-Spigot-944aa20-d39a750]
    	at net.minecraft.server.v1_9_R1.PlayerConnection.a(PlayerConnection.java:1185) [spigot.jar:git-Spigot-944aa20-d39a750]
    	at net.minecraft.server.v1_9_R1.PacketPlayInChat.a(PacketPlayInChat.java:45) [spigot.jar:git-Spigot-944aa20-d39a750]
    	at net.minecraft.server.v1_9_R1.PacketPlayInChat.a(PacketPlayInChat.java:1) [spigot.jar:git-Spigot-944aa20-d39a750]
    	at net.minecraft.server.v1_9_R1.PlayerConnectionUtils$1.run(SourceFile:13) [spigot.jar:git-Spigot-944aa20-d39a750]
    	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_77]
    	at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_77]
    	at net.minecraft.server.v1_9_R1.SystemUtils.a(SourceFile:45) [spigot.jar:git-Spigot-944aa20-d39a750]
    	at net.minecraft.server.v1_9_R1.MinecraftServer.D(MinecraftServer.java:721) [spigot.jar:git-Spigot-944aa20-d39a750]
    	at net.minecraft.server.v1_9_R1.DedicatedServer.D(DedicatedServer.java:400) [spigot.jar:git-Spigot-944aa20-d39a750]
    	at net.minecraft.server.v1_9_R1.MinecraftServer.C(MinecraftServer.java:660) [spigot.jar:git-Spigot-944aa20-d39a750]
    	at net.minecraft.server.v1_9_R1.MinecraftServer.run(MinecraftServer.java:559) [spigot.jar:git-Spigot-944aa20-d39a750]
    	at java.lang.Thread.run(Thread.java:745) [?:1.8.0_77]
    Caused by: java.lang.ClassNotFoundException: com.comphenix.protocol.utility.MinecraftReflection
    	at java.net.URLClassLoader.findClass(URLClassLoader.java:381) ~[?:1.8.0_77]
    	at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:101) ~[spigot.jar:git-Spigot-944aa20-d39a750]
    	at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:86) ~[spigot.jar:git-Spigot-944aa20-d39a750]
    	at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[?:1.8.0_77]
    	at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[?:1.8.0_77]
    	... 26 more
    
  • Avatar of tummy77777 tummy77777 Apr 22, 2016 at 16:06 UTC - 0 likes

    17:04:36 [SEVERE] Could not pass event PlayerInteractEvent to GlobalMarket v1.2.2 org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:445) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:67) at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:479) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:464) at org.bukkit.craftbukkit.v1_6_R3.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:217) at net.minecraft.item.ItemInWorldManager.func_73074_a(ItemInWorldManager.java:173) at net.minecraft.network.NetServerHandler.func_72510_a(NetServerHandler.java:772) at net.minecraft.network.packet.Packet14BlockDig.func_73279_a(SourceFile:46) at net.minecraft.network.TcpConnection.func_74428_b(TcpConnection.java:480) at net.minecraft.network.NetServerHandler.func_72570_d(NetServerHandler.java:234) at net.minecraft.network.NetworkListenThread.func_71747_b(NetworkListenThread.java:54) at net.minecraft.server.dedicated.DedicatedServerListenThread.func_71747_b(DedicatedServerListenThread.java:37) at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:927) at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:332) at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:782) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:665) at net.minecraft.server.ThreadMinecraftServer.run(SourceFile:583) Caused by: java.lang.NullPointerException at com.survivorserver.GlobalMarket.Market.onRightClick(Market.java:388) at sun.reflect.GeneratedMethodAccessor21.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:441) ... 16 more

  • Avatar of tutur1004 tutur1004 Apr 21, 2016 at 23:49 UTC - 0 likes

    @Sonic5317: Go

    No alternavite if you wan't the lasted version go in http://build.survivorserver.com/

    In find of the superplugin and I can help for FR plugin rewie

Facts

Date created
Apr 23, 2013
Categories
Last update
Mar 12, 2016
Development stage
Release
Language
  • enUS
License
Apache License version 2.0
Curse link
GlobalMarket
Downloads
47,963
Recent files

Authors