Package org.bukkit.entity
Interface Projectile
- All Superinterfaces:
Audience
,CommandSender
,Entity
,HoverEventSource<HoverEvent.ShowEntity>
,Metadatable
,Nameable
,Permissible
,PersistentDataHolder
,Pointered
,ServerOperator
,Sound.Emitter
- All Known Subinterfaces:
AbstractArrow
,Arrow
,DragonFireball
,Egg
,EnderPearl
,Fireball
,Firework
,FishHook
,LargeFireball
,LingeringPotion
,LlamaSpit
,ShulkerBullet
,SizedFireball
,SmallFireball
,Snowball
,SpectralArrow
,SplashPotion
,ThrowableProjectile
,ThrownExpBottle
,ThrownPotion
,TippedArrow
,Trident
,WitherSkull
Represents a shootable entity.
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.bukkit.entity.Entity
Entity.Spigot
-
Method Summary
Modifier and TypeMethodDescriptionboolean
canHitEntity
(@NotNull Entity entity) Gets whether this projectile can hit an entity.boolean
Deprecated, for removal: This API element is subject to removal in a future version.Does not do anythingGets the owner's UUIDRetrieve the shooter of this projectile.boolean
Gets whether the projectile has been shot into the world and has sent a projectile shot game event.boolean
Gets whether the projectile has left the hitbox of their shooter and can now hit entities.void
Makes this projectile hit a specific entity.void
Makes this projectile hit a specific entity from a specific point.void
setBounce
(boolean doesBounce) Deprecated, for removal: This API element is subject to removal in a future version.Does not do anythingvoid
setHasBeenShot
(boolean beenShot) Sets whether the projectile has been shot into the world and has sent a projectile shot game event in the next tick.void
setHasLeftShooter
(boolean leftShooter) Sets whether the projectile has left the hitbox of their shooter and can now hit entities.void
setShooter
(@Nullable ProjectileSource source) Set the shooter of this projectile.Methods inherited from interface net.kyori.adventure.audience.Audience
clearTitle, deleteMessage, deleteMessage, filterAudience, forEachAudience, hideBossBar, openBook, openBook, playSound, playSound, playSound, resetTitle, sendActionBar, sendActionBar, sendMessage, sendMessage, sendMessage, sendMessage, sendMessage, sendMessage, sendMessage, sendMessage, sendMessage, sendMessage, sendMessage, sendMessage, sendMessage, sendMessage, sendPlayerListFooter, sendPlayerListFooter, sendPlayerListHeader, sendPlayerListHeader, sendPlayerListHeaderAndFooter, sendPlayerListHeaderAndFooter, sendTitlePart, showBossBar, showTitle, stopSound, stopSound
Methods inherited from interface org.bukkit.command.CommandSender
getName, name, sendMessage, sendMessage, sendMessage, sendMessage, sendMessage, sendMessage, sendMessage, sendPlainMessage, sendRichMessage
Methods inherited from interface org.bukkit.entity.Entity
addPassenger, addScoreboardTag, asHoverEvent, collidesAt, eject, fromMobSpawner, getBoundingBox, getChunk, getEntityId, getEntitySpawnReason, getFacing, getFallDistance, getFireTicks, getFreezeTicks, getHeight, getLastDamageCause, getLocation, getLocation, getMaxFireTicks, getMaxFreezeTicks, getNearbyEntities, getOrigin, getPassenger, getPassengers, getPistonMoveReaction, getPortalCooldown, getPose, getScoreboardTags, getServer, getSpawnCategory, getSwimHighSpeedSplashSound, getSwimSound, getSwimSplashSound, getTicksLived, getTrackedPlayers, getType, getUniqueId, getVehicle, getVelocity, getWidth, getWorld, hasGravity, isCustomNameVisible, isDead, isEmpty, isFreezeTickingLocked, isFrozen, isGlowing, isInBubbleColumn, isInLava, isInPowderedSnow, isInRain, isInsideVehicle, isInvulnerable, isInWater, isInWaterOrBubbleColumn, isInWaterOrRain, isInWaterOrRainOrBubbleColumn, isOnGround, isPersistent, isSilent, isSneaking, isTicking, isUnderWater, isValid, isVisibleByDefault, isVisualFire, leaveVehicle, lockFreezeTicks, playEffect, remove, removePassenger, removeScoreboardTag, setCustomNameVisible, setFallDistance, setFireTicks, setFreezeTicks, setGlowing, setGravity, setInvulnerable, setLastDamageCause, setPassenger, setPersistent, setPortalCooldown, setRotation, setSilent, setSneaking, setTicksLived, setVelocity, setVisibleByDefault, setVisualFire, spawnAt, spawnAt, spigot, teamDisplayName, teleport, teleport, teleport, teleport, teleport, teleport, teleportAsync, teleportAsync, wouldCollideUsing
Methods inherited from interface net.kyori.adventure.text.event.HoverEventSource
asHoverEvent
Methods inherited from interface org.bukkit.metadata.Metadatable
getMetadata, hasMetadata, removeMetadata, setMetadata
Methods inherited from interface org.bukkit.Nameable
customName, customName, getCustomName, setCustomName
Methods inherited from interface org.bukkit.permissions.Permissible
addAttachment, addAttachment, addAttachment, addAttachment, getEffectivePermissions, hasPermission, hasPermission, isPermissionSet, isPermissionSet, permissionValue, permissionValue, recalculatePermissions, removeAttachment
Methods inherited from interface org.bukkit.persistence.PersistentDataHolder
getPersistentDataContainer
Methods inherited from interface net.kyori.adventure.pointer.Pointered
get, getOrDefault, getOrDefaultFrom, pointers
Methods inherited from interface org.bukkit.permissions.ServerOperator
isOp, setOp
-
Method Details
-
getShooter
Retrieve the shooter of this projectile.- Returns:
- the
ProjectileSource
that shot this projectile - See Also:
-
setShooter
Set the shooter of this projectile.- Parameters:
source
- theProjectileSource
that shot this projectile
-
doesBounce
Deprecated, for removal: This API element is subject to removal in a future version.Does not do anythingDetermine if this projectile should bounce or not when it hits.If a small fireball does not bounce it will set the target on fire.
- Returns:
- true if it should bounce.
-
setBounce
Deprecated, for removal: This API element is subject to removal in a future version.Does not do anythingSet whether or not this projectile should bounce or not when it hits something.- Parameters:
doesBounce
- whether or not it should bounce.
-
hasLeftShooter
boolean hasLeftShooter()Gets whether the projectile has left the hitbox of their shooter and can now hit entities.- Returns:
- has left shooter's hitbox
-
setHasLeftShooter
void setHasLeftShooter(boolean leftShooter) Sets whether the projectile has left the hitbox of their shooter and can now hit entities. This is recalculated each tick if the projectile has a shooter.- Parameters:
leftShooter
- has left shooter's hitbox
-
hasBeenShot
boolean hasBeenShot()Gets whether the projectile has been shot into the world and has sent a projectile shot game event.- Returns:
- has been shot into the world
-
setHasBeenShot
void setHasBeenShot(boolean beenShot) Sets whether the projectile has been shot into the world and has sent a projectile shot game event in the next tick. Setting this to false will cause a game event to fire and the value to be set back to true.- Parameters:
beenShot
- has been in shot into the world
-
canHitEntity
Gets whether this projectile can hit an entity.This method returns true under the following conditions:
- The shooter can see the entity (
Player.canSee(Entity)
)- The entity is alive and not a spectator
- The projectile has left the hitbox of the shooter (
hasLeftShooter()
)- If this is an arrow with piercing, it has not pierced the entity already
- Parameters:
entity
- the entity to check if this projectile can hit- Returns:
- true if this projectile can damage the entity, false otherwise
-
hitEntity
Makes this projectile hit a specific entity. This uses the current position of the projectile for the hit point. Using this method will result inProjectileHitEvent
being called.- Parameters:
entity
- the entity to hit- See Also:
-
hitEntity
Makes this projectile hit a specific entity from a specific point. Using this method will result inProjectileHitEvent
being called.- Parameters:
entity
- the entity to hitvector
- the direction to hit from- See Also:
-
getOwnerUniqueId
Gets the owner's UUID- Returns:
- the owner's UUID, or null if not owned
- See Also:
-