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 Aug 20, 2012@ThornRage
The workaround is here. Put that into your config.yml and there is no need to wait, the problem will be resolved. The same info is also listed in the Known Issues section for v1.6.2 download.
Well the comment jump isn't working, so just including fix inline here. Add this to your config.yml:
-
View User Profile
-
Send Message
Posted Aug 20, 2012@andune
Excellent reply and I will do said test and report back to you.
EDIT: I found your 2nd reply. I will wait patiently.
-
View User Profile
-
Send Message
Posted Aug 19, 2012@Gunnerrrrr
If your goal is to make your faction and HSP home the same, why not disable faction homes?
If that's not possible, then check out CommandHelper: using it you could make it so someone typing "/f home" would get remapped to just "/home" (and therefore picked up by HSP rather than factions). In fact, it think this would even work with Bukkit aliases, no other plugins required.
http://wiki.bukkit.org/Bukkit.yml#aliases
-
View User Profile
-
Send Message
Posted Aug 19, 2012@Mayhem777
Same comment as to Jobsti: please create an enhancement ticket with the request so I don't lose track of it. Thanks.
-
View User Profile
-
Send Message
Posted Aug 19, 2012@GunnyWaffle
No worries. Glad it's all working well for you now. Enjoy!
-
View User Profile
-
Send Message
Posted Aug 19, 2012@Jobsti2
Please open an enhancement ticket. The comment stream sometimes moves fast and I forget about features asked for here. Make it a ticket and I'll see it and take care of it in a future version.
-
View User Profile
-
Send Message
Posted Aug 19, 2012@GamingG
Thanks for the verboseStrateyLog output. If everything is as you describe, it looks like you may have hit a bug with the bed-finding algorithm. Note that the bed has to be within 5 blocks of the location you /sethome or bed-clicked. If that is the case, then it will require some further debugging.
If, based upon what we've discussed, you do feel everything is setup right and this is a bug, please open a bug ticket (so I don't lose track of this). If you want to help debug the issue, feel free to turn on core.debug and pastebin the log into the ticket. Otherwise this will have to wait until I have a chance to reproduce and debug the issue locally. (I do test all functionality I write and this did work when I tested it, it's possible it was inadvertently broken or was broken by a 1.3.1-related Bukkit update)
-
View User Profile
-
Send Message
Posted Aug 19, 2012@andune I enabled verboseStrategyLogging, reloaded config, and used "/home" while in world_hardcore with a home set via bed. The result: http://pastebin.com/uiLbVpnf
@andune I figured I might have to do something like that. I'll go ahead and set up a portal hub (that's actually sort of what my world_hub already does, so it shouldn't be too hard), but it'd be quite nice to see such a feature in the future.
-
View User Profile
-
Send Message
Posted Aug 19, 2012@GamingG
"Also, it looks like it's completely possible to bypass the mode anyway by teleporting in from another world using "/home w:worldname". As a possible workaround, is there a way to block access to homes in a particular world from other worlds while still allowing the command to be used in the same way to get to other worlds' homes?"
There is not. Enabling such behavior would either require an "excludeList" world for cross-world teleport or some fairly complex mode work that would allow you to define what worlds can/can't crossworld teleport to specific other worlds.
Since that's not immediately forthcoming from HSP, I might suggest an alternative would be to disable crossWorld teleport in HSP and instead give players a portal hub they can set /home in or a you setup a /spawn in or whatever (realize you can setup an event strategy for players /spawn command to only go to this one portal hub and not mess with the default spawn/new player behavior at all), and let them go there in the local world, then world-hop and /home in the new world. This lets players easily access their /home in other worlds without violating that you don't want them popping into their hardcore_world home from another world.
-
View User Profile
-
Send Message
Posted Aug 19, 2012@GamingG
Your config looks right to my eyes. Can you turn on verboseStrategyLogging and test using "/home" and pastebin the output of the verboseStrategy log for that command? You should see it processing your "world_hardcore" onHomeCommand chain.
If that doesn't give us a hint as to the problem, next I will ask you to turn on "core.debug" and paste me the relevant info from the plugins/HomeSpawnPlus/debug.log file.
-
View User Profile
-
Send Message
Posted Aug 19, 2012@andune
OK I have confirmed the source of the bug. It is related to BananaChunk-like functionality added as far back as HSP 1.3 (Jan of this year). Apparently all the chunk cache work they've been doing in Bukkit 1.3 has created a situation where reloading the chunk on teleport causes this issue (so this issue is new as of Bukkit 1.3.1). I'll update the Bukkit leaky with code details so those guys can look into it more, but for now the easy workaround to fix the issue is to add this to your HSP config:
I'll add a note in the known issues with the info. Thanks again for troubleshooting and reporting the issue.
-
View User Profile
-
Send Message
Posted Aug 19, 2012@andune http://pastebin.com/pW293Jrb
With this setup, any attempts to use "/home" give the message "No home found.", even when the default home is available near a bed. On death, a player is taken to the spawn of world_hub via spawnSpecificWorld:world_hub, again even when the default home is near a bed.
-
View User Profile
-
Send Message
Posted Aug 19, 2012@ThornRage
An update: over the last hour one of my mods was kind enough to help me with isolated testing and I've confirmed the issue you posted IS a problem with HSP (Bukkit 1.3 vanilla = no issue, Bukkit 1.3 + ONLY HSP = issue). While I've further examined the code and the cause is not apparent to me right now, we are working to narrow down the issue and once I find it I will publish a fix. Thanks for reporting the problem.
-
View User Profile
-
Send Message
Posted Aug 19, 2012@GamingG
Please share your config.yml (pastebin). Note the ordering of your "mode" statements is important since some modes reset others.
-
View User Profile
-
Send Message
Posted Aug 19, 2012@ThornRage
You don't provide any specific info or stack traces in the ticket, only an erratic behavior that isn't reproducible. That said, I have heard reports of similar behavior on my own server and in the ticket you suggest that you've confirmed it's not an issue on vanilla. Since it's erratic I don't know how conclusive your "vanilla vs not" test is.
However, going under the assumption that your test was accurate and valid and that it means that HSP might be party to the minecart/boat/etc shenanigans (you also mention CommandBook, which I also run on my server), I did a quick audit of the code. The most likely code to be party to such issues is the onPlayerInteract() event and that code has not changed in many versions. This doesn't mean that Bukkit didn't change in some way that could be causing issues, so I further carefully checked the existing code and don't see any way it could be causing said issues.
Which leads me back to; how much work have you done to verify that it is HSP causing the issue? If you can, please confirm you have the issue on your server, and then do nothing except disable HSP and confirm the issue is gone as a result. If you can do this, I will invest more time than I already have in trying to find an issue, but as of right now I don't see how it's possible HSP is involved unless you can provide some more conclusive evidence.
-
View User Profile
-
Send Message
Posted Aug 19, 2012@andune Thanks for the reply. I tried using modeRequiresBed, but it can't seem to ever find my home, even if I set it right next to the bed or on top of it, or even if I set the home using the bed. I would just use modeHomeBedOnly instead, but upon destruction of the bed, the home is still used, which defeats my the whole purpose of requiring beds in this world. Is there anything special I have to do with modeRequiresBed to get it to find homes?
As far as the permissions are concerned, I've had no problems getting those to work exactly as I want for this world.
EDIT: Also, it looks like it's completely possible to bypass the mode anyway by teleporting in from another world using "/home w:worldname". As a possible workaround, is there a way to block access to homes in a particular world from other worlds while still allowing the command to be used in the same way to get to other worlds' homes?
-
View User Profile
-
Send Message
Posted Aug 19, 2012https://bukkit.atlassian.net/browse/BUKKIT-2275
Anyway to find a fix for that? I use CommandBook and want to use HomeSpawnPlus. If this cant be fixed then I have to get 3 plugins to replace HomeSpawnPlus. I prefer the 1 plugin over 3.
-
View User Profile
-
Send Message
Posted Aug 18, 2012Yeah everything works 100% fine now, and thanks for those debug/inspection commands they make things easier.
I went with a hsp.group.<groupname> system, where each group had its <groupname> true and preceding <groupname> false in inheritance, so that each hsp.group.<groupname> is a per group only permission in a inheritance chain setup.
Thanks again for taking your time to respond.
-
View User Profile
-
Send Message
Posted Aug 18, 2012@andunde OOOHH god...dangit! i was reading group.default as a string index to my permissions file groups: default: In short I was thinking way too much like a programmer and not realising that group.default was a PERMISSION that i defined in my permissions config. It makes a lot more sense now. If you were to change group.<groupName> in your examples to something more along the lines of my.hsp.group.perm.default when introducing per-permission/group strategies, it may state how its a custom permission that you have to define and set more clearly. I know that it wouldve saved me several hours of trouble. (note that im not trying to correct you here, just giving my opinion ; ).
Im working on several things in the server atm, once I try this out again I will let you know how it goes. Thank you so much for responding.
-
View User Profile
-
Send Message
Posted Aug 18, 2012hehyo@andune
Little Request:
Config setting to define the logfile path.
I want all my logs in root/logs.
Would be great. THANKS.