Home Invite Feature
One of the most requested features for HSP was a Home Invite system. This has been added as of version 1.5.1. This document describes how this new feature works.
Simple Use Case
If a player wants to invite someone to their home, they simply use the /homeinvite (alias = /hi) command like so:
the player (who must be online) will then receive a message letting them know they have received an invite, which will timeout in a configurable amount of time (default: 30 seconds). The message tells the player to type "/hiaccept" if they want to accept the invite, at which point they will be teleported to the home. The permissions required to do this are hsp.command.homeinvite and hsp.command.homeinviteaccept.
Note that this invites the player to your home on the same world as you or if you only have a single home, it will invite them to that home even if it is on a different world.
If your server is configured to allow multiple homes per world and you have set multiple homes, then the default syntax will invite the player to whichever home you have set as your "default" home on that world (/setdefaulthome). If you want to invite them to a different home, you can use the home name or id, which you can find by running /homelist. For example:
/hi player myhome # invite "player" to your home named "myhome" /hi player 7 # invite "player" to your home with the id #7 (as shown in /homelist)
Advanced Use Case
You can optionally enable long-term invites, such that players can permanently or temporarily invite others to their home. The permission required for sending these invites is hsp.command.homeinvite.permanent, which allows players to send homeinvites that are longer than the default use case. Also you would want to give players the permissions hsp.command.homeinvitelist and hsp.command.homeinviteteleport. In this scenario, one player could invite another to their home for an extended time doing something like one of these commands:
/hi player myhome 5m # invite for 5 minutes /hi player myhome 1w # invite for 1 week /hi player myhome 1mo 2w # invite for 1 month and 2 weeks /hi player myhome forever # invite forever (until deleted)
Note that long-term invites like these can also be sent to offline players, unlike a default temporary invite. Players can check any invites they have available by typing /hil (shortcut for /homeinvitelist), which also shows any invites you have sent out to other players. Every homeinvite has an id number in the list, so a player with an open invite can teleport to that invite like so:
/hit 3 # teleports to the invite with the id 3
Please note that by default, /hit is restricted to same-world. If you want players to be able to /hit across worlds, you must give them the hsp.command.homeinvitetp.otherworld permission.
A player can delete long-term invites with the command /homeinvitedelete (alias /hid), controlled by the permission hsp.command.homeinvitedelete.
For an admin, there are some config options available under homeInvite section:
- homeInvite.timeout: Controls the temporary invite timeout (default 30 seconds)
- homeInvite.useHomeCooldown: Declare that /hia (accept) and /hit (teleport) will use the same cooldown mechanics as /home. This means if a player is on a 30 second cooldown for their own home, they are also on a 30 second cooldown for home invites.
- homeInvite.useHomeWarmup: Declare that /hia (accept) and /hit (teleport) will use the same warmup mechanics as /home. This means if moving or taking damage are set to cancel a /home, then they will cancel home invite command as well.
- homeInvite.allowBedHomeInvites: (Default: true) If false, players will not be able to invite and teleport to homes set by beds. This might be useful if you let players have a "free" bed but charge them for additional homes and only let them use the paid-for homes on teleport.
Some other related config items for Home Invites:
- cost.homeinvite: Cost for sending a home invite
- cost.homeinviteaccept: Cost for accepting a temporary home invite
- cost.homeinviteteleport: Cost for teleporting to a permanent home invite
- warmup.homeinviteteleport: Warmup time for /hit if homeInvite.useHomeWarmup is false
- warmup.homeinviteaccept: Warmup time for /hiaccept if homeInvite.useHomeWarmup is false
- cooldown.homeinviteteleport: Cooldown time for /hit if homeInvite.useHomeCooldown is false
- cooldown.homeinviteaccept: Cooldown time for /hiaccept if homeInvite.useHomeCooldown is false