Class ProjectileEntity

java.lang.Object
net.minecraft.entity.Entity
net.minecraft.entity.projectile.ProjectileEntity
All Implemented Interfaces:
Ownable, CommandOutput, Nameable, EntityLike
Direct Known Subclasses:
ExplosiveProjectileEntity, FireworkRocketEntity, FishingBobberEntity, LlamaSpitEntity, PersistentProjectileEntity, ShulkerBulletEntity, ThrownEntity

public abstract class ProjectileEntity extends Entity implements Ownable
Mappings:
Namespace Name
official ccm
intermediary net/minecraft/class_1676
named net/minecraft/entity/projectile/ProjectileEntity
  • Field Details

    • ownerUuid

      @Nullable private @Nullable UUID ownerUuid
      Mappings:
      Namespace Name Mixin selector
      official b Lccm;b:Ljava/util/UUID;
      intermediary field_22478 Lnet/minecraft/class_1676;field_22478:Ljava/util/UUID;
      named ownerUuid Lnet/minecraft/entity/projectile/ProjectileEntity;ownerUuid:Ljava/util/UUID;
    • owner

      @Nullable private @Nullable Entity owner
      Mappings:
      Namespace Name Mixin selector
      official c Lccm;c:Lbiq;
      intermediary field_33399 Lnet/minecraft/class_1676;field_33399:Lnet/minecraft/class_1297;
      named owner Lnet/minecraft/entity/projectile/ProjectileEntity;owner:Lnet/minecraft/entity/Entity;
    • leftOwner

      private boolean leftOwner
      Mappings:
      Namespace Name Mixin selector
      official d Lccm;d:Z
      intermediary field_23740 Lnet/minecraft/class_1676;field_23740:Z
      named leftOwner Lnet/minecraft/entity/projectile/ProjectileEntity;leftOwner:Z
    • shot

      private boolean shot
      Mappings:
      Namespace Name Mixin selector
      official e Lccm;e:Z
      intermediary field_28646 Lnet/minecraft/class_1676;field_28646:Z
      named shot Lnet/minecraft/entity/projectile/ProjectileEntity;shot:Z
  • Constructor Details

    • ProjectileEntity

      ProjectileEntity(EntityType<? extends ProjectileEntity> type, World world)
      Mappings:
      Namespace Name Mixin selector
      official <init> Lbiq;<init>(Lbiu;Lcpv;)V
      intermediary <init> Lnet/minecraft/class_1297;<init>(Lnet/minecraft/class_1299;Lnet/minecraft/class_1937;)V
      named <init> Lnet/minecraft/entity/Entity;<init>(Lnet/minecraft/entity/EntityType;Lnet/minecraft/world/World;)V
  • Method Details

    • setOwner

      public void setOwner(@Nullable @Nullable Entity entity)
      Mappings:
      Namespace Name Mixin selector
      official b Lccm;b(Lbiq;)V
      intermediary method_7432 Lnet/minecraft/class_1676;method_7432(Lnet/minecraft/class_1297;)V
      named setOwner Lnet/minecraft/entity/projectile/ProjectileEntity;setOwner(Lnet/minecraft/entity/Entity;)V
    • getOwner

      @Nullable public @Nullable Entity getOwner()
      Specified by:
      getOwner in interface Ownable
      Mappings:
      Namespace Name Mixin selector
      official v Lbkd;v()Lbiq;
      intermediary method_24921 Lnet/minecraft/class_8046;method_24921()Lnet/minecraft/class_1297;
      named getOwner Lnet/minecraft/entity/Ownable;getOwner()Lnet/minecraft/entity/Entity;
    • getEffectCause

      public Entity getEffectCause()
      Returns the cause entity of any effect applied by this projectile. If this projectile has an owner, the effect is attributed to the owner; otherwise, it is attributed to this projectile itself.
      Returns:
      the cause entity of any effect applied by this projectile
      Mappings:
      Namespace Name Mixin selector
      official G Lccm;G()Lbiq;
      intermediary method_37225 Lnet/minecraft/class_1676;method_37225()Lnet/minecraft/class_1297;
      named getEffectCause Lnet/minecraft/entity/projectile/ProjectileEntity;getEffectCause()Lnet/minecraft/entity/Entity;
    • writeCustomDataToNbt

      protected void writeCustomDataToNbt(NbtCompound nbt)
      Writes custom data to nbt. Subclasses have to implement this.

      NBT is a storage format; therefore, a data from NBT is loaded to an entity instance's fields, which are used for other operations instead of the NBT. The data is written back to NBT when saving the entity.

      Specified by:
      writeCustomDataToNbt in class Entity
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official b Lbiq;b(Lqw;)V
      intermediary method_5652 Lnet/minecraft/class_1297;method_5652(Lnet/minecraft/class_2487;)V
      named writeCustomDataToNbt Lnet/minecraft/entity/Entity;writeCustomDataToNbt(Lnet/minecraft/nbt/NbtCompound;)V
    • isOwner

      protected boolean isOwner(Entity entity)
      Mappings:
      Namespace Name Mixin selector
      official d Lccm;d(Lbiq;)Z
      intermediary method_34714 Lnet/minecraft/class_1676;method_34714(Lnet/minecraft/class_1297;)Z
      named isOwner Lnet/minecraft/entity/projectile/ProjectileEntity;isOwner(Lnet/minecraft/entity/Entity;)Z
    • readCustomDataFromNbt

      protected void readCustomDataFromNbt(NbtCompound nbt)
      Reads custom data from nbt. Subclasses have to implement this.

      NBT is a storage format; therefore, a data from NBT is loaded to an entity instance's fields, which are used for other operations instead of the NBT. The data is written back to NBT when saving the entity.

      nbt might not have all expected keys, or might have a key whose value does not meet the requirement (such as the type or the range). This method should fall back to a reasonable default value instead of throwing an exception.

      Specified by:
      readCustomDataFromNbt in class Entity
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official a Lbiq;a(Lqw;)V
      intermediary method_5749 Lnet/minecraft/class_1297;method_5749(Lnet/minecraft/class_2487;)V
      named readCustomDataFromNbt Lnet/minecraft/entity/Entity;readCustomDataFromNbt(Lnet/minecraft/nbt/NbtCompound;)V
    • tick

      public void tick()
      Ticks this entity.
      Overrides:
      tick in class Entity
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official l Lbiq;l()V
      intermediary method_5773 Lnet/minecraft/class_1297;method_5773()V
      named tick Lnet/minecraft/entity/Entity;tick()V
    • shouldLeaveOwner

      private boolean shouldLeaveOwner()
      Mappings:
      Namespace Name Mixin selector
      official s Lccm;s()Z
      intermediary method_26961 Lnet/minecraft/class_1676;method_26961()Z
      named shouldLeaveOwner Lnet/minecraft/entity/projectile/ProjectileEntity;shouldLeaveOwner()Z
    • setVelocity

      public void setVelocity(double x, double y, double z, float speed, float divergence)
      Sets velocity and updates rotation accordingly.

      The velocity and rotation will be set to the same direction.

      The direction is calculated as follows: Based on the direction vector (x, y, z), a random vector is added, then multiplied by the speed.

      Parameters:
      x - the X component of the direction vector
      y - the Y component of the direction vector
      z - the Z component of the direction vector
      speed - the speed
      divergence - the fuzziness added to the direction; player usages have 1.0 and other mobs/tools have higher values; some mobs have difficulty-adjusted values
      Mappings:
      Namespace Name Mixin selector
      official c Lccm;c(DDDFF)V
      intermediary method_7485 Lnet/minecraft/class_1676;method_7485(DDDFF)V
      named setVelocity Lnet/minecraft/entity/projectile/ProjectileEntity;setVelocity(DDDFF)V
    • setVelocity

      public void setVelocity(Entity shooter, float pitch, float yaw, float roll, float speed, float divergence)
      Sets velocity and updates rotation accordingly.
      Parameters:
      shooter - the entity who shot this projectile; used to add the shooter's velocity to this projectile
      pitch - the pitch
      yaw - the yaw
      roll - the roll
      speed - the speed
      divergence - the fuzziness added to the direction; player usages have 1.0 and other mobs/tools have higher values; some mobs have difficulty-adjusted values
      Mappings:
      Namespace Name Mixin selector
      official a Lccm;a(Lbiq;FFFFF)V
      intermediary method_24919 Lnet/minecraft/class_1676;method_24919(Lnet/minecraft/class_1297;FFFFF)V
      named setVelocity Lnet/minecraft/entity/projectile/ProjectileEntity;setVelocity(Lnet/minecraft/entity/Entity;FFFFF)V
    • onCollision

      protected void onCollision(HitResult hitResult)
      Mappings:
      Namespace Name Mixin selector
      official a Lccm;a(Lehl;)V
      intermediary method_7488 Lnet/minecraft/class_1676;method_7488(Lnet/minecraft/class_239;)V
      named onCollision Lnet/minecraft/entity/projectile/ProjectileEntity;onCollision(Lnet/minecraft/util/hit/HitResult;)V
    • onEntityHit

      protected void onEntityHit(EntityHitResult entityHitResult)
      Mappings:
      Namespace Name Mixin selector
      official a Lccm;a(Lehk;)V
      intermediary method_7454 Lnet/minecraft/class_1676;method_7454(Lnet/minecraft/class_3966;)V
      named onEntityHit Lnet/minecraft/entity/projectile/ProjectileEntity;onEntityHit(Lnet/minecraft/util/hit/EntityHitResult;)V
    • onBlockHit

      protected void onBlockHit(BlockHitResult blockHitResult)
      Mappings:
      Namespace Name Mixin selector
      official a Lccm;a(Lehj;)V
      intermediary method_24920 Lnet/minecraft/class_1676;method_24920(Lnet/minecraft/class_3965;)V
      named onBlockHit Lnet/minecraft/entity/projectile/ProjectileEntity;onBlockHit(Lnet/minecraft/util/hit/BlockHitResult;)V
    • setVelocityClient

      public void setVelocityClient(double x, double y, double z)
      Overrides:
      setVelocityClient in class Entity
      Mappings:
      Namespace Name Mixin selector
      official l Lbiq;l(DDD)V
      intermediary method_5750 Lnet/minecraft/class_1297;method_5750(DDD)V
      named setVelocityClient Lnet/minecraft/entity/Entity;setVelocityClient(DDD)V
    • canHit

      protected boolean canHit(Entity entity)
      Mappings:
      Namespace Name Mixin selector
      official a Lccm;a(Lbiq;)Z
      intermediary method_26958 Lnet/minecraft/class_1676;method_26958(Lnet/minecraft/class_1297;)Z
      named canHit Lnet/minecraft/entity/projectile/ProjectileEntity;canHit(Lnet/minecraft/entity/Entity;)Z
    • updateRotation

      protected void updateRotation()
      Mappings:
      Namespace Name Mixin selector
      official H Lccm;H()V
      intermediary method_26962 Lnet/minecraft/class_1676;method_26962()V
      named updateRotation Lnet/minecraft/entity/projectile/ProjectileEntity;updateRotation()V
    • updateRotation

      protected static float updateRotation(float prevRot, float newRot)
      Mappings:
      Namespace Name Mixin selector
      official d Lccm;d(FF)F
      intermediary method_26960 Lnet/minecraft/class_1676;method_26960(FF)F
      named updateRotation Lnet/minecraft/entity/projectile/ProjectileEntity;updateRotation(FF)F
    • createSpawnPacket

      public Packet<ClientPlayPacketListener> createSpawnPacket()
      Returns a packet to notify the clients of the entity's spawning.
      Overrides:
      createSpawnPacket in class Entity
      Returns:
      a packet to notify the clients of the entity's spawning
      Mappings:
      Namespace Name Mixin selector
      official di Lbiq;di()Lvd;
      intermediary method_18002 Lnet/minecraft/class_1297;method_18002()Lnet/minecraft/class_2596;
      named createSpawnPacket Lnet/minecraft/entity/Entity;createSpawnPacket()Lnet/minecraft/network/packet/Packet;
    • onSpawnPacket

      public void onSpawnPacket(EntitySpawnS2CPacket packet)
      Called on the client when the entity receives a spawn packet.

      This sets the entity's position, angles, ID, and UUID. Subclasses can override this to initialize additional fields.

      Overrides:
      onSpawnPacket in class Entity
      Mappings:
      Namespace Name Mixin selector
      official a Lbiq;a(Lwx;)V
      intermediary method_31471 Lnet/minecraft/class_1297;method_31471(Lnet/minecraft/class_2604;)V
      named onSpawnPacket Lnet/minecraft/entity/Entity;onSpawnPacket(Lnet/minecraft/network/packet/s2c/play/EntitySpawnS2CPacket;)V
    • canModifyAt

      public boolean canModifyAt(World world, BlockPos pos)
      Returns whether the entity can modify the world at pos.

      This returns true for most entities. Players check World.canPlayerModifyAt(net.minecraft.entity.player.PlayerEntity, net.minecraft.util.math.BlockPos) to prevent them from modifying entities in the spawn protection or outside the world border. ProjectileEntity delegates it to the owner if the owner is a player; if the owner is a non-player entity, this returns the value of GameRules.DO_MOB_GRIEFING, and ownerless projectiles are always allowed to modify the world.

      Overrides:
      canModifyAt in class Entity
      Returns:
      whether the entity can modify the world at pos
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official a Lbiq;a(Lcpv;Lgw;)Z
      intermediary method_36971 Lnet/minecraft/class_1297;method_36971(Lnet/minecraft/class_1937;Lnet/minecraft/class_2338;)Z
      named canModifyAt Lnet/minecraft/entity/Entity;canModifyAt(Lnet/minecraft/world/World;Lnet/minecraft/util/math/BlockPos;)Z