Interface Permissible

All Superinterfaces:
ServerOperator
All Known Subinterfaces:
AbstractArrow, AbstractHorse, AbstractSkeleton, AbstractVillager, AbstractWindCharge, AcaciaBoat, AcaciaChestBoat, Ageable, Allay, Ambient, Animals, AreaEffectCloud, Armadillo, ArmorStand, Arrow, Axolotl, BambooChestRaft, BambooRaft, Bat, Bee, BirchBoat, BirchChestBoat, Blaze, BlockCommandSender, BlockDisplay, Boat, Bogged, Boss, Breedable, Breeze, BreezeWindCharge, Bucketable, Camel, Cat, CaveSpider, CherryBoat, CherryChestBoat, ChestBoat, ChestedHorse, Chicken, Cod, CollarColorable, CommandMinecart, CommandSender, ComplexEntityPart, ComplexLivingEntity, ConsoleCommandSender, Cow, Creaking, CreakingTransient, Creature, Creeper, Damageable, DarkOakBoat, DarkOakChestBoat, Display, Dolphin, Donkey, DragonFireball, Drowned, Egg, ElderGuardian, EnderCrystal, EnderDragon, EnderDragonPart, Enderman, Endermite, EnderPearl, EnderSignal, Enemy, Entity, Evoker, EvokerFangs, ExperienceOrb, Explosive, ExplosiveMinecart, FallingBlock, Fireball, Firework, Fish, FishHook, Flying, Fox, Frog, Ghast, Giant, GlowItemFrame, GlowSquid, Goat, Golem, Guardian, Hanging, Hoglin, HopperMinecart, Horse, HumanEntity, Husk, Illager, Illusioner, Interaction, IronGolem, Item, ItemDisplay, ItemFrame, JungleBoat, JungleChestBoat, LargeFireball, Leashable, LeashHitch, LightningStrike, LingeringPotion, LivingEntity, Llama, LlamaSpit, MagmaCube, MangroveBoat, MangroveChestBoat, Marker, MessageCommandSender, Minecart, Mob, Monster, Mule, MushroomCow, NPC, OakBoat, OakChestBoat, Ocelot, OminousItemSpawner, Painting, PaleOakBoat, PaleOakChestBoat, Panda, Parrot, Phantom, Pig, Piglin, PiglinAbstract, PiglinBrute, PigZombie, Pillager, Player, PolarBear, PoweredMinecart, Projectile, ProxiedCommandSender, PufferFish, Rabbit, Raider, RangedEntity, Ravager, RemoteConsoleCommandSender, RideableMinecart, Salmon, SchoolableFish, Shearable, Sheep, Shulker, ShulkerBullet, Silverfish, SizedFireball, Skeleton, SkeletonHorse, Slime, SmallFireball, Sniffer, Snowball, Snowman, SpawnerMinecart, SpectralArrow, Spellcaster, Spider, SplashPotion, SpruceBoat, SpruceChestBoat, Squid, Steerable, StorageMinecart, Stray, Strider, Tadpole, Tameable, TextDisplay, ThrowableProjectile, ThrownExpBottle, ThrownPotion, TippedArrow, TNTPrimed, TraderLlama, Trident, TropicalFish, Turtle, Vehicle, Vex, Villager, Vindicator, WanderingTrader, Warden, WaterMob, WindCharge, 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 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

      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