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 1, 2012@ccman972
Sounds like it's working for you now? Good to go?
Regarding "*" permissions, they don't work like they "used to" back in the Perm2 days. They were explicitly "broken" (from an admin POV) in superperms, read the top paragraph at this link:
http://dev.bukkit.org/server-mods/permbukkit/pages/faq/
This means a plugin author must explicitly provide "*" nodes in order to simulate the old behavior. So I have defined "hsp.*" for example, but I've not defined "hsp.command.spawn.*". What you're trying to do is logical, unfortunately Superperms didn't agree. You can read the HSP plugin.yml to see what permission sets have been explicitly defined for use.
If you're using one of the defined nodes such as "hsp.full" and it's not working (as verified with /permcheck), then all I can say is, it is implemented correctly (HSP's usage of the nodes and the permission checks), so there is a breakdown with your permission system - and there are known issues with this and certain combination of permission systems (PEX is notorious for issues - see mbaxter's excellent write-up). This is why I provide the /permcheck command for troubleshooting.
I'll download your ZIP file and poke around to see if anything obvious turns up or if I can reproduce the issue. At the very least if I can find the specific set of circumstances/plugins that trigger the "hsp.full" not working as expected, I can document it in the FAQ for others to beware of.
At this point, based on your most recent edits, I assume you've solved the issue and are up and running - please let me know if otherwise.
-
View User Profile
-
Send Message
Posted Oct 1, 2012Also
2012-10-01 18:52:58 [INFO] [PlugMan] Plugins: Appleseed v0.7.2, ArmorAbilities v2.1.5, AutoRepair v2.1, BanAnnouncer v0.5.4, Better snow v0.3, BKCommonLib v1.29 BleedingMobs v3.7a bLift v1.2.1, BlockDoor v0.076 BookManager v0.3, Builder v0.5, Buycraft v4.7, CHDistantFarm v1.07 Citizens v2.0.2, ClayGen v1.6, CompatNoCheatPlus v6.2.5, Courier v1.1.6, CraftBackForBukkit v1.2.1, CraftBukkitUpToDate v3.0.0, CreeperHeal v5.0.1, CrimsonStone v1.0.2, DeathControl v1.86 DeityAPI v12.08.19 Denizen v0.7, DisposalChest v1.7, dynmap v0.80-1315 Dynmap-GriefPrevention v0.30 Dynmap-WorldGuard v0.30 EnderChestControl v1.8, Essentials v2.9.4, Glowstone Lanterns v0.5, GoldIsMoney v2.0.2, GPRealEstate v0.52b GriefPrevention v6.5.2, HawkEye v${project.version}, HelpTicket v12.09.01 HomeSpawnPlus v1.7.2, JSONAPI v3.9.9, JukeboxControl v0.0.3, Likeaboss v1.5.0, LoyaltyExp v1.2, LWC v4.3.0 (b736-git-1b1150b1) (August 08, 2012), MagicBookshelf v0.7, MailBox v2.5, mcMMO v1.3.11-b1030 MCTL v1.1, Minequery v1.5, MineralManager v2.1.3, MobArena v0.94.4.81 MobCatcher v2.19.1 by Malikk, MobHealth v5.1.2, Modifyworld v1.19.3 MoreAutoReloader v0.5, MultiPack v1.0.1, Multiverse-Core v2.4-b527, MyPet v0.7.1 (1.3.1), NoCheatPlus v3.7.3-b111, OnTime v3.3.1, PdxTrackRouter v0.7, PermissionsEx v1.19.3 PersonalChest v1.2.0, PEXRank v1.3.1, PlugMan v1.7.2, PreciousStones v9.4.1-SNAPSHOT, pvparena v0.8.12.6 Reservations v2.3.5, Sentry v1.0.2, Shopkeepers v1.7.1, Sign Bank v1.6, SignRails v1.2.0, SkitChat v1.0.2, SmoothRide v1.5, SnowBallNextDoor v1.1.4, SpellBook v0.3.2, SpongeRestore v1.7, Stargate v0.7.8.1, TreeAssist v4.4, UsefulVillagers v0.3.5b Value v1.3.4, VariableTriggers v1.1.9, Vault v1.2.19-b248 VaultSlots v1.7.2, VirtualPack v1.1.5, WeatherRestrictions v2.6.3, WorldBorder v1.5.4, WorldEdit v5.4.2, WorldGuard v5.5.3, xWarp v3.1.7
2012-10-01 18:53:30 [INFO] This server is running CraftBukkit version git-Bukkit-1.3.2-R1.0-b2377jnks (MC: 1.3.2) (Implementing API version 1.3.2-R1.0)
-
View User Profile
-
Send Message
Posted Oct 1, 2012org.bukkit.event.EventException
at org.morganm.homespawnplus.listener.HSPPlayerListener$4.execute(HSPPlayerListener.java:533)
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477)
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462)
at org.bukkit.craftbukkit.entity.CraftPlayer.teleport(CraftPlayer.java:356)
at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:228)
at net.minecraft.server.Packet10Flying.handle(SourceFile:136)
at net.minecraft.server.NetworkManager.b(NetworkManager.java:282)
at net.minecraft.server.NetServerHandler.d(NetServerHandler.java:109)
at net.minecraft.server.ServerConnection.b(SourceFile:35)
at net.minecraft.server.DedicatedServerConnection.b(SourceFile:30)
at net.minecraft.server.MinecraftServer.q(MinecraftServer.java:577)
at net.minecraft.server.DedicatedServer.q(DedicatedServer.java:213)
at net.minecraft.server.MinecraftServer.p(MinecraftServer.java:473)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:405)
at net.minecraft.server.ThreadServerApplication.run(SourceFile:539)
Caused by: java.lang.NullPointerException
at org.morganm.homespawnplus.listener.HSPPlayerListener.onPlayerTeleport(HSPPlayerListener.java:414)
at org.morganm.homespawnplus.listener.HSPPlayerListener$4.execute(HSPPlayerListener.java:531)
... 15 more
-
View User Profile
-
Send Message
Posted Oct 1, 2012@diannetea
More details please? Was it working in 1.7.1 or were you running 1.6.3 previously? Do you see any errors on startup? Perhaps something like: "No command classes found, HSP will not be able to register commands!"
Or are other HSP commands working and just not /home? Does "/hsphome" work? Does "/home" do anything at all?
If you can install Plugman and run a "/plugman vlist" for me as well as the output of "/version", that would show me Bukkit and all plugins and versions and I can try to reproduce the issue. Configurations of other plugins that have /home commands might be a next step as well. Feel free to open a ticket on the issue and we can track the details there.
-
View User Profile
-
Send Message
Posted Oct 1, 2012/home isn't working again :(
usurping is still on :/
-
View User Profile
-
Send Message
Posted Sep 30, 2012@ccman972
Care to share your config.yml? (why post a problem you want help with and make me guess at the relevant facts?) From your description I'm guessing it looks something like this:
I left the comments in place, copied straight from the config_defaults.yml (available online).
The comments hint at what may be the problem: core.defaultPermissions is only used if you are using "ops" permissions, but you stated you aren't. core.defaultPermissions is a crutch for those people who don't want to use a permission system but still want some control over the defaults. It is disabled if you use anything other than "ops", because that means you have a real permission system you should be using instead.
Have you read the FAQ?
http://dev.bukkit.org/server-mods/homespawnplus/pages/faq/#w-i-installed-hsp-but-users-cant-use-home-sethome-or
It describes using the command "/pc hsp.command.home theplayer" (try it from the console if you can't figure out permissions to get access to /permcheck). Have you tried that? Do the players have the access you intend?
"also i have a server to run, otherwise im going to change to Essentials spawn"
Pardon? You seem to be indicating that you're a busy man with a server to run and threatening if I don't help you you'll switch to Essentials? This is your 4th time posting for help and this is the most information you've provided; you've never indicated you've read the FAQ or tried the steps there.
Thousands of people have downloaded and used HSP just fine, with PEX and other permission systems. So your problem, as best I can tell at this point, is unique to your situation. If you want help, you'll have to do some work yourself, pastebin config files, show that you've walked through the FAQ and confirmed the users do in fact have the permissions you intend as shown by the /permcheck command and perhaps show what other plugins you are using (always possible another plugin is stealing /home, /sethome, etc. Have you looked into command usurping?)
In general, the quality of support you receive will be directly related to the amount of information you gather & share about your problem and the amount of reading you do of the online docs. That will be true of any plugin you use.
If you want to use Essentials spawn and find that it meets your needs, then by all means, don't let me stop you.
-
View User Profile
-
Send Message
Posted Sep 30, 2012@andune
done: http://dev.bukkit.org/server-mods/homespawnplus/tickets/140
its case sensitive yes. Hopefully this can be changed.
And no problem :)
-
View User Profile
-
Send Message
Posted Sep 30, 2012@ThisUsernameIsMine
Can you open a ticket for the backslash issue? So I don't forget about it. I'll fix it next time I do a release.
Not sure on the home/spawn not found thing, it suspect it is case sensitive.
And thanks for the update on 1.7.2, glad it's working as expected.
-
View User Profile
-
Send Message
Posted Sep 30, 2012@ThisUsernameIsMine
I didn't bother to check the contents of the other jar, but the 'new' v1.7.2 works (knock on wood). No complaints so/this far :-)
-
View User Profile
-
Send Message
Posted Sep 30, 2012@Apple_columb
My Avatar is Ichigo, as you've identified. I don't know when I last changed it.
Glad you like the spawnLastLocation, it's a new 1.7 feature so I wasn't sure if anyone was even using it yet. In that case, yes, the overhead on playerTeleport is required. I use mysql on my server and as you can see from my pastebin, the average call time is 0.50 milliseconds (< 1/1000 of a second).
-
View User Profile
-
Send Message
Posted Sep 30, 2012@andune
Will do ASAP and thanks! :)
-
View User Profile
-
Send Message
Posted Sep 30, 2012@ThisUsernameIsMine
Thanks for the early report. Turns out I somehow uploaded the wrong file, the version uploaded was a really old v1.5.3 version. No idea how that happened, but I've deleted the wrong file and uploaded the correct v1.7.2. Will have to be re-approved by Bukkit admins before it syndicates, but here's a direct link for now: http://dev.bukkit.org/server-mods/homespawnplus/files/41-v1-7-2/
I've downloaded the file and tested it locally and it works for me, but I'd appreciate if you let me know if it works OK for you also.
-
View User Profile
-
Send Message
Posted Sep 30, 2012@andune
Can I have an answer about your avatar? I do use spawnLastLocation (And really like this feature) and default SqlLite base, gonna change it to MySQL. Haven't know about database settings at bukkit.yml. Whoopsie.
-
View User Profile
-
Send Message
Posted Sep 30, 2012@andune
I never use /reload, i simply closed/shutdown the server with /stop, edited/updated the config (ofc. saved the made changes) and started the server again.
Thanks for your answer and good luck! :)
-
View User Profile
-
Send Message
Posted Sep 30, 2012@ThisUsernameIsMine
Hmm. It shouldn't have changed those. Did you restart or just /reload? The command system changed in 1.7.2 and due to the way Bukkit reloads, the old JAR is still referenced as the new one is loading, which causes command issues in 1.7.2. If you have restarted and are still seeing these issues, then it's a new bug to me. I'll try to reproduce locally.
-
View User Profile
-
Send Message
Posted Sep 30, 2012@Apple_columb
Well that info certainly is helpful. I see you are running WorldGuard. On my server, at least, WorldGuard is far heavier of a plugin.
With this context, back to your original question: I can now see the event causing what you asked about is PlayerTeleportEvent, which is what I suggested. What HSP database are you using? If you don't ever want to use the "spawnLastLocation" strategy, it wouldn't be hard to add a config option to turn the storing of last location off, then you can disable it if not in use. I doubt it will solve your lag problems, but at least you can put it behind you and move on to whatever the next thing is.
-
View User Profile
-
Send Message
Posted Sep 30, 2012About your avatar, you haven't changed it since 2006, right?
-
View User Profile
-
Send Message
Posted Sep 30, 20121.7.2 made quite some changes. I've noticed i can't use /homes (/homel and /homelist still works though) or named homes anymore (no home found).
I probably must read the docs (again)..
For named homes i tried:
onNamedHomeCommand:
- homeNamedHome (also tried homeMultiWorld)
outputs in: No home named blabla found :-/
For /homes i tried:
homes:
class: HomeList
aliases: [homes]
outputs in: Unknown command. Type "help" for help.
The permission nodes are there where they belong (still using Vault)
-
View User Profile
-
Send Message
Posted Sep 30, 2012@andune
Thanks! Kinda love to see a walls of text, but TL;DR version is fine too. Sometimes after large uptime (About 1-2days. For bukkit server it's "high") server start decreacing in perfomance. Actually, it laggs. Loading the whole i7-3820 core (Hello, my dear java multicore support). Tried to find "Why?". Googled BukkitInsider plugin. Found the most serious numbers - HSP. (There is about 50 other plugins, brb). The whole log - https://dl.dropbox.com/u/27770548/Files/log.log
-
View User Profile
-
Send Message
Posted Sep 30, 2012@Apple_columb
Ah, some information and an actual question! Your second post is much better framed than your first; you might consider starting with well-formed questions in the future, it increases your chance of getting a useful response. TL;DR at end if you just want a summary.
I recently did some performance tuning on my own server, using Bukkit's built-in profiling mechanism. So I have some numbers handy from that to compare to: http://pastebin.com/x6g3X7UH
So HSP is not the heavy hitter on my server. HSP has a lot of functionality so it's certainly not a "lightweight" plugin, but at the same time I work hard to keep performance tuned so that HSP is not a factor for lag. In fact, it even has built-in monitoring and it will alert you in the logs if it finds some events are taking too long (for example, perhaps someone is using a long strategy chain that takes longer than they expected to run).
I don't know what other plugins you are running, so I have no comparison for how HSP is in your particular environment, but as you can see here it's certainly not my heaviest hitter.
That said, as a result of looking at the latest timings, I did notice over half of the time HSP is spending in this dump is in "PlayerMoveEvent", which shouldn't even be registered on my server. HSP only registers it if you have WorldGuard running, and even then it's only supposed to register it if you use one of the WorldGuard-specific strategies that requires the event. I don't, so I've fixed that now. It's not a huge deal in any case, only 732 ms (<1 full second) on my server in over 6 hours of timings, but I do take performance seriously so next release this event won't be registered unless you're using strategies that require it. Prior to this PlayerMoveEvent for WorldGuard, HSP averages for me in the 320ms (total) range.
Since WorldGuard is far heavier weight than HSP (as shown in my printout), I'll assume you're not running WorldGuard, so PlayerMoveEvent isn't being hooked on your server. That leaves the next most likely heaviest hitters to be PlayerTeleportEvent and EntityDamageEvent. The latter is only hooked if you have enabled warmups (for damage monitoring). The "heft" in PlayerTeleportEvent is because HSP 1.7 now tracks the last location of a person when they crossWorld teleport, so that has a database write (fast, but some small overhead as seen). I can look into turning this off via a config flag for those who don't want to use this feature.
HSP is one of the few plugins I know of that goes out of its way to NOT register events if not needed, based on admin config settings. For example, not registering PlayerMove if you're not using WorldGuard (the only case where it's required) and not registering EntityDamageEvent if you're not using warmups (the only case it's required).
I take performance seriously, so if you're seeing an issue other than "HSP is the heaviest plugin I've chosen to run on my server", then there's not much I can offer other than: is it causing you any issues; are you seeing lag? And if the answer is yes, then share your configs and I will tell you what you can turn off to minimize the HSP footprint. Also if HSP notices any long-running events, it will print them into your system log with the string
"**LONG", so you can look for that to see if HSP is noticing any lag-inducing behaviors from it's own events.TL;DR HSP is well-tuned for performance, it's not the worst offender out of a list of common plugins people use and shouldn't be causing you lag issues. If you don't like that HSP necessarily involves some small overhead due to the wealth of features it provides, then you might want to run something else. If you DO notice an issue with HSP causing lag, I take that seriously so provide the details, your configs, logs, etc and I will look into it.