MineEstates
MineEstates
WorldGuard-based real estate management
Updates 2/21/14
Welcome to MineEstates! This plugin was created to make selling and buying houses, apartments, and other plots, much easier on both the server admin and on the users. All WorldGuard plots can be sold or rented out by their owners, and Lockette/Deadbolt signs will be updated when ownership changes. If you're a server admin, tired of having to deal with people constantly wanting new plots or transferred ownership in a city, or if you're a player trying to find a plugin your server can use to get past the fact that your lazy admin never want to deal with players and regions, you're in the right place. This plot works best in a city-like environment, where large amounts of plots can be created initially and then simply bought and sold repeatedly. The rental system allows for large apartment buildings with small per-room plots, which can be owned by the apartment building's owner and recycled over and over. The rent collector scans once every five minutes; however, it only charges rent once per 24 hours on every plot. The rentals work on a pay-in-advance system, so there's no risk of people simply leaving and renewing their rentals to try to evade the system.
All estates-related commands are limited to operation in the world (dimension) that you currently reside in, and none of them are guaranteed to work from the command line.
The short version: 1. /estates search [sales or rents] 2. find one you like 3. /estates goto <plotname> 4. /estates buy <plotname> or /estates rent <plotname> And you're done!
The long version: The sales and rentals markets are separate but use the same commands to search through results. Simply do /estates search sales to get a short five-entry list of results in a clearly displayed format. The estates search command supports logblock-style limiters: /estates search sales size 10x10 price 30000 will display plots that are equal or larger to 10x10 in size, and less than 30,000 in price. Doing /estates page <pagenum> will, starting at 1, display that page of results from your latest search. Once you've found a plot that matches the size and price you want, use /estates tp <plotname> or /estates goto <plotname> to teleport quickly to the region, and /estates buy <plotname> to buy it, or /estates rent <plotname> if it's a rental plot. And that's it! You've successfully bought or rented a plot.
============================================
Commands List
============================================
[optional] parameters aren't necessary
<required> parameters are
/estates search <sales | rents> price | owner | name>
This command searches through plots that are available either to sell or to rent. The results can be sorted by one of:
- name
- price
- owner
- size They can also be limited by none, any, or all of:
- size (in the format lengthXwidth, i.e. 10x10)
- price (maximum allowable price)
- owner (name of owner of plots)
/estates page <pagenumber>
Search results are organized into pages of 5 results each. Once you have done a search, you can use this command to scroll through the results, which are cached. Caching results in the possibility that the results are out-of-date, especially if the search was performed long ago, and the server has large amounts of estates activity. Small servers should generally not have this problem, and the cache is regenerated for the user every time they perform the search.
/estates goto <plotname> OR /estates tp <plotname>
This command teleports you to the plot that you wish to see. For this to work, the plot must be available on the open market. The teleportation code is currently crude at best, but it will override its teleportation algorithm with the location of the worldguard region teleport flag, if it has one.
/estates buy <plotname>
This command allows you to purchase the plot with the name specified. The price will be deducted from your account and given to the owner. The plot will then be taken off the market automatically.
/estates rent <plotname> <days>
This command adds you as a member- NOT an owner- to the plot. The first payment happens immediately, and the price of the rental recurs once every 24 hours. This system is pay-in-advance on a per-day basis. Setting the <days> flag to a negative number will result in infinite rental duration. The plot will be taken off the rental market until you leave or are evicted. The <days> is simply a maximum duration, and rental properties can be left at any time.
/estates sell <plotname> <price>
This command places the plot specified on the open market for the price given. Size is calculated automatically through WorldGuard. You will NOT receive money for the plot until someone buys it! Once they have bought it, any Lockette or Deadbolt protection signs *will* be updated with the new owner's name, so get your crap out before selling.
/estates lease <plotname> <dailyprice>
This command places the plot specified on the rentals market for the daily price given. Size is calculated automatically through WorldGuard. You will not receive money unless someone is actively renting the plot. If you're running an apartment complex, filling your plots is in your best interests. Renters will be added as members, but you will retain ownership of the plot. Lockette and Deadbolt signs will NOT be updated.
/estates cancel <plotname>
This command removes a plot, whether rental or for sale, from the market entirely. Do not do this to a rental property if a renter is currently there, as it WILL NOT evict them, and in fact should not work at all since renting takes the plot off the market.
/estates evict <plotname>
This command forcibly removes the current renter from the property. No money is returned to them, and no Lockette/Deadbolt signs are updated, but they are removed from the property and the plot is placed back on the rental market. Doing this should be avoided if possible.
/estates leave <plotname>
This command works the same as eviction, but is performed by the renter, not the plot owner. This is used if the renter decides they want to leave the plot. No money is returned, and no Lockette/Deadbolt signs are updated. The renter is removed from the plot and the plot is returned to the rental market.
/estates sellpublic <plotname> <price>
This command is for server administrators. When a plot is originally created, but no owner is immediately available, this will put the plot on the market the same way as /estates sell will, but the money from the sale essentially disappears and is not given to the owner of the plot. This can also be used by administrators to sell abandoned plots.
THIS COMMAND'S PERMISSIONS SHOULD ONLY BE GIVEN TO ADMINISTRATORS.
============================================
Permissions Nodes
============================================
estates.plots.buy
This provides the permission for buying plots on the open market.
estates.plots.sell
This provides the permission for selling plots on the open market.
estates.plots.rent
This provides the permission for renting AND leaving rental properties.
estates.plots.lease
This provides the permission to set your property up as an available rental property on the rentals market.
estates.plots.goto
This provides the permission to teleport to available rental/for-sale properties.
estates.plots.sellpublic
This provides the permission to sell a region as Public Domain property. The money from the sale disappears. This should be given to administrators only, for the purpose of selling new or abandoned plots. This does *not* check for plot ownership, and so should not be given out to regular users.
estates.plots.canceloverride
This provides the permission to cancel ANY plot that is currently up for sale or rent, whether or not the user owns it. This should only be given to administrators in order to regulate the market.
============================================
Updates time!
============================================ As of 2/21/14, the plugin has all the basic functionality finished. Non-SQL databases have *not* been implemented, however.
============================================
Installation
============================================ IMPORTANT: The download file on the right doesn't use the right file! Download the latest version manually from the files list on the right.
Here's basically how this plugin works.
- You have your WorldGuard setup. You can have it fully set up, running for months, whatever, doesn't matter.
- You have a Vault-compatible permissions plugin.
- You have a Vault-compatible economy plugin.
- Step one: Install the Vault plugin
- * This is very simple. Just put the Vault plugin jarfile in your plugins folder. It takes care of everything else.
- Step two: Figure out what kind of database you want.
- * If your WorldGuard was created with the MySQL database option set to "true" in the config, you don't need to do anything extra to install MineEstates but put the MineEstates.jar in your plugins folder.
- Step Three: Create a MineEstates MySQL database.
- * This is very simple. Simply connect to MySQL, create a database, grant the mineestates user/password in the config all permissions on that database, and you're finished. Make sure you change the database name at the end of the "dsn" string in the config.yml for MineEstates.
- That's it! You're done. That's all you need to do. Simple setup, simple management, simple plugin. Keep in mind, however, that the plugin needs to be started AT LEAST ONCE before you'll get a generated config.yml file. If it isn't generating a config that means something big went wrong, like your server being horribly out of memory or something weird like that. Questions? Concerns? Contact me. See below for contact info.
Current Code
Code Source @ Github There's always the latest working source code here. If you find that an older version of MineEstates isn't working correctly because it's... well... old, but you need the latest features with a legacy minecraft/bukkit server, you can use the old Bukkit/CraftBukkit code and compile MineEstates against it. Unless it's REALLY old Bukkit, at which point you may be outta luck.
Don't forget that the github has a wiki as well! MineEstates Wiki This'll be expanded and edited over time.
============================================
REQUIREMENTS:
============================================
- WorldEdit (Latest dev build)
- WorldGuard (Also latest dev build)
- MySQL Database for MineEstates (permitted to use WorldGuard's MySQL database, if WG uses it)
- Appropriate CraftBukkit version
- Vault(Allows interfacing wth individual economy/permissions systems, such as iConomy and PEX)
============================================
Current features
============================================ Updated 2/21 **
- Sell/buy WorldGuard plots
- Rent out WorldGuard plots
- Updates Lockette/Deadbolt signs when the plot is bought by a player
- Evicts renters if they run out of money or their lease ends
- Allows teleportation to plots for sale/rent
- Allows searching of sales/rentals markets
- Markets search can be limited to max price, min size (len X wid, i.e. 10x10), or owner name
============================================
Planned features
============================================
- Renting of plots
- Separate config with choice of DB type
- Non-MySQL database option
- Blacklisted Users
- Blacklisted Plots
============================================
TODO list
============================================ So far the things that remain to be implemented are as follows:
- Non-MySQL database storage method (WorldGuard's MySQL is no longer required) - implement db4o database
- Config value to limit # of plots players can rent/buy at once (-1 for unlimited)
- Suggestions?
============================================
Contact info
============================================ If you need to contact me for any reason, help with setup, or anything like that, email me at
- [email protected] I'll get an email back to you probably within six hours or less. I'm always on my email.
56.13
@Spartan_D1994
I'm workin on it as fast as I can hombre. Actually, I'm going to update the latest jarfile that's available for download. If your worldguard works off a mysql database, this thing will work for buying/selling plots right now. If it doesn't, you may have to wait for me to give this plugin its own config and whatnot so you can enter its mysql information manually. That'll probably be my next objective on my todo list >_>
@Nach0z
Awesome, I can't wait to use it on 1.2.3 R2 :D Hope it's going well, I think me along with lots of other people need this plugin updated asap lol.
Whoo! Update time! So I have most all of the normal stuff working right now. So I figured, you know what, why the heck shouldn't I add in a couple little extras? Renting/leasing is going to take a while. So I decided, hey, people use logblock and deadbolt all the time. Let's figure out a way to fix any issues those might create. The solution? A threaded-to-heck method that basically says "if it's in this region, and it's a sign, and the first line is [private], remove all the other lines and add the buyer's name as the second line on the sign." Short version: It'll go ahead and auto-transfer lockette/deadbolt signs from the seller to the buyer.
edit It now works. automatically updates any lockette/deadbolt signs inside the region with the new owner. I multithreaded it on a per-chunk basis, so basically, it takes roughly the same amount of time to process the whole region, up to the point that the number of cores you have matches the number of threads.
Visualize: I have a 600x600 region and it finished processing it in roughly four seconds. On an Intel Pentium 3 from 9 years ago. Your server will be fine. Keep in mind that this process is only firing when someone SUCCESSFULLY buys a region from the market, and the smaller a region is, the faster it'll go. so this extra feature will be virtually unnoticeable in the long run.
@jeep70
heh. Signs would be cool and all but I'm not super interested in doing that part... yet.
That's a possibility but I doubt that'll be done anytime soon. In the meantime, I decided to go ahead and haxx in permissions. there's estates.plots.buy, estates.plots.sell, estates.plot.sellpublic right now. The code for each command isn't finished but there's some basic functionality in place if you want to give it a try. The github has a folder called "target" that I keep a working jarfile in at all times. And yes, I decided against the /estates confirm command. However, I AM going to add in a teleportation system so if someone searches for a region and finds one that fits their needs, they can use /estates goto <regionname> and it'll take them there so they can decide if they want it or not.
One other unfortunate part of the listings searching is that there ISN'T a limitation on how many lines are printed out as of right now. That's something else on my todo list. It'll get done.
The permissions seem to be working, they just need Vault installed to be able to use them.
@Nach0z
Tping somebody into a plot before they buy, Ehhh i would probably just use signs :) the /estates confirm would be okay but once again im using signs, so you could just make it so you right click 1 more time to confirm on signs. Yeaaah this is gonna be a good plugin. Dont abandon it like the movecraft ppl etc. :P
@jeep70
no idea how I'm going to work with permissions, btw. Never done that part before. That'll probably be one of the later features that I implement, to be honest. It should be fairly easy as apparently Vault supports permissions plugins as well as economy plugins so this shouldn't be TOO hard to get plugged in. in fact it should be crazy easy.
However right now I'm concentrating on the actual functionality. the plot rent/lease functionality I'm leaving until later because I'm not entirely sure how I'm going to pull that off. Buying/selling/listing is around 87-90 percent done. File database is .... meh. it's in progress and stuff. There's also a few more functionalities I want to introduce, such as TP'ing someone to a plot before they actually buy it, but I may just have a /estates goto <regionname> instead. probably be easier to implement. What are your thoughts on that? Actually on that note, what do you think about making someone do /estates confirm when they try to buy a region, or just let them buy it?
Sounds great! Soon as permissions comes out (PEX?) and the mysql is fixed, im in :)
@jeep70
Alright, in order:
No, not yet. I plan on it at some point, but not right now. It'd be useful but I aint there yet. Yes, normal users will be able to use this plugin. You'll set permission nodes for ranks to be able to:
@Nach0z
Does this have a feature where you make signs people can right click? Also is there a way you can make it so normal users can use this plugin? That would save me the trouble of getting buggy ol' residence :D Also when do you expect the Non-SQL database or whatever to come out? I dont like to use MySQL i get alot of glitches with it... I can get it to run, but still.
@jeep70
Thanks jeep70, keep an eye on it because it'll be updated every couple of days. Also, if you have any suggestions as to functionality, go ahead and give 'em, I'm more than willing to consider more stuff.
Looks like something worth noting about! I cant wait till this gets further down the road, then i would Happily use this :D