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 TypeMethodDescriptionbooleancanHitEntity(@NotNull Entity entity) Gets whether this projectile can hit an entity.booleanDeprecated, 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.booleanGets whether the projectile has been shot into the world and has sent a projectile shot game event.booleanGets whether the projectile has left the hitbox of their shooter and can now hit entities.voidMakes this projectile hit a specific entity.voidMakes this projectile hit a specific entity from a specific point.voidsetBounce(boolean doesBounce) Deprecated, for removal: This API element is subject to removal in a future version.Does not do anythingvoidsetHasBeenShot(boolean beenShot) Sets whether the projectile has been shot into the world and has sent a projectile shot game event in the next tick.voidsetHasLeftShooter(boolean leftShooter) Sets whether the projectile has left the hitbox of their shooter and can now hit entities.voidsetShooter(@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, stopSoundMethods inherited from interface org.bukkit.command.CommandSender
getName, name, sendMessage, sendMessage, sendMessage, sendMessage, sendMessage, sendMessage, sendMessage, sendPlainMessage, sendRichMessage, sendRichMessageMethods 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, getPitch, getPortalCooldown, getPose, getScheduler, getScoreboardEntryName, getScoreboardTags, getServer, getSpawnCategory, getSwimHighSpeedSplashSound, getSwimSound, getSwimSplashSound, getTicksLived, getTrackedPlayers, getType, getUniqueId, getVehicle, getVelocity, getWidth, getWorld, getX, getY, getYaw, getZ, hasFixedPose, 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, setPose, setPose, setRotation, setSilent, setSneaking, setTicksLived, setVelocity, setVisibleByDefault, setVisualFire, spawnAt, spawnAt, spigot, teamDisplayName, teleport, teleport, teleport, teleport, teleport, teleport, teleportAsync, teleportAsync, wouldCollideUsingMethods inherited from interface net.kyori.adventure.text.event.HoverEventSource
asHoverEventMethods inherited from interface org.bukkit.metadata.Metadatable
getMetadata, hasMetadata, removeMetadata, setMetadataMethods inherited from interface org.bukkit.Nameable
customName, customName, getCustomName, setCustomNameMethods inherited from interface org.bukkit.permissions.Permissible
addAttachment, addAttachment, addAttachment, addAttachment, getEffectivePermissions, hasPermission, hasPermission, isPermissionSet, isPermissionSet, permissionValue, permissionValue, recalculatePermissions, removeAttachmentMethods inherited from interface org.bukkit.persistence.PersistentDataHolder
getPersistentDataContainerMethods inherited from interface net.kyori.adventure.pointer.Pointered
get, getOrDefault, getOrDefaultFrom, pointersMethods inherited from interface org.bukkit.permissions.ServerOperator
isOp, setOp
-
Method Details
-
getShooter
Retrieve the shooter of this projectile.- Returns:
- the
ProjectileSourcethat shot this projectile - See Also:
-
setShooter
Set the shooter of this projectile.- Parameters:
source- theProjectileSourcethat 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 inProjectileHitEventbeing 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 inProjectileHitEventbeing 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:
-