Class Turret

All Implemented Interfaces:
org.kingdoms.abstraction.Levellable, Keyed<SimpleLocation>, SmartObject, org.kingdoms.constants.group.model.logs.Loggable, org.kingdoms.data.Deserializable, org.kingdoms.data.Serializable, org.kingdoms.locale.provider.CascadingMessageContextProvider, org.kingdoms.locale.provider.MessageContextProvider
Direct Known Subclasses:
MineTurret, RangedTurret

public class Turret extends KingdomBuilding<TurretStyle>
  • Constructor Details

  • Method Details

    • invalidateStateCache

      public void invalidateStateCache()
    • getStateCache

      public org.kingdoms.utils.cache.single.TickedCache<TurretStateCache> getStateCache()
    • skipTarget

      public boolean skipTarget(org.bukkit.entity.LivingEntity target)
    • canSetOnFire

      public boolean canSetOnFire(Kingdom kingdom)
    • canDetectInvisible

      public boolean canDetectInvisible(Kingdom kingdom)
    • getDataMap

      protected Map<org.kingdoms.server.location.BlockVector3,KingdomBlock> getDataMap(Land land)
      Overrides:
      getDataMap in class KingdomBuilding<TurretStyle>
    • canTargetEntityType

      public boolean canTargetEntityType(org.bukkit.entity.EntityType entityType)
    • getEffects

      public @Unmodifiable Map<org.kingdoms.constants.namespace.Namespace,org.kingdoms.constants.land.turrets.effects.PersistentTurretEffect> getEffects()
      Expired effects will be automatically removed.
    • addEffect

      public void addEffect(org.kingdoms.constants.land.turrets.effects.TurretEffect effect)
    • getEffect

      public <T extends org.kingdoms.constants.land.turrets.effects.PersistentTurretEffect> Optional<T> getEffect(org.kingdoms.constants.namespace.Namespace name)
      Gets the strongest (not the longest) effect of the given type.
    • getHitEffects

      public @NonNull List<org.bukkit.potion.PotionEffect> getHitEffects()
    • getParticle

      public @Nullable com.cryptomorin.xseries.particles.ParticleDisplay getParticle()
    • place

      public KingdomItemPlaceEvent<Turret> place(org.kingdoms.events.items.KingdomItemPlaceContext context)
      Overrides:
      place in class KingdomBuilding<TurretStyle>
    • onBuildFinish

      @OverridingMethodsMustInvokeSuper public void onBuildFinish()
      Overrides:
      onBuildFinish in class KingdomBuilding<TurretStyle>
    • applyKnockback

      public void applyKnockback(org.bukkit.entity.LivingEntity target, Kingdom kingdom)
    • getKnockback

      public double getKnockback(Kingdom kingdom)
    • getKnockback

      public double getKnockback(Kingdom kingdom, int lvl)
    • getVerticalKnockback

      public double getVerticalKnockback(Kingdom kingdom, int lvl)
    • addMessageContextEdits

      @MustBeInvokedByOverriders public MessagePlaceholderProvider addMessageContextEdits(MessagePlaceholderProvider context, Kingdom kingdom)
      Overrides:
      addMessageContextEdits in class KingdomBuilding<TurretStyle>
    • getDamage

      public double getDamage(@NonNull Kingdom kingdom)
    • getDamage

      public double getDamage(@NonNull Kingdom kingdom, int lvl)
    • setOnFireLevel

      public int setOnFireLevel(@NonNull Kingdom kingdom)
    • invisibilityDetectionLevel

      public int invisibilityDetectionLevel(@NonNull Kingdom kingdom)
    • getArmorDamage

      public int getArmorDamage(@NonNull Kingdom kingdom, int lvl)
    • getArmorDamage

      public int getArmorDamage(@NonNull Kingdom kingdom)
    • damage

      public void damage(@NonNull TurretActivateEvent event)
    • getDeathMessages

      public List<String> getDeathMessages()
    • canFunction

      public boolean canFunction()
      Overrides:
      canFunction in class KingdomBuilding<TurretStyle>
    • chooseDeathMessage

      public @Nullable String chooseDeathMessage()
    • createExplosion

      public boolean createExplosion(org.bukkit.Location location, Kingdom kingdom)
    • createExplosion

      public boolean createExplosion(org.bukkit.Location location, Kingdom kingdom, int lvl)
    • activate

      public void activate(org.bukkit.entity.LivingEntity target, Kingdom kingdom)
      Called when the turret successfully damages a player. This isn't the same thing as attempted damage to for example an arrow turret, where the arrow may not even hit the target. This should be called when the arrow/entity/etc. has successfully affected the player and the player wasn't able to avoid it.
    • getLastActivation

      public @Nullable TurretActivateEvent getLastActivation()
    • setLastActivation

      public void setLastActivation(TurretActivateEvent lastActivation)
    • getKingdomBlockHandler

      @NotNull public @NotNull org.kingdoms.constants.land.KingdomBuildingHandler<Turret> getKingdomBlockHandler()
      Specified by:
      getKingdomBlockHandler in class KingdomBlock