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
-
Field Summary
Fields inherited from class org.kingdoms.constants.land.abstraction.KingdomBuilding
building, durability, level, styleFields inherited from class org.kingdoms.constants.land.KingdomBlock
originFields inherited from class org.kingdoms.constants.base.KingdomsObject
lastLogsExpirationCheck, logs, metadata, statisticsFields inherited from class org.kingdoms.constants.base.CompressedSmartObject
objectState -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidCalled when the turret successfully damages a player.voidaddEffect(org.kingdoms.constants.land.turrets.effects.TurretEffect effect) addMessageContextEdits(MessagePlaceholderProvider context, Kingdom kingdom) voidapplyKnockback(org.bukkit.entity.LivingEntity target, Kingdom kingdom) booleancanDetectInvisible(Kingdom kingdom) booleanbooleancanSetOnFire(Kingdom kingdom) booleancanTargetEntityType(org.bukkit.entity.EntityType entityType) @Nullable StringbooleancreateExplosion(org.bukkit.Location location, Kingdom kingdom) booleancreateExplosion(org.bukkit.Location location, Kingdom kingdom, int lvl) voiddamage(@NonNull TurretActivateEvent event) intgetArmorDamage(@NonNull Kingdom kingdom) intgetArmorDamage(@NonNull Kingdom kingdom, int lvl) doubledoubleprotected Map<org.kingdoms.server.location.BlockVector3, KingdomBlock> getDataMap(Land land) <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.@Unmodifiable Map<org.kingdoms.constants.namespace.Namespace, org.kingdoms.constants.land.turrets.effects.PersistentTurretEffect> Expired effects will be automatically removed.@NonNull List<org.bukkit.potion.PotionEffect> @NotNull org.kingdoms.constants.land.KingdomBuildingHandler<Turret> doublegetKnockback(Kingdom kingdom) doublegetKnockback(Kingdom kingdom, int lvl) @Nullable TurretActivateEvent@Nullable com.cryptomorin.xseries.particles.ParticleDisplayorg.kingdoms.utils.cache.single.TickedCache<TurretStateCache> doublegetVerticalKnockback(Kingdom kingdom, int lvl) voidintinvisibilityDetectionLevel(@NonNull Kingdom kingdom) voidplace(org.kingdoms.events.items.KingdomItemPlaceContext context) voidsetLastActivation(TurretActivateEvent lastActivation) intsetOnFireLevel(@NonNull Kingdom kingdom) booleanskipTarget(org.bukkit.entity.LivingEntity target) Methods inherited from class org.kingdoms.constants.land.abstraction.KingdomBuilding
addMessageContextEdits, decreaseDurability, deserialize, displayParticle, displayParticle, dropItem, equals, eval, eval, getBlock, getBuilding, getBuildingSettings, getContext, getDurability, getItem, getKey, getLevel, getMaxLevel, getParticleDisplay, getPlaceholderContext, getStyle, getUpgradeCost, getVisualsManager, hashCode, isEnabled, modifyData, ofSection, ofSection, ofSection, playSound, playSound, playSound, prepareBuilding, remove, remove, repair, requireRepair, serialize, setBuilding, setDurability, setLevel, toString, update, upgradeMethods inherited from class org.kingdoms.constants.land.KingdomBlock
getLand, getOriginMethods inherited from class org.kingdoms.constants.base.KingdomsObject
getLogs, getMetadata, getNewestLog, getNewestLog, getStatistics, log, setLogs, setMetadata, setStatisticsMethods inherited from class org.kingdoms.constants.base.CompressedSmartObject
ensureValidObject, getCompressedData, getDataHandler, hasObjectExpired, invalidateObject, isNewData, isObjectStateSaved, saveObjectState, shouldSaveMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface org.kingdoms.locale.provider.CascadingMessageContextProvider
getMessageContextMethods inherited from interface org.kingdoms.constants.base.SmartObject
isDataEmpty
-
Constructor Details
-
Turret
-
-
Method Details
-
invalidateStateCache
public void invalidateStateCache() -
getStateCache
-
skipTarget
public boolean skipTarget(org.bukkit.entity.LivingEntity target) -
canSetOnFire
-
canDetectInvisible
-
getDataMap
- Overrides:
getDataMapin classKingdomBuilding<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
-
getParticle
public @Nullable com.cryptomorin.xseries.particles.ParticleDisplay getParticle() -
place
public KingdomItemPlaceEvent<Turret> place(org.kingdoms.events.items.KingdomItemPlaceContext context) - Overrides:
placein classKingdomBuilding<TurretStyle>
-
onBuildFinish
@OverridingMethodsMustInvokeSuper public void onBuildFinish()- Overrides:
onBuildFinishin classKingdomBuilding<TurretStyle>
-
applyKnockback
-
getKnockback
-
getKnockback
-
getVerticalKnockback
-
addMessageContextEdits
@MustBeInvokedByOverriders public MessagePlaceholderProvider addMessageContextEdits(MessagePlaceholderProvider context, Kingdom kingdom) - Overrides:
addMessageContextEditsin classKingdomBuilding<TurretStyle>
-
getDamage
-
getDamage
-
setOnFireLevel
-
invisibilityDetectionLevel
-
getArmorDamage
-
getArmorDamage
-
damage
-
getDeathMessages
-
canFunction
public boolean canFunction()- Overrides:
canFunctionin classKingdomBuilding<TurretStyle>
-
chooseDeathMessage
-
createExplosion
-
createExplosion
-
activate
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
-
setLastActivation
-
getKingdomBlockHandler
@NotNull public @NotNull org.kingdoms.constants.land.KingdomBuildingHandler<Turret> getKingdomBlockHandler()- Specified by:
getKingdomBlockHandlerin classKingdomBlock
-