Class CrossbowItem

All Implemented Interfaces:
ItemConvertible, ToggleableFeature

public class CrossbowItem extends RangedWeaponItem
Mappings:
Namespace Name
official crm
intermediary net/minecraft/class_1764
named net/minecraft/item/CrossbowItem
  • Field Details

    • DEFAULT_PULL_TIME

      private static final int DEFAULT_PULL_TIME
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official k Lcrm;k:I
      intermediary field_30866 Lnet/minecraft/class_1764;field_30866:I
      named DEFAULT_PULL_TIME Lnet/minecraft/item/CrossbowItem;DEFAULT_PULL_TIME:I
    • RANGE

      public static final int RANGE
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official a Lcrm;a:I
      intermediary field_30863 Lnet/minecraft/class_1764;field_30863:I
      named RANGE Lnet/minecraft/item/CrossbowItem;RANGE:I
    • CHARGE_PROGRESS

      private static final float CHARGE_PROGRESS
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official n Lcrm;n:F
      intermediary field_30867 Lnet/minecraft/class_1764;field_30867:F
      named CHARGE_PROGRESS Lnet/minecraft/item/CrossbowItem;CHARGE_PROGRESS:F
    • LOAD_PROGRESS

      private static final float LOAD_PROGRESS
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official o Lcrm;o:F
      intermediary field_30868 Lnet/minecraft/class_1764;field_30868:F
      named LOAD_PROGRESS Lnet/minecraft/item/CrossbowItem;LOAD_PROGRESS:F
    • DEFAULT_SPEED

      private static final float DEFAULT_SPEED
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official p Lcrm;p:F
      intermediary field_30869 Lnet/minecraft/class_1764;field_30869:F
      named DEFAULT_SPEED Lnet/minecraft/item/CrossbowItem;DEFAULT_SPEED:F
    • FIREWORK_ROCKET_SPEED

      private static final float FIREWORK_ROCKET_SPEED
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official q Lcrm;q:F
      intermediary field_30870 Lnet/minecraft/class_1764;field_30870:F
      named FIREWORK_ROCKET_SPEED Lnet/minecraft/item/CrossbowItem;FIREWORK_ROCKET_SPEED:F
    • field_49258

      public static final float field_49258
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official b Lcrm;b:F
      intermediary field_49258 Lnet/minecraft/class_1764;field_49258:F
      named field_49258 Lnet/minecraft/item/CrossbowItem;field_49258:F
    • charged

      private boolean charged
      Mappings:
      Namespace Name Mixin selector
      official l Lcrm;l:Z
      intermediary field_7937 Lnet/minecraft/class_1764;field_7937:Z
      named charged Lnet/minecraft/item/CrossbowItem;charged:Z
    • loaded

      private boolean loaded
      Mappings:
      Namespace Name Mixin selector
      official m Lcrm;m:Z
      intermediary field_7936 Lnet/minecraft/class_1764;field_7936:Z
      named loaded Lnet/minecraft/item/CrossbowItem;loaded:Z
  • Constructor Details

    • CrossbowItem

      public CrossbowItem(Item.Settings settings)
      Mappings:
      Namespace Name Mixin selector
      official <init> Lcsu;<init>(Lcsu$a;)V
      intermediary <init> Lnet/minecraft/class_1792;<init>(Lnet/minecraft/class_1792$class_1793;)V
      named <init> Lnet/minecraft/item/Item;<init>(Lnet/minecraft/item/Item$Settings;)V
  • Method Details

    • getHeldProjectiles

      public Predicate<ItemStack> getHeldProjectiles()
      Overrides:
      getHeldProjectiles in class RangedWeaponItem
      Mappings:
      Namespace Name Mixin selector
      official d Lctq;d()Ljava/util/function/Predicate;
      intermediary method_20310 Lnet/minecraft/class_1811;method_20310()Ljava/util/function/Predicate;
      named getHeldProjectiles Lnet/minecraft/item/RangedWeaponItem;getHeldProjectiles()Ljava/util/function/Predicate;
    • getProjectiles

      public Predicate<ItemStack> getProjectiles()
      Specified by:
      getProjectiles in class RangedWeaponItem
      Mappings:
      Namespace Name Mixin selector
      official b Lctq;b()Ljava/util/function/Predicate;
      intermediary method_19268 Lnet/minecraft/class_1811;method_19268()Ljava/util/function/Predicate;
      named getProjectiles Lnet/minecraft/item/RangedWeaponItem;getProjectiles()Ljava/util/function/Predicate;
    • use

      public TypedActionResult<ItemStack> use(World world, PlayerEntity user, Hand hand)
      Called when the player uses (or starts using) the item. The use action, by default, is bound to the right mouse button. This method checks the player's hunger when the item is a food, and will pass in all other cases by default.

      If the item can be used for multiple ticks, then this will only be called when the player starts using it. After that, Item.usageTick(net.minecraft.world.World, net.minecraft.entity.LivingEntity, net.minecraft.item.ItemStack, int) is called every tick until the player finishes using the item.

      This method is called on both the logical client and logical server, so take caution when overriding this method. The logical side can be checked using world.isClient().

      Overrides:
      use in class Item
      Parameters:
      world - the world the item was used in
      user - the player who used the item
      hand - the hand used
      Returns:
      a typed action result that specifies whether using the item was successful. The action result contains the new item stack that the player's hand will be set to.
      Mappings:
      Namespace Name Mixin selector
      official a Lcsu;a(Ldad;Lclh;Lbpl;)Lbpn;
      intermediary method_7836 Lnet/minecraft/class_1792;method_7836(Lnet/minecraft/class_1937;Lnet/minecraft/class_1657;Lnet/minecraft/class_1268;)Lnet/minecraft/class_1271;
      named use Lnet/minecraft/item/Item;use(Lnet/minecraft/world/World;Lnet/minecraft/entity/player/PlayerEntity;Lnet/minecraft/util/Hand;)Lnet/minecraft/util/TypedActionResult;
    • getSpeed

      private static float getSpeed(ChargedProjectilesComponent stack)
      Mappings:
      Namespace Name Mixin selector
      official a Lcrm;a(Lcvl;)F
      intermediary method_20309 Lnet/minecraft/class_1764;method_20309(Lnet/minecraft/class_9278;)F
      named getSpeed Lnet/minecraft/item/CrossbowItem;getSpeed(Lnet/minecraft/component/type/ChargedProjectilesComponent;)F
    • onStoppedUsing

      public void onStoppedUsing(ItemStack stack, World world, LivingEntity user, int remainingUseTicks)
      Called on both the client and the server when an entity stops using an item before reaching the maximum use time. If the time was reached, Item.finishUsing(net.minecraft.item.ItemStack, net.minecraft.world.World, net.minecraft.entity.LivingEntity) is called instead.

      This method is called on both the logical client and logical server, so take caution when overriding this method. The logical side can be checked using World.isClient.

      user might not be a player in some cases. For example, this occurs when an entity uses a crossbow.

      Overrides:
      onStoppedUsing in class Item
      Mappings:
      Namespace Name Mixin selector
      official a Lcsu;a(Lcsz;Ldad;Lbsa;I)V
      intermediary method_7840 Lnet/minecraft/class_1792;method_7840(Lnet/minecraft/class_1799;Lnet/minecraft/class_1937;Lnet/minecraft/class_1309;I)V
      named onStoppedUsing Lnet/minecraft/item/Item;onStoppedUsing(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Lnet/minecraft/entity/LivingEntity;I)V
    • loadProjectiles

      private static boolean loadProjectiles(LivingEntity shooter, ItemStack crossbow)
      Mappings:
      Namespace Name Mixin selector
      official a Lcrm;a(Lbsa;Lcsz;)Z
      intermediary method_7767 Lnet/minecraft/class_1764;method_7767(Lnet/minecraft/class_1309;Lnet/minecraft/class_1799;)Z
      named loadProjectiles Lnet/minecraft/item/CrossbowItem;loadProjectiles(Lnet/minecraft/entity/LivingEntity;Lnet/minecraft/item/ItemStack;)Z
    • isCharged

      public static boolean isCharged(ItemStack stack)
      Mappings:
      Namespace Name Mixin selector
      official j Lcrm;j(Lcsz;)Z
      intermediary method_7781 Lnet/minecraft/class_1764;method_7781(Lnet/minecraft/class_1799;)Z
      named isCharged Lnet/minecraft/item/CrossbowItem;isCharged(Lnet/minecraft/item/ItemStack;)Z
    • shoot

      protected void shoot(LivingEntity shooter, ProjectileEntity projectile, int index, float speed, float divergence, float yaw, @Nullable @Nullable LivingEntity target)
      Specified by:
      shoot in class RangedWeaponItem
      Mappings:
      Namespace Name Mixin selector
      official a Lctq;a(Lbsa;Lclz;IFFFLbsa;)V
      intermediary method_7763 Lnet/minecraft/class_1811;method_7763(Lnet/minecraft/class_1309;Lnet/minecraft/class_1676;IFFFLnet/minecraft/class_1309;)V
      named shoot Lnet/minecraft/item/RangedWeaponItem;shoot(Lnet/minecraft/entity/LivingEntity;Lnet/minecraft/entity/projectile/ProjectileEntity;IFFFLnet/minecraft/entity/LivingEntity;)V
    • calcVelocity

      private static Vector3f calcVelocity(LivingEntity shooter, Vec3d direction, float yaw)
      Mappings:
      Namespace Name Mixin selector
      official a Lcrm;a(Lbsa;Letp;F)Lorg/joml/Vector3f;
      intermediary method_57343 Lnet/minecraft/class_1764;method_57343(Lnet/minecraft/class_1309;Lnet/minecraft/class_243;F)Lorg/joml/Vector3f;
      named calcVelocity Lnet/minecraft/item/CrossbowItem;calcVelocity(Lnet/minecraft/entity/LivingEntity;Lnet/minecraft/util/math/Vec3d;F)Lorg/joml/Vector3f;
    • createArrowEntity

      protected ProjectileEntity createArrowEntity(World world, LivingEntity shooter, ItemStack weaponStack, ItemStack projectileStack, boolean critical)
      Overrides:
      createArrowEntity in class RangedWeaponItem
      Mappings:
      Namespace Name Mixin selector
      official a Lctq;a(Ldad;Lbsa;Lcsz;Lcsz;Z)Lclz;
      intermediary method_57344 Lnet/minecraft/class_1811;method_57344(Lnet/minecraft/class_1937;Lnet/minecraft/class_1309;Lnet/minecraft/class_1799;Lnet/minecraft/class_1799;Z)Lnet/minecraft/class_1676;
      named createArrowEntity Lnet/minecraft/item/RangedWeaponItem;createArrowEntity(Lnet/minecraft/world/World;Lnet/minecraft/entity/LivingEntity;Lnet/minecraft/item/ItemStack;Lnet/minecraft/item/ItemStack;Z)Lnet/minecraft/entity/projectile/ProjectileEntity;
    • getWeaponStackDamage

      protected int getWeaponStackDamage(ItemStack projectile)
      Overrides:
      getWeaponStackDamage in class RangedWeaponItem
      Mappings:
      Namespace Name Mixin selector
      official k Lctq;k(Lcsz;)I
      intermediary method_57345 Lnet/minecraft/class_1811;method_57345(Lnet/minecraft/class_1799;)I
      named getWeaponStackDamage Lnet/minecraft/item/RangedWeaponItem;getWeaponStackDamage(Lnet/minecraft/item/ItemStack;)I
    • shootAll

      public void shootAll(World world, LivingEntity shooter, Hand hand, ItemStack stack, float speed, float divergence, @Nullable @Nullable LivingEntity livingEntity)
      Mappings:
      Namespace Name Mixin selector
      official a Lcrm;a(Ldad;Lbsa;Lbpl;Lcsz;FFLbsa;)V
      intermediary method_7777 Lnet/minecraft/class_1764;method_7777(Lnet/minecraft/class_1937;Lnet/minecraft/class_1309;Lnet/minecraft/class_1268;Lnet/minecraft/class_1799;FFLnet/minecraft/class_1309;)V
      named shootAll Lnet/minecraft/item/CrossbowItem;shootAll(Lnet/minecraft/world/World;Lnet/minecraft/entity/LivingEntity;Lnet/minecraft/util/Hand;Lnet/minecraft/item/ItemStack;FFLnet/minecraft/entity/LivingEntity;)V
    • getSoundPitch

      private static float getSoundPitch(Random random, int index)
      Mappings:
      Namespace Name Mixin selector
      official a Lcrm;a(Layg;I)F
      intermediary method_57342 Lnet/minecraft/class_1764;method_57342(Lnet/minecraft/class_5819;I)F
      named getSoundPitch Lnet/minecraft/item/CrossbowItem;getSoundPitch(Lnet/minecraft/util/math/random/Random;I)F
    • getSoundPitch

      private static float getSoundPitch(boolean flag, Random random)
      Mappings:
      Namespace Name Mixin selector
      official a Lcrm;a(ZLayg;)F
      intermediary method_7784 Lnet/minecraft/class_1764;method_7784(ZLnet/minecraft/class_5819;)F
      named getSoundPitch Lnet/minecraft/item/CrossbowItem;getSoundPitch(ZLnet/minecraft/util/math/random/Random;)F
    • usageTick

      public void usageTick(World world, LivingEntity user, ItemStack stack, int remainingUseTicks)
      Called on both the server and the client every tick while an entity uses the item. Currently used by CrossbowItem to charge the crossbow. If this is overridden, Item.getMaxUseTime(net.minecraft.item.ItemStack) should also be overridden to return a positive value.
      Overrides:
      usageTick in class Item
      Parameters:
      remainingUseTicks - how long it's left until the entity finishes using the item, in ticks
      See Also:
      Mappings:
      Namespace Name Mixin selector
      official a Lcsu;a(Ldad;Lbsa;Lcsz;I)V
      intermediary method_7852 Lnet/minecraft/class_1792;method_7852(Lnet/minecraft/class_1937;Lnet/minecraft/class_1309;Lnet/minecraft/class_1799;I)V
      named usageTick Lnet/minecraft/item/Item;usageTick(Lnet/minecraft/world/World;Lnet/minecraft/entity/LivingEntity;Lnet/minecraft/item/ItemStack;I)V
    • getMaxUseTime

      public int getMaxUseTime(ItemStack stack)
      Returns the maximum use (right-click) time of this item, in ticks. Once a player has used an item for said number of ticks, they stop using it, and Item.finishUsing(net.minecraft.item.ItemStack, net.minecraft.world.World, net.minecraft.entity.LivingEntity) is called.
      Overrides:
      getMaxUseTime in class Item
      Returns:
      the maximum use (right-click) time of this item, in ticks
      Mappings:
      Namespace Name Mixin selector
      official b Lcsu;b(Lcsz;)I
      intermediary method_7881 Lnet/minecraft/class_1792;method_7881(Lnet/minecraft/class_1799;)I
      named getMaxUseTime Lnet/minecraft/item/Item;getMaxUseTime(Lnet/minecraft/item/ItemStack;)I
    • getPullTime

      public static int getPullTime(ItemStack stack)
      Mappings:
      Namespace Name Mixin selector
      official l Lcrm;l(Lcsz;)I
      intermediary method_7775 Lnet/minecraft/class_1764;method_7775(Lnet/minecraft/class_1799;)I
      named getPullTime Lnet/minecraft/item/CrossbowItem;getPullTime(Lnet/minecraft/item/ItemStack;)I
    • getUseAction

      public UseAction getUseAction(ItemStack stack)
      Returns the use action the item should perform.
      Overrides:
      getUseAction in class Item
      Returns:
      the use action the item should perform
      Mappings:
      Namespace Name Mixin selector
      official c Lcsu;c(Lcsz;)Lcus;
      intermediary method_7853 Lnet/minecraft/class_1792;method_7853(Lnet/minecraft/class_1799;)Lnet/minecraft/class_1839;
      named getUseAction Lnet/minecraft/item/Item;getUseAction(Lnet/minecraft/item/ItemStack;)Lnet/minecraft/util/UseAction;
    • getQuickChargeSound

      private SoundEvent getQuickChargeSound(int stage)
      Mappings:
      Namespace Name Mixin selector
      official a Lcrm;a(I)Lavb;
      intermediary method_7773 Lnet/minecraft/class_1764;method_7773(I)Lnet/minecraft/class_3414;
      named getQuickChargeSound Lnet/minecraft/item/CrossbowItem;getQuickChargeSound(I)Lnet/minecraft/sound/SoundEvent;
    • getPullProgress

      private static float getPullProgress(int useTicks, ItemStack stack)
      Mappings:
      Namespace Name Mixin selector
      official a Lcrm;a(ILcsz;)F
      intermediary method_7770 Lnet/minecraft/class_1764;method_7770(ILnet/minecraft/class_1799;)F
      named getPullProgress Lnet/minecraft/item/CrossbowItem;getPullProgress(ILnet/minecraft/item/ItemStack;)F
    • appendTooltip

      public void appendTooltip(ItemStack stack, @Nullable @Nullable World world, List<Text> tooltip, TooltipContext context)
      Called by the client to append tooltips to an item. Subclasses can override this and add custom tooltips to tooltip list.
      Overrides:
      appendTooltip in class Item
      Parameters:
      tooltip - the list of tooltips to show
      Mappings:
      Namespace Name Mixin selector
      official a Lcsu;a(Lcsz;Ldad;Ljava/util/List;Lcuq;)V
      intermediary method_7851 Lnet/minecraft/class_1792;method_7851(Lnet/minecraft/class_1799;Lnet/minecraft/class_1937;Ljava/util/List;Lnet/minecraft/class_1836;)V
      named appendTooltip Lnet/minecraft/item/Item;appendTooltip(Lnet/minecraft/item/ItemStack;Lnet/minecraft/world/World;Ljava/util/List;Lnet/minecraft/client/item/TooltipContext;)V
    • isUsedOnRelease

      public boolean isUsedOnRelease(ItemStack stack)
      Overrides:
      isUsedOnRelease in class Item
      Mappings:
      Namespace Name Mixin selector
      official m Lcsu;m(Lcsz;)Z
      intermediary method_7838 Lnet/minecraft/class_1792;method_7838(Lnet/minecraft/class_1799;)Z
      named isUsedOnRelease Lnet/minecraft/item/Item;isUsedOnRelease(Lnet/minecraft/item/ItemStack;)Z
    • getRange

      public int getRange()
      Specified by:
      getRange in class RangedWeaponItem
      Mappings:
      Namespace Name Mixin selector
      official c Lctq;c()I
      intermediary method_24792 Lnet/minecraft/class_1811;method_24792()I
      named getRange Lnet/minecraft/item/RangedWeaponItem;getRange()I