Development Progress
Progress Blog
July 13, 2014
The UUID update was a good thing for me because it got me back on the development of this plugin. I spent a lot of time prepping for the switch to UUIDs and I think the final product is better than it would have been. Besides, it got me to finish some things up. I am still working on features, but most of the player-to-player functionality has been implemented including all but two of the /loan <x> commands. In addition to the features already promised before, the plugin is now UUID compliant and multi-threaded.
My approach to the name lookup problem was to run all commands that needed a name lookup somewhere in the logic on their own threads which can wait for the response from the account service. If the request times out, it gracefully backs out of executing the command and notifies the player to try later without stopping the main thread. Once the outcome of the command execution is known, the asynchronous thread schedules a synchronous task which reports the result to the user.
I decided to put out a pre-alpha level build to renew interest in the plugin. I have tested all of the commands up to and including creating the loan itself. I haven't given the loan updater a significant run-through yet (my tests are running as we speak), and I haven't tested loan statements and payments at all yet, but that will be coming soon. Enjoy the first look though, and please run it to figure out what I need to fix first. The 0.1 version of this plugin is scheduled to have support for player-to-player loans, changeable loan terms, configurable terms constraints, ignore offers, sellable loans, and an interface to use Vault economy plugins. The internal economy will be implemented in version 0.2.
August 16, 2013
It has been a while since there was an update, but there has been steady progress made on this plugin so far. I have been learning about database management to use for this plugin, and I think that I will be updating the architecture to use the database as the primary data storage mechanism. This means that the classes in the architecture will no longer be storing the data that they manipulate. Going to a database architecture will have several advantages, among them, faster development, more flexible use of data, easier to extend, fewer bugs, and new features. A disadvantage is that some of the code that I had written previously will no longer be necessary. Thankfully, the garbage code is the stuff that is easy to write. The simulation code should still be relevant.
As per those new features, a plugin to just do loans requires a lot of features to be in existence, and that allows different features with slightly different contexts for the same basic system. I think with the architecture update, I am very close to being able to include a feature that everyone will be really excited about. I won't tell you what it is for now, but think of situations where one player (or entitey) could owe another player money. Stay tuned.
April 16, 2013
I have implemented the basic loan class and all of the immediately interacting classes. The system can now simulate all of the basic loan types, (bullet, fixed fee, amortizing), and players can be charged for taking out the loan. The players are not Vault-aware yet, but that is a simple sub class implementation. The loan class has comments and has undergone some basic testing. I have not done a formal test suite yet, but it will be coming.
I am currently adding an event API and I will move on to the remaining loan model soon. I believe I will implement interest earning deposit accounts before moving on to the command handling. As I go along, I am generating a list of todos which I will upload as tickets.
April 2, 2013 First Upload
This marks the creation of the Bukkit project. Prior to this I had been doing the project on my personal computer. This now opens up the project for collaboration and informing the Bukkit community about the project and collect feedback.
I have uploaded my project files to the repository, and there is already a fair amount of coding done. I have focused initially on the loan model itself and will be moving on to the interaction between players and loans. After that, I will implement bank accounts and credit cards, etc. The plugin interface code will come after the loan model has been completed.
I only have time on some afternoons to code, but I have made good progress so far. Interested developers are appreciated, as we could get the development time down significantly.
Comments