-
Notifications
You must be signed in to change notification settings - Fork 43
Home
PrisonPearl allows players to imprison and control other players through the use of ender pearls. If you kill a player with an ender pearl in your possession, the pearl is converted to a prison pearl, and the player is imprisoned in the end. You must then secure the pearl from anyone who might wish to free the evildoer. You can also elect to use your prisoner as slave, by holding his pearl and summoning him from the end. He is bound to the pearl, and will die and return to the end if he attempts to flee.
Players are imprisoned when they die and have taken sufficient (configurable) damage from a player who has one or more ender pearls placed in his hotbar. The person who dealt the most damage to the player gets one pearl converted into a prison pearl. If a player stops taking damage for a configurable a period of time, his damage log is reset and he will not be imprisoned if he dies.
A pearl is only secure when placed in an inventory block, such as a chest or dispenser. A prison pearl in a players inventory will be freed if that player logs out. A prison pearl left on the ground will be freed if it despawns, or if the chunk containing it is unloaded. A burned or laved prison pearl will also be freed.
To free a player, simply throw his prison pearl, or use the ppfree command with the pearl in your inventory. If the player is online and free_tppearl is set to true, the player will be teleported to your location. If not, he will be respawned normally in the overworld.
Use the ppsummon command with a pearl in your inventory to summon that player back to the real world. This player can do anything as he pleases, but if he travels a configurable distance from the pearl he will begin to take damage. You can place the pearl in the chest if you think it is secure enough to prevent the prisoner from freeing himself. If he dies for any reason, he will be respawned in the end. You can reward your slave by using the ppreturn command, which sends him back to the end where he was with his inventory intact. A bad slave can instead be punished by using the ppkill command, which will put him back at the end spawn with no inventory.
Be careful not to allow your slaves to come in to contact with other people, because they could be stolen! Simply re-imprison an enslaved player to obtain their prison pearl, and use them for your own needs or free them on the spot.
An imprisoned player can at any time locate his pearl with the pplocate command. Any interested parties can then attempt to break in to the pearls storage location to free it.
All commands operate on the pearl in your hand. You can also use a command on a pearl in your inventory by supplying the name of that pearl.
-
/ppl
or/pplocate
locates a prisoner's prison pearl -
/ppf
or/ppfree [player]
frees the pearl -
/pps
or/ppsummon [player]
summons a prisoner -
/ppr
or/ppreturn [player]
returns a prisoner to the end, inventory intact -
/ppk
or/ppkill [player]
instantly kills a prisoner, sending them to the end with no inventory -
/ppb
or/ppbroadcast player
broadcast your pplocates to the given player automatically. -
/ppi
or/ppinfo [player]
tells you the pearl's damage value and the location/status of the player in the pearl. This can be used to set up shops or other mechanisms which require the damage value of an item.
All of these have their own permission by name (ie /pplocateany
requires prisonpearl.locateany
), which are by default granted to ops.
-
/pplocateany player
will locate player's pearl -
/ppfreeany player
will free any player -
/ppsave
will cause PrisonPearl to save its data to the disk -
/ppimprisonany player
will imprison any player.
-
free_world
is the name of the world a player will be teleported he's freed and has no bed (or if prison_resetbed). -
free_respawn
causes players to be killed (allowing them to respawn) instead of teleporting them to the free_world's spawn, which allows respawn altering plugins to kick in. -
free_tppearl
when an online player is free, teleport the player to the pearl instead of free_world -
damagelog_min
minimum amount of damage a player must inflict before he will be considered a candidate for imprisoning a player. -
damagelog_ticks
causes damage logs on a player to expire after he goes this many ticks unharmed. -
ppkill_enabled
allows the ppkill command to be used when true. -
prison_stealing
allows prisoners to be reimprisoned by another player when summoned. -
prison_musthotbar
requires players to hold an ender pearl in their hot bar when they wish to imprison someone. -
summon_damage_radius
is the distance a summoned player can travel from his pearl before taking damage. -
summon_damage_ticks
is the amount of ticks between damage inflicted to a summoned player. -
summon_damage_amt
is the amount of damage inflicted to a summoned player. -
prison_world
is the world players are teleported/respawned in when players are imprisoned. -
prison_resetbed
causes all imprisoned players to lose their current set bed location. -
prison_motd
is a list of strings which are sent to players whenever the teleport or respawn in prison. -
prison_grant_perms
is a list of permissions granted to an imprisoned player. -
prison_deny_perms
is a list of permissions denied to an imprisoned player. -
save_ticks
is the amount of ticks between prisonpearl saving data to its text files.
RandomSpawn integration
Use or build a version incorporating this this commit, then enable free_respawn
, and add RandomSpawn.exclude
to prison_grant_perms
.
CombatTag integration
Ensure that npcname=player
is set in settings.prop. If the NPCs are given a different name, prisonpearls in the NPCs name will be created and the actual player won't be imprisoned. I haven't studied CombatTag very much, so I'd welcome commits to improve this behavior!