HomeSpawnPlus
HomeSpawnPlus (HSP) / SpawnControl: the most advanced Home/Spawn plugin for Bukkit. HSP has flexible events and strategies that you can customize for your unique needs. If you just want dead-simple home/spawn management, HSP can do that too, but you might find some other plugin easier to setup or understand. If you want full control and maximum flexibility to do whatever YOU want and not be limited by just basic /home and /spawn functionality, then HSP might be for you.
HSP's events and strategies, custom commands and integrations with plugins like WorldGuard and Multiverse allow you to completely control every aspect of spawns and homes, so that unique edge or setup you want, chances are good that HSP can do it for you.
Please read the FAQ before posting questions or tickets (especially Essentials users). Also there are Examples.
Versions
- Official releases are on the Files tab of this page
- Development builds of this project can be acquired at the provided continuous integration server. These builds have not been approved by the BukkitDev staff. Use them at your own risk. Jenkins
HomeSpawnPlus has these Features:
- Multi-world homes (one-home per world, multiple homes per world or even just one global home, your choice)
- Specific control as to what happens on events such as player login, player death, typing /spawn or /home commands using strategies. Should the user always stay on the same world? Spawn at the nearest of multiple spawns (ie. graveyard concept)? Maybe they always go to a specific group spawn on that world (for PvP factions, perhaps)? Your choice.
- Ability to set a one-time new player spawn point
- Cooldowns and warmups Can be set to cancel on movement or damage. Advanced details here.
- Economy support (via Vault) to optionally charge players for commands
- Home limits, definable per-group or per-permission. More documentation.
- Configurable per-world or per-permission for just about every option (events, cooldowns, warmups, costs, homeLimits)
- Define your own custom commands Documentation here
- WorldGuard region-spawn support (allow people to spawn at WG region spawn when inside that WG region)
- Ability to visit homes other people have set, on any world (controlled by Permissions)
- Language localization Also you can customize any message in HSP. Details here.
- Home invites - documentation here
- Set homes by clicking on a bed: read bed-related options documentation.
- Dynmap integration built in, very configurable to meet your own needs
- Persistence choice: Sqlite (default), MySQL or YAML
- Standard YML config.yml: with live reloading in-game (/hsp rc)
- Import home data from other plugins (Essentials 2.9, CommandBook 2.1 and SpawnControl v0.8)
Installation:
- Download HomeSpawnPlus.jar and put it in your Bukkit plugins folder
- Startup Bukkit, HomeSpawnPlus will automatically put the default config.yml into plugins/HomeSpawnPlus/config.yml
- Configure config.yml to your liking, then either '/hsp rc' to live reload the config, or restart your server.
Additional info
This plugin was designed to work with Vault, WEPIF, PEX, Permissions 2.x/3.x, or any Superperms-compatible plugin. Please read more about permissions here.
Under the hood: How HSP works
Examples
Spawn strategy documentation
Advanced Cooldown and Warmup information
User Command Reference
Admin Command Reference
Permissions
Changelog
Source Code
Metrics plugin
This plugin utilises Hidendra's plugin metrics system, which means that the following information is collected and sent to mcstats.org:
A unique identifier The server's version of Java Whether the server is in offline or online mode The plugin's version The server's version The OS version/name and architecture The core count for the CPU The number of players online The Metrics version
Opting out of this service can be done by editing plugins/Plugin Metrics/config.yml and changing opt-out to true.
Have an issue? Got a new idea?
If you find a bug or have an enhancement request, please create a ticket so I don't lose track of the request or issue in a comment stream. If you have a basic question, feel free to post in the comments here or visit the forums on forums.bukkit.org.
Thanks to @Timberjaw for the awesome work on SpawnControl that gave me a great base to start from!
-
View User Profile
-
Send Message
Posted Oct 29, 2012@HeavenMc
Of course. You're looking for the onSpawnCommand event and the spawnSpecificWorld strategy in combination with a world-specific strategy. Or you could use spawnNamedSpawn if you have multiple spawns on a world and want to choose a specific (non-default) one.
Something like:
All of this is documented on the strategy doc and the How HSP works pages if you want to read the details or explore other options.
-
View User Profile
-
Send Message
Posted Oct 29, 2012Is it possible to do this?:
When someone types /spawn in the skyblock world, he will go to the Main-World's spawn?
-
View User Profile
-
Send Message
Posted Oct 19, 2012@Scrayos
Thanks!
-
View User Profile
-
Send Message
Posted Oct 19, 2012@th8
Of Course. You've to think logical. Set "maxhomes" to 3 , set GlobalSingleHome to true, and give VIPs and Admins permission to bypass GlobalSingleHome
-
View User Profile
-
Send Message
Posted Oct 18, 2012is there a way to have normal players have 1 home and vip's and admins 3?
- th8
-
View User Profile
-
Send Message
Posted Oct 16, 2012@ccman972
Ah, now we have something to go on! Your results show that HSP is being invoked correctly, so this isn't a command mapping problem.
I see that when the player types /spawn, HSP goes through the evaluation chain you specified, which starts with spawnLocalWorld. On that world (Main), you have done a /setspawn at the location -1, 65, -1. This is where HSP is attempting to send the player.
Is the player going somewhere else or staying put? Is -1, 65, -1 a safe place to teleport? Is there anything else in the log (errors, perhaps?) at the time /spawn is typed?
-
View User Profile
-
Send Message
Posted Oct 15, 2012The spawnWGregion doesn't works if the spawn flag is in the __global__ region (all world)
-
View User Profile
-
Send Message
Posted Oct 13, 2012@andune
Wow.. that was, very informative. I really appreciate it that you spend your valuable time explaining this with so much detail ;)
Even though english isn't my native language, i'll do my best in trial-and-error(ing) the plugin(s), and hopefully catch the plugin(s) that are responsible for this.
I'll report back if i've made any progress (which AFAIK wont be anytime soon).
Again thanks for the in-depth insight! (or one or the other)
Best regards,
- ThisUsernameIsMine (i restart my server around ~ 10 hrs of up-time)
-
View User Profile
-
Send Message
Posted Oct 13, 2012@ccman972
With the exception of the one time I commented about your lacking problem reports (whereupon you uploaded your entire plugins directory), your problem statements have given me nothing to go on and you've shown no interest in helping yourself by posting results of having run through the FAQ or posting error messages, screenshots or confirming permissions. You simply post saying "X doesn't work" with no additional troubleshooting information of your own. It's a waste of my time.
Despite this, I have gone out of my way to load up your configs that you finally uploaded, spent my personal time poking around in your environment looking for issues and through extensive testing, even managed to find a bug and fix it (which you never reported). I posted back that the bug was fixed in a dev build and for you to give it a try, and you've not done that.
At this point I've put in hours of time responding to your messages, downloading and testing your custom configs and even publishing special dev builds for you, and the results I get back are "/spawn isn't working" and a few days later "are you still working on my problem?".
No, I am not and no I will not. You need to put in some time to troubleshoot your own problem or move on from HSP. I don't want you as a user if all you're going to do is suck up my time with repeated useless problem statements that don't have enough information to be solved.
If you're ready to put in some effort to fix this issue, then lets start from zero. Go read the FAQ, follow the instructions there. Download and use the dev build I put up for you. Come back here and post a ticket detailing exactly the steps you have followed in trying to troubleshoot the issue. If you show me you've gone through the FAQ and if you share enough information for me to help, I will; if not I will respond with "keep trying".
Things for you to do: verboseStrategyLogging, /permcheck permission verification, using bukkit.yml aliases to map to "/hspspawn" (on the dev build), capturing a screenshot of any error, posting any stack traces that show up in your logs and sharing any debug.log information if none of that works.
-
View User Profile
-
Send Message
Posted Oct 11, 2012@ThisUsernameIsMine
CME (ConcurrentModificationException) is multithreaded programming bug; for Bukkit this happens most often when a plugin does something on an asynchronous thread and tries to use the Bukkit API (which is 99.9% not thread safe). The problem is concurrent bugs like this often don't show up during testing; the code "works" fine 99 times out of 100 or 9999 times out of 10000, but it's that one time it doesn't that you get a CME and your server blows up. Plugins that use Async scheduler tasks or that start their own Threads are suspect.
HSP only does this in two places, one is in the HSP Convert process. This is to avoid locking up the main thread when doing a large conversion and it's a one-time use thing and clearly isn't the source of your problem. The second is in the Metrics plugin from Hidendra, this is asynchronously pushing updates to mcstats.org. This is well studied code and used in many plugins and in no way does any thread unsafe accesses to Bukkit.
So, you need to find which plugins you have doing asynchronous scheduled items (or their own Threads) and pick the most likely offenders and turn them off one at a time until your problem goes away. If you do this and manage to conclude that HSP is actually the culprit, I will entertain the idea with an exhaustive code audit, but since my search for async only shows those two cases, I'm already 99.99% sure HSP is not the cause of your issues.
FWIW, I reboot my server every 24 hours anyway (on a schedule during low times). Reboots are fast and for any server running more than a few plugins (recognizing many plugins are written by folks that are new to Java, and even those that aren't are rarely tested to the quality standards of Enterprise Java code), it's probably a good practice to do this just to keep things running smooth.
Good luck.
-
View User Profile
-
Send Message
Posted Oct 11, 2012I'm not sure where to post this, but my server occasionally crashes (one time each 3 to 10 days) with a severe java.util.ConcurrentModificationException (Encountered an unexpected exception ConcurrentModificationException)
I´ve been looking around the web for answers and have noticed it is a common problem, but also a PITA to solve (the more when you use a lot of plugins).
What i find striking is that the crash always seem to occur after someone issues /home (alas, what brings me here).
On the other hand, i haven't seen anyone here report this problem, so i pretty much have no clue what else it could be. :-/
-
View User Profile
-
Send Message
Posted Oct 11, 2012@Apple_columb
That's just the Bukkit EBEAN server shutting down - I have no control over those messages. They are benign and can be ignored.
-
View User Profile
-
Send Message
Posted Oct 11, 2012What's this http://pastebin.com/0wS6uNZL means? On server stop. Last strings.
-
View User Profile
-
Send Message
Posted Oct 10, 2012@Hangar
Thanks for the update, good to know. I'll work on packaging a release up soon and update the web docs to describe the bukkit.yml alias method so new folks can use this method to eliminate plugin command conflicts as well.
-
View User Profile
-
Send Message
Posted Oct 9, 2012@andune
FYI, that dev build (665) worked with the bukkit.yml change as far as fixing my home/sethome commands not working. I forgot to report back on that.
Thanks :)
-
View User Profile
-
Send Message
Posted Oct 8, 2012@ccman972
Unfortunately, your problem description doesn't have any additional details for me to work with. Fortunately, you DID send me all your configs, so I fired up a local test environment with your configs and tried to reproduce the behavior. I don't see any 'sending to spawn' messages (HSP only recently added these and you don't have them turned on in the config options) and I don't see any permission issues.
What I did see was this stack trace when I tried to /sethome: http://pastebin.com/ZeS6uqQj And the accompanying Bukkit 'error' red text in the game console when exceptions like these happen. Did you see this at all? If so, it would be much easier to fix issues like this if you find and pastebin stack traces when they happen.
The stack trace was a result of your economy (Essentials, I think) printing "$50" or whatever the cost was. The $ trips up the Java regex unless replacer for localized messages. So I added code to be sure it's properly escaped and now I can /sethome, /home and /spawn in my local test environment, using your configs. You can download a dev build with this fix from the Changelog page.
Let me know if it fixes your issue. And if not, please open a ticket and include as much detail as possible. Stack traces, screenshots, even another full dump of your current configs. With the existing plugin dump you gave me a week or so back and the above dev build, HSP is working fine for me now.
-
View User Profile
-
Send Message
Posted Oct 6, 2012@ccman972
I thought your issue was fixed? If you still have the home/spawn command conflict issue, then yes, there has been progress. Use the current dev release (on Changelog page) and use Bukkit aliases. For example:
I'll restructure the documentation to include these details for new people, but this is basically the gist of what you have to do. This is a set-and-forget, you can upgrade HSP or other plugins and your home and spawn will always map where you intend.
-
View User Profile
-
Send Message
Posted Oct 6, 2012@Linyrae
Please open an enhancement ticket and describe the functionality and use cases you have in mind. I'm not promising to implement anything, HSP has quite a few external dependencies for me to track against as is. However if the use cases make sense I may consider it.
-
View User Profile
-
Send Message
Posted Oct 5, 2012Please make this plugin work with residence
-
View User Profile
-
Send Message
Posted Oct 5, 2012@andune
That was my exact thought. I could see my own named homes (by name) but not from others. That is, until now. I first thought it was a problem with your plugin but it works after all.
I'm really impressed by the plugin's functionality. Thanks for sharing this gem with us andune ;)