Homes
Simple Yet Powerful Homes Plugin
DO NOT CLICK THE DOWNLOAD BUTTON
There are a list of recent files towards the bottom right. Click the right file to suit your needs.
Summary
This plugin allows players to specify locations on the map that they can return to later. The specific behavior of this plugin is highly customizable to fit your needs, from being a standalone plug and play plugin to being one that can shoulder a server with large amounts of players without causing any slowdown.
Most of the headers are links. Be sure to click them for further info on their respective topics!
Commands
Often the best way to see what a plugin does is to look at the commands. This is a very quick rundown of the commands.
/home - Takes someone to their home
/home set - Sets someone's home
/home delete - Delete someone's home
/home list - Lists someone's homes
Each command has an admin counterpart for managing other people's homes.
For each command, if enabled, a parameter can be added at the end to give the homes names.
Odds are you want Homes-shaded.jar
You will notice that there are two download links for each version. Homes.jar and Homes-shaded.jar. Homes.jar depends on my library: BukkitLCS. Homes-shaded.jar has this library included. So far this is my only plugin using my library, but in the future, if you have more than one plugin installed that requires BukkitLCS, you will want to get the unshaded version of each jar and install BukkitLCS.jar. This is to avoid class collisions.
Also, THIS PLUGIN REQUIRES JAVA 8!
Permissions
By default, users are able to use all the user home commands, and ops are able to use the admin commands. This can be overridden by installing a permissions plugin and manually specifying the permissions.
The nodes can be found here.
Configuration
By default, the config uses flatfile and allows players to have multiple homes. This behavior, along with other miscellaneous options can be found in here.
Messages
Every message that this plugin produces can be customized. This allows translation and chat formatting possible.
Details can be found here.
Help Menu
This plugin has a built in help system. Every help message can be configured, or even disabled. The plugin is smart enough to only show the help entries for commands that the player has permission to use.
Scalability
This plugin allows for using msyql as a backend. This makes the plugin very powerful and will have performance improvements as the amount of data it stores becomes larger.
Speed
This plugin was designed with speed and efficiency in mind. The plugin will cache homes for online players, and all blocking operations are done on a separate thread. The plugin even boots up on a separate thread, so even if you have a slow database, your server's boot up will not be held up by this plugin.
I've also designed the plugin so that it will only switch to an asynchronous thread when it needs to, which means that if you use the flatfile backend, this plugin will never needlessly switch to an asynchronous thread.
Philosophy
This might seem like 'yet another homes plugin,' and it pretty much is. However, when looking around, I noticed that none of the homes plugins were updated for uuid use, and the ones that are don't quite do what I want.
I also wanted make a plugin that does significant amounts of asynchronous tasks while still keeping the bukkit api calls on the main thread to test my skills.
Please Report Bugs!
This is the plugin's first release, and while I have done a lot of testing, it is impossible for me to catch everything. I believe I've turned on the bug tracker for this plugin, so please submit any bugs that you find.
Source
This plugin is open source!
UUID Storage
This plugin uses uuids for the sole purpose of keeping track of whose home is whose. They are stored either in homes.yml or in the database, depending on which backend is used.
Only thing I'll suggest at the moment is to allow other users to invite players to visit their homes.
http://dev.bukkit.org/comments/2565586-the_pc_tech_guy-hey-first-comment-p-only/edit/Also, I will be changing hosts soon, and they are most likely only on Java 7 at the moment. Is it possible you can compile a version for Java 7?