Package org.bukkit.permissions

# Interface Permissible

All Superinterfaces:
  `ServerOperator`

All Known Subinterfaces:
  `AbstractArrow`, `AbstractHorse`, `AbstractSkeleton`, `AbstractVillager`, `Ageable`, `Ambient`, `Animals`, `AreaEffectCloud`, `ArmorStand`, `Arrow`, `Axolotl`, `Bat`, `Bee`, `Blaze`, `BlockCommandSender`, `Boat`, `Boss`, `Breedable`, `Bucketable`, `Cat`, `CaveSpider`, `ChestedHorse`, `Chicken`, `Cod`, `CollarColorable`, `CommandMinecart`, `CommandSender`, `ComplexEntityPart`, `ComplexLivingEntity`, `ConsoleCommandSender`, `Cow`, `Creature`, `Creeper`, `Damageable`, `Dolphin`, `Donkey`, `DragonFireball`, `Drowned`, `Egg`, `ElderGuardian`, `EnderCrystal`, `EnderDragon`, `EnderDragonPart`, `Enderman`, `Endermite`, `EnderPearl`, `EnderSignal`, `Entity`, `Evoker`, `EvokerFangs`, `ExperienceOrb`, `Explosive`, `ExplosiveMinecart`, `FallingBlock`, `Fireball`, `Firework`, `Fish`, `FishHook`, `Flying`, `Fox`, `Ghast`, `Giant`, `GlowItemFrame`, `GlowSquid`, `Goat`, `Golem`, `Guardian`, `Hanging`, `Hoglin`, `HopperMinecart`, `Horse`, `HumanEntity`, `Husk`, `Illager`, `Illusioner`, `IronGolem`, `Item`, `ItemFrame`, `LargeFireball`, `LeashHitch`, `LightningStrike`, `LingeringPotion`, `LivingEntity`, `Llama`, `LlamaSpit`, `MagmaCube`, `Marker`, `MessageCommandSender`, `Minecart`, `Mob`, `Monster`, `Mule`, `MushroomCow`, `NPC`, `Ocelot`, `Painting`, `Panda`, `Parrot`, `Phantom`, `Pig`, `Piglin`, `PiglinAbstract`, `PiglinBrute`, `PigZombie`, `Pillager`, `Player`, `PolarBear`, `PoweredMinecart`, `Projectile`, `ProxiedCommandSender`, `PufferFish`, `Rabbit`, `Raider`, `RangedEntity`, `Ravager`, `RemoteConsoleCommandSender`, `RideableMinecart`, `Salmon`, `Sheep`, `Shulker`, `ShulkerBullet`, `Silverfish`, `SizedFireball`, `Skeleton`, `SkeletonHorse`, `Slime`, `SmallFireball`, `Snowball`, `Snowman`, `SpawnerMinecart`, `SpectralArrow`, `Spellcaster`, `Spider`, `SplashPotion`, `Squid`, `Steerable`, `StorageMinecart`, `Stray`, `Strider`, `Tameable`, `ThrowableProjectile`, `ThrownExpBottle`, `ThrownPotion`, `TippedArrow`, `TNTPrimed`, `TraderLlama`, `Trident`, `TropicalFish`, `Turtle`, `Vehicle`, `Vex`, `Villager`, `Vindicator`, `WanderingTrader`, `WaterMob`, `Witch`, `Wither`, `WitherSkeleton`, `WitherSkull`, `Wolf`, `Zoglin`, `Zombie`, `ZombieHorse`, `ZombieVillager`

All Known Implementing Classes:
  `BufferedCommandSender`, `PermissibleBase`, `TimingsReportListener`

public interface Permissible extends ServerOperator
Represents an object that may be assigned permissions

## Method Summary

Modifier and Type
Method
Description
`@NotNull PermissionAttachment`
`addAttachment(@NotNull Plugin plugin)`
Adds a new empty `PermissionAttachment` to this object
`@Nullable PermissionAttachment`
`addAttachment(@NotNull Plugin plugin, int ticks)`
Temporarily adds a new empty `PermissionAttachment` to this object
`@NotNull PermissionAttachment`
`addAttachment(@NotNull Plugin plugin, @NotNull String name, boolean value)`
Adds a new `PermissionAttachment` with a single permission by name and value
`@Nullable PermissionAttachment`
`addAttachment(@NotNull Plugin plugin, @NotNull String name, boolean value, int ticks)`
Temporarily adds a new `PermissionAttachment` with a single permission by name and value
`@NotNull Set<PermissionAttachmentInfo>`
`getEffectivePermissions()`
Gets a set containing all of the permissions currently in effect by this object
`boolean`
`hasPermission(@NotNull String name)`
Gets the value of the specified permission, if set.
`boolean`
`hasPermission(@NotNull Permission perm)`
Gets the value of the specified permission, if set.
`boolean`
`isPermissionSet(@NotNull String name)`
Checks if this object contains an override for the specified permission, by fully qualified name
`boolean`
`isPermissionSet(@NotNull Permission perm)`
Checks if this object contains an override for the specified `Permission`
`default @NotNull TriState`
`permissionValue(@NotNull String permission)`
Checks if this object has a permission set and, if it is set, the value of the permission.
`default @NotNull TriState`
`permissionValue(@NotNull Permission permission)`
Checks if this object has a permission set and, if it is set, the value of the permission.
`void`
`recalculatePermissions()`
Recalculates the permissions for this object, if the attachments have changed values.
`void`
`removeAttachment(@NotNull PermissionAttachment attachment)`
Removes the given `PermissionAttachment` from this object

### Methods inherited from interface org.bukkit.permissions.ServerOperator

`isOp, setOp`

## Method Details

### isPermissionSet

boolean isPermissionSet(@NotNull @NotNull String name)
Checks if this object contains an override for the specified permission, by fully qualified name

Parameters:
  `name` - Name of the permission
Returns:
  true if the permission is set, otherwise false

### isPermissionSet

boolean isPermissionSet(@NotNull @NotNull Permission perm)
Checks if this object contains an override for the specified `Permission`

Parameters:
  `perm` - Permission to check
Returns:
  true if the permission is set, otherwise false

### hasPermission

boolean hasPermission(@NotNull @NotNull String name)
Gets the value of the specified permission, if set.

If a permission override is not set on this object, the default value of the permission will be returned.

Parameters:
  `name` - Name of the permission
Returns:
  Value of the permission

### hasPermission

boolean hasPermission(@NotNull @NotNull Permission perm)
Gets the value of the specified permission, if set.

If a permission override is not set on this object, the default value of the permission will be returned

Parameters:
  `perm` - Permission to get
Returns:
  Value of the permission

### addAttachment

@NotNull @NotNull PermissionAttachment addAttachment(@NotNull @NotNull Plugin plugin, @NotNull @NotNull String name, boolean value)
Adds a new `PermissionAttachment` with a single permission by name and value

Parameters:
  `plugin` - Plugin responsible for this attachment, may not be null or disabled
  `name` - Name of the permission to attach
  `value` - Value of the permission
Returns:
  The PermissionAttachment that was just created

### addAttachment

@NotNull @NotNull PermissionAttachment addAttachment(@NotNull @NotNull Plugin plugin)
Adds a new empty `PermissionAttachment` to this object

Parameters:
  `plugin` - Plugin responsible for this attachment, may not be null or disabled
Returns:
  The PermissionAttachment that was just created

### addAttachment

@Nullable @Nullable PermissionAttachment addAttachment(@NotNull @NotNull Plugin plugin, @NotNull @NotNull String name, boolean value, int ticks)
Temporarily adds a new `PermissionAttachment` with a single permission by name and value

Parameters:
  `plugin` - Plugin responsible for this attachment, may not be null or disabled
  `name` - Name of the permission to attach
  `value` - Value of the permission
  `ticks` - Amount of ticks to automatically remove this attachment after
Returns:
  The PermissionAttachment that was just created

### addAttachment

@Nullable @Nullable PermissionAttachment addAttachment(@NotNull @NotNull Plugin plugin, int ticks)
Temporarily adds a new empty `PermissionAttachment` to this object

Parameters:
  `plugin` - Plugin responsible for this attachment, may not be null or disabled
  `ticks` - Amount of ticks to automatically remove this attachment after
Returns:
  The PermissionAttachment that was just created

### removeAttachment

void removeAttachment(@NotNull @NotNull PermissionAttachment attachment)
Removes the given `PermissionAttachment` from this object

Parameters:
  `attachment` - Attachment to remove
Throws:
  `IllegalArgumentException` - Thrown when the specified attachment isn't part of this object

### recalculatePermissions

void recalculatePermissions()
Recalculates the permissions for this object, if the attachments have changed values.

This should very rarely need to be called from a plugin.

### getEffectivePermissions

@NotNull @NotNull Set<PermissionAttachmentInfo> getEffectivePermissions()
Gets a set containing all of the permissions currently in effect by this object

Returns:
  Set of currently effective permissions

### permissionValue

default @NotNull TriState permissionValue(@NotNull @NotNull Permission permission)
Checks if this object has a permission set and, if it is set, the value of the permission.

Parameters:
  `permission` - the permission to check
Returns:
  a tri-state of if the permission is set and, if it is set, it's value

### permissionValue

default @NotNull TriState permissionValue(@NotNull @NotNull String permission)
Checks if this object has a permission set and, if it is set, the value of the permission.

Parameters:
  `permission` - the permission to check
Returns:
  a tri-state of if the permission is set and, if it is set, it's value