WebAuctionPlus
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.
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/
A few improvements by lorenzop
- 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
- server shops (unlimited stock improved)
- better support for vault economies
- custom description for items being sold
- wish list / auto sales
- track all wa signs to prevent unauthorized signs
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
Development Builds
Development Builds can be found at the link below. Development builds aren't approved by the bukkit team and they might be buggy.
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 mailbox - Opens the WebAuction mailbox.
- /wa deposit <amount> - Deposit money into your Auction account.
- /wa withdraw <amount> - Withdraw money from your Auction account.
- /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.use.command.mailbox (use the mailbox command)
- wa.use.command.deposit (use the deposit command)
- wa.use.command.withdraw (use the withdraw command)
- 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)
How to Install
Join us and chat some time on our irc channel. #webauctionplus on esper.net webchat.esper.net
Plugin Usage
As I've said in comments, I don't agree with the mojang buyout. as much as I've enjoyed working on this plugin and want to see it continue, I'm no longer doing all the work. MarioG1 has stepped up to work on the plugin. I may still help somewhat if he wants, but I'm passing the torch to him as the lead. good luck, hope you write some good code and features.
@ProGamerzFTW
that error means it's looking for the players balance from the iconomy database table. if you don't have iconomy, turn off the setting for it in the config.php file for the web interface. that should fix your problems. this will be much improved soon.
In the Web Interface, im getting the error "Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/a7246670/public_html/info.php on line 16." It does recognize my database though as i was able to login. Another problem is when I deposit money, it isn't added to the webserver and stays blank?
I have it working :-D I really hate mysql joins, writing them and debugging them, but they do work well. I now have the current auctions page listing all the items and enchantments with a single query! no more 100's of queries to get every item and enchantment every time a page loads.
@user_892472
I'm guessing the database is running on your bukkit server, and the webserver connects to it there? it might be a little work to move it, but I recommend running the database on your web server and have the bukkit plugin connect to it there, at least for now. I just started looking at that code this morning actually. one of my databases contains 57 auctions, and it's running 60 queries on the current auctions page. with 188 auctions, I'm guessing it's somewhere over 200 queries to load that page. the web auction plus plugin has already been greatly optimized, so it should no longer cause lag using a remote database. work has begun on the web interface, but there is still much to be done. when I'm finished, I think I can have it down to a single query to load the current auctions list. so in short, the database move I suggested above should help fix your problem, but a more permanent solution is already being worked on and will be fixed in future versions.
Displaying the different items on sale is really slow for us who are restricted from creating "local hosting", because our host won't allow us :/
Is there anything that could speed up this process, my webhosting is in the same datacenter as my server, but it's still somewhat slow...
It takes about 20-30 seconds to load a page with 188 entries.
I'm digging into that auction expire bug this moment. I was just thinking.. I could have notices save to the database, get checked by the plugin, and display them in console. so like, if the web interface decides to expire an auction, that would show up in the bukkit console. think this would be useful, or to much to log?
@dickwick
great, I'll start on multi-language sometime soon. I tried to keep my reply short, but I guess I have a lot to say. lol. I'm excited as anyone about this plugin. I enjoy what I do. I just wish there were more hours in a day.
@lorenzo_p
That is nice and large reply! I will try to fill a tickets after next version. Looking forward to try it! Anyways, I can help with Czech translation and I have no doubts, that many more people will be willing to make a translation for this awesome plugin :)
@pocketkings719
the announcement system will have an enable/disable setting in the next version. any of the scheduled tasks can be disabled by setting the seconds to -1 under "Tasks:"
@dickwick
yes, this should be already fixed and working much better in the next version. as I've said, I've completely rewritten the item deposit/withdraw code. hopefully every enchantment bug is now fixed also.
@dickwick
that's a nice list of bugs you have for me. could you create new tickets for the bugs you reported. the currency suffix is a minor bug. it doesn't look nice, but it will be fixed sometime after the bigger problems. the in-game sale message containing <font size="-1">, I've noticed it on my own server, and it is a pain. it's just a growing pain, in the process of transitioning to better methods. if these bugs aren't fixed in the next version, it should be fixed by 1.0.4
graphs, I haven't gotten to look at much at all yet. I've noticed it myself too, they sometimes don't show up in webauction 0.6.4 and plus. I don't think there's a ticket for this yet.
what I've been working on the last few days, the web interface is getting revamped with a small CMS system I've designed over the years of working on websites. it should be simple to use, and it's much more structured, both in code and the directory structure of the files. I expect to have many new bugs in 1.0.3, growing pains from this transition. like I said in another comment, I'm just trying to cram the existing code into the new system and get it working so I can get it released. updates from that point on will slowly replace all that crammed in code with cleaner rewritten code, all of the bug fixes, and new features. once this current version I'm working on is done, it will be ready for a real admin control panel to be added. there really are a lot of features that can be added to this. I hope to get plenty of suggestions of what should be in it.
also, I know there were some bugs in the original web auction where some people were admin on the website and shouldn't have been. this is fixed now. I've rewritten all the permissions code. I haven't done much testing on this yet, but it seems to work well and I don't expect any problems from it.
the 1970 expiration date is because I changed it in the database from an integer to a DateTime type field. all of my other database changes should automatically convert over the first time the plugin loads. this expiration date I think is the only thing I don't have converting yet. on my own server, the only time I've experienced the auctions resetting is from it loading the latest version for the first time. after that, it should be good. I'll try to add the converting code for this soon.
the short custom description idea has come up a few times. there's already an enhancement ticket for this. it will be an optional feature sometime in the future.
multi-language support, I can add it, but I'll definitely need some help with translations. any volunteers for this? I know 10+ computer languages, but I only speek american. :-D
Oh an another thing. Is it possible to stack same material together? I send load of cobble stacks to WebAuction and I thought, everything will be as a one item but I had to put it on sale splitted to stacks
But when I canceled all auctions, I got them all together, which is purely awesome:
So how do we disable the announcement thing you added?
Few bugs & tips:
Anyhow, I notices WebAuctionLite and it have one major + and that is Multi-language suport, this surely should be in WebAuction+ as well
@lorenzo_p
Mhmm disregard my post, it did seem to have lost connection for some odd reason. The data I had put in is was correct though.
@user_892472
I think it looks like a problem connecting to the database. double check that the mysql host, username, password, table, all exactly match for both the plugin (config.yml) and the web interface (config.php) if they match, try the web interface. does that give any errors?
btw everyone, please vote on the poll above. it will help me decide what to work on next.
My server's been crashing a lot as I told you and a minute ago I got this error code:
http://pastebin.com/rSzJ7ACj
My Mysql database is local if you're wondering.
new login system and login page for the web interface is finished. it's in the repository if anyone wants to check out my code. hopefully the rest of the pages will go faster. I should only have to retro-fit the code to fit the new framework for now. then later I'll go over everything with a fine tooth comb and fix any bugs. it's hard to get all this done, but my goal is still to get a working copy released soon. the new login page looks awesome btw.
@dickwick
yes, there's a setting for it in the config.php file. just look for iConomy. then you don't need the money deposit/withdraw signs.
@user_892472
I'm doing my best with it. I'm happy how it's turning out so far, but still much to do.
I'm really not sure if I should accept donations. I really appreciate people offering, but this wasn't originally my plugin. I do think every line will eventually be rewritten by me, and after this version, I'll probably be half way there. if I do start accepting donations, I plan to make a generous one to Exote for making the original web auction, and giving me a great place to start work on my own.
@lorenzo_p
Okay , really looking forward for it to become available :)
I wish I had the skills to help you code it, but I don't. What I can do is to throw a donation your way if it's finished within the next few days hehe :-)
@user_892472
I think something like that can be done using ajax, but that's not something I'm very familiar with. can anyone help with something like this? maybe a different javascript library for table listing/sorting would help things too, but I don't know of one yet.
about your crashes, it's really hard to say what it could be. it could be conflicting with another plugin. what other plugins are you running? you could try loading web auction plus and unloading other plugins to see if crashes stop, but that could take some time. update all your plugins if you haven't recently.
there are a lot of bug fixes coming with the next version of web auction plus, but it will still be a few days at lease, as there's much work to do on the web interface.