WebAuctionPlus - eBay for Minecraft!
A minecraft/bukkit shop plugin for your website! This is a rewrite of the original WebAuction with many new features and improvements. I've made to many improvements to the code to list on one page. Many of my plans require big changes and a lot of new code. As with any new code, bugs are to be expected, so please bare with me and report any bugs you come across.
Note: It is strongly recommended you backup your database before using or updating this plugin. Some of the bug fixes and performance improvements I'm making require big changes to the database. The WebAuctionPlus plugin will convert and update the database automatically the first time it's run.
Performance increase: I noticed a lot of people reporting lag with the original web auction, especially when using a remote database. These problems should all be fixed now. WebAuctionPlus has all new database connection code to do a "pool of connections". New connections are only made if all existing ones are in use. The entire web interface is also being rewritten to greatly improve performance with MUCH fewer queries to the database. Most tasks are now fully multi-threaded, so login lag coming from this plugin is non-existent.
Further improved performance: Starting with 1.0.9, when a player logs in, the code that runs for that player has been moved to a 2 second multi-threaded delay. Permissions are updated, and alerts the player of new sales and items in their mailbox. This should fix the problem some servers were having where that small bit of code running in the main server thread would cause just a small lag spike. Other things, like item depositing and withdraw may still cause a small bit of lag. This and other things will be multi-threaded once I figure out how to do it without causing any issues.
New virtual inventory MailBox has been added with the update of Minecraft 1.3 and WebAuctionPlus 1.1. When a player right clicks on a MailBox sign, it opens up their virtual mailbox inventory and locks their website account to prevent item dups. When they close their mailbox, it updates their inventory and unlocks their website account. NOTE: This feature is new and running single threaded. If you experience lag related to this, I can see what I can do to make it multi-threaded.
Requires: Vault - http://dev.bukkit.org/server-mods/vault/
Requires: Web server with PHP and MySQL
Optional: SignLink - http://dev.bukkit.org/server-mods/signlink/
I can host your website! This plugin does require a web server with php support. It doesn't have a built in web server, and there are currently no solid plans to add this. WebPortal is similar to this plugin, and does have a built in web server, but it doesn't share much common code with this plugin and doesn't have the same features. That said, I'll make you an offer to help you out. Make a donation with the button below and send me a pm and I'll host your website for you on my web server. The server is hosted in a datacenter on the US east coast. It has cpanel, ftp, mysql, all the bells and whistles. I'll even set up the WebAuctionPlus website for you and update it when you'd like. If you have your own domain, you're welcome to use it, or I can give you a subdomain of webauctionplus.com . If you have access to the dns records of your domain, I can help you set up a subdomain to point to my server, like shop.myminecraftserver.com . However you'd like it set up.
My plans
Sales will be logged to the database starting with version 1.1.3, but a website page wont be added for it just yet. The data will be retained in there for the following update which should include the page. Market prices and recent signs should also be working in one of these next updates.
I'm also starting on a json data connection between the website and the plugin which will be used to get the players balance with any vault supported economy, and finally removing those pesky money deposit/withdraw signs.
A few improvements so far
- new ajax listing code (fast!)
- new virtual inventory mailbox
- all new web interface
- all new item deposit/withdraw code
- database connections are handled better
- connection pool limits can be set in config
- task update times are now configured in seconds
- tasks can be disabled by setting the update frequency to -1
- new announcement system
- added "/wa reload" and "/wa save" commands
- accounts can be created or passwords changed from the console
- multi-language support
To do
- sign shops
- server shops (unlimited stock improved)
- bank accounts
- better support for vault economies
- better support for votifier
- custom description for items being sold
- website will obey banned-ips.txt
- wish list / auto sales
- track all wa signs to prevent unauthorized signs
See it in action!
If you'd like to test drive the plugin before setting it up on your own server, you're welcome to try out my server. You can view this website link without logging in, but you'll have to log onto my server and create a web auction account first to do anything on the website.
- http://mc.poixson.com/webauctionplus/ - my own small server
- http://goldcraftmc.org/market/ - a larger server
- http://galaxycraft.org/webauctionplus/
- http://mc.lifemud.com/
Youtube Videos
Languages
If you'd like this plugin translated to another language, feel free to download the en.yml file from the link above, translate it to your own language, and send it to me.
Signs
WebAuctionPlus signs can be created by placing a sign with [WebAuction], [WebAuction+], or [wa] on the first line. Case doesn't matter, the plugin will fix it for you.
Note: you cannot use the deposit mailbox sign while in creative mode. this shouldn't ever be needed in the normal operation of the plugin, so as a general protection, it's always denied.
Note: withdraw mailbox signs can now have a quantity of stacks on the last line, or leave it blank for all mail.

SignLink
- %waTitle - items name
- %waPrice - price each
- %waSeller - sellers name
- %waType - Buy Now or Auction
Source Code
Google Code (svn main repo)
GitHub (git mirror)
Commands
- /wa password <apassword> - Changes your Web Auction Plus account password, or creates an account if you don't have one. This command can also be used from console in the format: wa password <playername> <apassword> and short-hand aliases "pass" or "pw" can be used in place of "password". For example, /wa pw mypassword123
- /wa reload - This feature is currently broken and disabled. It will be working again soon.
- /wa update - Forces recent signs to update. Also updates SignLink signs.
- /wa version - Displays the current running version of Web Auction Plus.
Permission nodes
note: these may change at some point
- wa.use.mailbox (use mailbox sign)
- wa.use.deposit.money (use money deposit sign)
- wa.use.withdraw.money (use money withdraw sign)
- wa.announcer.receive (can see auto announcements)
- wa.password.create (can create a new account)
- wa.password.change (can change their password for an existing account)
- wa.canbuy (can buy from web auction)
- wa.cansell (can sell with web auction)
- wa.create.sign.mailbox (create mailbox sign)
- wa.create.sign.deposit (create money deposit sign)
- wa.create.sign.withdraw (create money withdraw sign)
- wa.create.sign.shout (create a new auction shout sign)
- wa.create.sign.recent (create a recent auction sign)
- wa.webadmin (user account is admin on the website)
- wa.remove (remove WA signs)
- wa.reload (reloads the WebAuctionPlus config)
Note: There are major changes being made to the database in Plus. (as of version 1.0.3) When the plugin jar loads for the first time, it will update and convert your database, so be sure to have a backup. As of 1.1, the way enchantments are stored in the database has been changed again to simplify code and further improve stability. When the latest plugin jar is loaded, the database will be updated and the enchantments converted.
How to Install
Join us and chat some time on our irc channel. #webauctionplus on esper.net webchat.esper.net
2013-04 State of the plugin
As I've stated in comments, I'm not adding features to 1.1 anymore. I'll continue fixing bugs if any are found, but my focus is on a new version of the plugin. if anyone would like to take over working on the 1.1 version, send me a pm. I'll gladly help you get started. I'll still want to look over code to be sure high standards are met. it must be reliable and well written code, but credit will always be given where it's due.
Facts
- Date created
- Apr 08, 2012
- Categories
- Last update
- Feb 25, 2013
- Development stage
- Beta
- Language
- deDE
- enUS
- esES
- frFR
- ptBR
- License
- GNU General Public License version 3 (GPLv3)
- Curse link
- WebAuctionPlus
- Downloads
- 21,081
- Recent files
- B: WebAuctionPlus 1.1.9 for CB 1.4.7-R1.0 Feb 25, 2013
- B: WebAuctionPlus 1.1.7 for CB 1.3.1-R2.0 Sep 17, 2012
- A: WebAuctionPlus 1.0.8 for CB 1.2.5-R2.0 May 24, 2012
- A: WebAuctionPlus 1.0.7 for CB 1.2.5-R2.0 May 22, 2012
- A: WebAuctionPlus 1.0.6 for CB 1.2.5-R1.0 May 15, 2012


- Reply
- #1061
LiLChris06 May 18, 2013 at 16:04 UTC - 0 likes@ShadowKillerx: Go
It works, been using it on my server for a long time.
600+ auctions on it right now, http://www.lilcraft.net/auctions/
HTTP://WWW.LILCRAFT.NET
- Reply
- #1060
ShadowKillerx May 16, 2013 at 13:21 UTC - 0 likesSo how it works on 1.5.2?
Btw. It still works or not?
IP: mc.xpirationcraft.pl
- Reply
- #1059
peti446 May 14, 2013 at 18:55 UTC - 0 likesi need the item pack for 1.5.2
- Reply
- #1058
JeterLP May 08, 2013 at 20:09 UTC - 0 likesPlease update!
- Reply
- #1057
DasMAXimumHD Apr 30, 2013 at 19:27 UTC - 0 likesI get this error around 200 times per second with new version of BKCommonLib an SignLink:
2013-04-30 21:23:11 [SEVERE] [SignLink] An error occured while updating the signs: 2013-04-30 21:23:11 [SEVERE] java.lang.StringIndexOutOfBoundsException: String index out of range: 0 2013-04-30 21:23:11 [SEVERE] at java.lang.String.charAt(String.java:658) 2013-04-30 21:23:11 [SEVERE] at com.bergerkiller.bukkit.sl.LinkedSign.setText(LinkedSign.java:88) 2013-04-30 21:23:11 [SEVERE] at com.bergerkiller.bukkit.sl.API.Variable.update(Variable.java:199) 2013-04-30 21:23:11 [SEVERE] at com.bergerkiller.bukkit.sl.API.Variable.updateAll(Variable.java:223) 2013-04-30 21:23:11 [SEVERE] at com.bergerkiller.bukkit.sl.API.Variable.updateTickers(Variable.java:240) 2013-04-30 21:23:11 [SEVERE] at com.bergerkiller.bukkit.sl.API.Variables.updateTickers(Variables.java:32) 2013-04-30 21:23:11 [SEVERE] at com.bergerkiller.bukkit.sl.SignLink$2.run(SignLink.java:127) 2013-04-30 21:23:11 [SEVERE] at org.bukkit.craftbukkit.v1_5_R2.scheduler.CraftTask.run(CraftTask.java:58) 2013-04-30 21:23:11 [SEVERE] at org.bukkit.craftbukkit.v1_5_R2.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:344) 2013-04-30 21:23:11 [SEVERE] ...5 more
Is there an solution?
EDIT: Ok, just ignore my comment. It's a bug between BKCommonLib and SignLink.
- Reply
- #1056
Markob007 Apr 30, 2013 at 17:49 UTC - 0 likes2013-04-29 22:06:07 [INFO] [WebAuctionPlus] Enabling WebAuctionPlus v1.1.9 2013-04-29 22:06:07 [INFO] [WebAuction+] MySQL Initializing. 2013-04-29 22:07:11 [SEVERE] [WebAuction+] SQL Error! 2013-04-29 22:07:11 [SEVERE] com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. 2013-04-29 22:07:11 [SEVERE] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 2013-04-29 22:07:11 [SEVERE] at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 2013-04-29 22:07:11 [SEVERE] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 2013-04-29 22:07:11 [SEVERE] at java.lang.reflect.Constructor.newInstance(Constructor.java:525) 2013-04-29 22:07:11 [SEVERE] at com.mysql.jdbc.Util.handleNewInstance(Util.java:407) 2013-04-29 22:07:11 [SEVERE] at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1116) 2013-04-29 22:07:11 [SEVERE] at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:343) 2013-04-29 22:07:11 [SEVERE] at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2334) 2013-04-29 22:07:11 [SEVERE] at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2371) 2013-04-29 22:07:11 [SEVERE] at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2163) 2013-04-29 22:07:11 [SEVERE] at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:794) 2013-04-29 22:07:11 [SEVERE] at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47) 2013-04-29 22:07:11 [SEVERE] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 2013-04-29 22:07:11 [SEVERE] at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 2013-04-29 22:07:11 [SEVERE] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 2013-04-29 22:07:11 [SEVERE] at java.lang.reflect.Constructor.newInstance(Constructor.java:525) 2013-04-29 22:07:11 [SEVERE] at com.mysql.jdbc.Util.handleNewInstance(Util.java:407) 2013-04-29 22:07:11 [SEVERE] at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:378) 2013-04-29 22:07:11 [SEVERE] at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:305) 2013-04-29 22:07:11 [SEVERE] at java.sql.DriverManager.getConnection(DriverManager.java:579) 2013-04-29 22:07:11 [SEVERE] at java.sql.DriverManager.getConnection(DriverManager.java:221) 2013-04-29 22:07:11 [SEVERE] at me.lorenzop.webauctionplus.mysql.MySQLConnPool.getConnection(MySQLConnPool.java:63) 2013-04-29 22:07:11 [SEVERE] at me.lorenzop.webauctionplus.mysql.MySQLConnPool.tableExists(MySQLConnPool.java:168) 2013-04-29 22:07:11 [SEVERE] at me.lorenzop.webauctionplus.mysql.MySQLConnPool.setTableExists(MySQLConnPool.java:187) 2013-04-29 22:07:11 [SEVERE] at me.lorenzop.webauctionplus.mysql.MySQLTables.setTableExists(MySQLTables.java:529) 2013-04-29 22:07:11 [SEVERE] at me.lorenzop.webauctionplus.mysql.MySQLTables.sqlTables(MySQLTables.java:83) 2013-04-29 22:07:11 [SEVERE] at me.lorenzop.webauctionplus.mysql.MySQLTables.sqlTables(MySQLTables.java:65) 2013-04-29 22:07:11 [SEVERE] at me.lorenzop.webauctionplus.mysql.MySQLTables.<init>(MySQLTables.java:27) 2013-04-29 22:07:11 [SEVERE] at me.lorenzop.webauctionplus.WebAuctionPlus.ConnectDB(WebAuctionPlus.java:319) 2013-04-29 22:07:11 [SEVERE] at me.lorenzop.webauctionplus.WebAuctionPlus.onLoadConfig(WebAuctionPlus.java:180) 2013-04-29 22:07:11 [SEVERE] at me.lorenzop.webauctionplus.WebAuctionPlus.onEnable(WebAuctionPlus.java:119) 2013-04-29 22:07:11 [SEVERE] at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:217) 2013-04-29 22:07:11 [SEVERE] at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:457) 2013-04-29 22:07:11 [SEVERE] at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:381) 2013-04-29 22:07:11 [SEVERE] at org.bukkit.craftbukkit.v1_5_R2.CraftServer.loadPlugin(CraftServer.java:282) 2013-04-29 22:07:11 [SEVERE] at org.bukkit.craftbukkit.v1_5_R2.CraftServer.enablePlugins(CraftServer.java:264) 2013-04-29 22:07:11 [SEVERE] at net.minecraft.server.v1_5_R2.MinecraftServer.j(MinecraftServer.java:303) 2013-04-29 22:07:11 [SEVERE] at net.minecraft.server.v1_5_R2.MinecraftServer.e(MinecraftServer.java:282) 2013-04-29 22:07:11 [SEVERE] at net.minecraft.server.v1_5_R2.MinecraftServer.a(MinecraftServer.java:242) 2013-04-29 22:07:11 [SEVERE] at net.minecraft.server.v1_5_R2.DedicatedServer.init(DedicatedServer.java:150) 2013-04-29 22:07:11 [SEVERE] at net.minecraft.server.v1_5_R2.MinecraftServer.run(MinecraftServer.java:381) 2013-04-29 22:07:11 [SEVERE] at net.minecraft.server.v1_5_R2.ThreadServerApplication.run(SourceFile:573) 2013-04-29 22:07:11 [SEVERE] Caused by: java.net.ConnectException: Connection timed out 2013-04-29 22:07:11 [SEVERE] at java.net.PlainSocketImpl.socketConnect(Native Method) 2013-04-29 22:07:11 [SEVERE] at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339) 2013-04-29 22:07:11 [SEVERE] at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200) 2013-04-29 22:07:11 [SEVERE] at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182) 2013-04-29 22:07:11 [SEVERE] at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:391) 2013-04-29 22:07:11 [SEVERE] at java.net.Socket.connect(Socket.java:579) 2013-04-29 22:07:11 [SEVERE] at java.net.Socket.connect(Socket.java:528) 2013-04-29 22:07:11 [SEVERE] at java.net.Socket.<init>(Socket.java:425) 2013-04-29 22:07:11 [SEVERE] at java.net.Socket.<init>(Socket.java:241) 2013-04-29 22:07:11 [SEVERE] at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:254) 2013-04-29 22:07:11 [SEVERE] at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:292) 2013-04-29 22:07:11 [SEVERE] ... 35 more 2013-04-29 22:07:11 [SEVERE] [WebAuction+] Exception getting MySQL Connection 2013-04-29 22:07:11 [SEVERE] java.lang.NullPointerException 2013-04-29 22:07:11 [SEVERE] at me.lorenzop.webauctionplus.mysql.MySQLConnPool.tableExists(MySQLConnPool.java:172) 2013-04-29 22:07:11 [SEVERE] at me.lorenzop.webauctionplus.mysql.MySQLConnPool.setTableExists(MySQLConnPool.java:187) 2013-04-29 22:07:11 [SEVERE] at me.lorenzop.webauctionplus.mysql.MySQLTables.setTableExists(MySQLTables.java:529) 2013-04-29 22:07:11 [SEVERE] at me.lorenzop.webauctionplus.mysql.MySQLTables.sqlTables(MySQLTables.java:83) 2013-04-29 22:07:11 [SEVERE] at me.lorenzop.webauctionplus.mysql.MySQLTables.sqlTables(MySQLTables.java:65) 2013-04-29 22:07:11 [SEVERE] at me.lorenzop.webauctionplus.mysql.MySQLTables.<init>(MySQLTables.java:27) 2013-04-29 22:07:11 [SEVERE] at me.lorenzop.webauctionplus.WebAuctionPlus.ConnectDB(WebAuctionPlus.java:319) 2013-04-29 22:07:11 [SEVERE] at me.lorenzop.webauctionplus.WebAuctionPlus.onLoadConfig(WebAuctionPlus.java:180) 2013-04-29 22:07:11 [SEVERE] at me.lorenzop.webauctionplus.WebAuctionPlus.onEnable(WebAuctionPlus.java:119) 2013-04-29 22:07:11 [SEVERE] at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:217) 2013-04-29 22:07:11 [SEVERE] at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:457) 2013-04-29 22:07:11 [SEVERE] at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:381) 2013-04-29 22:07:11 [SEVERE] at org.bukkit.craftbukkit.v1_5_R2.CraftServer.loadPlugin(CraftServer.java:282) 2013-04-29 22:07:11 [SEVERE] at org.bukkit.craftbukkit.v1_5_R2.CraftServer.enablePlugins(CraftServer.java:264) 2013-04-29 22:07:11 [SEVERE] at net.minecraft.server.v1_5_R2.MinecraftServer.j(MinecraftServer.java:303) 2013-04-29 22:07:11 [SEVERE] at net.minecraft.server.v1_5_R2.MinecraftServer.e(MinecraftServer.java:282) 2013-04-29 22:07:11 [SEVERE] at net.minecraft.server.v1_5_R2.MinecraftServer.a(MinecraftServer.java:242) 2013-04-29 22:07:11 [SEVERE] at net.minecraft.server.v1_5_R2.DedicatedServer.init(DedicatedServer.java:150) 2013-04-29 22:07:11 [SEVERE] at net.minecraft.server.v1_5_R2.MinecraftServer.run(MinecraftServer.java:381) 2013-04-29 22:07:11 [SEVERE] at net.minecraft.server.v1_5_R2.ThreadServerApplication.run(SourceFile:573) 2013-04-29 22:07:11 [SEVERE] [WebAuction+] * Failed to load WebAuctionPlus. Please check your config. 2013-04-29 22:07:11 [INFO] [WebAuction+] Disabled, bye for now :-) 2013-04-29 22:07:11 [INFO] [WebAuction+] Disabled, bye for now :-)
help
- Reply
- #1055
LiLChris06 Apr 28, 2013 at 23:23 UTC - 0 likesSo how is 2.0 coming out? :)
- Reply
- #1054
Darlinkster Apr 28, 2013 at 18:16 UTC - 0 likesPlease update to 1.5.1
- Reply
- #1053
Markob007 Apr 27, 2013 at 08:34 UTC - 0 likesFailed to load settings from the database! The plugin may not have been loaded for the first time yet.
help
aukcija.world-gaming.com.hr and ing say plugin isnt load
- Reply
- #1052
lorenzo_p Apr 25, 2013 at 12:18 UTC - 1 like@NotYetRated: Go
yea, the original web auction had taxes and storage fees. I had "temporarily" removed it until I could get around to readding it and making some needed improvements. I didn't like that it would charge you fees and the player had no way of knowing how much. if you know php and/or java, it can be added. I don't have as much time as I'd like to finish everything I'd like. if I can get some help, I'll put more time into 1.1
the multi-server question, an example, are you talking about preventing withdrawing buildcraft items in a bukkit server? or do you mean something configurable, like preventing withdrawing diamonds on a server?
@hice3000: Go
sure, you're welcome to use it. don't forget to give credit and link back, and also keep updated between versions. if you're using svn for the repo, you could use an svn external to link right to the repo, so it'll auto update for you. I am working on a new version of the item information in xml format. I'd like to have a mod that generates the data files and item icons, but looking for some help with that.