Interface IAttachmentHolder

All Known Implementing Classes:
AbstractArrow, AbstractChestedHorse, AbstractClientPlayer, AbstractFish, AbstractFurnaceBlockEntity, AbstractGolem, AbstractHorse, AbstractHurtingProjectile, AbstractIllager, AbstractMinecart, AbstractMinecartContainer, AbstractPiglin, AbstractSchoolingFish, AbstractSkeleton, AbstractVillager, AbstractWindCharge, AgeableMob, Allay, AmbientCreature, Animal, AreaEffectCloud, Armadillo, ArmorStand, Arrow, AttachmentHolder, AttachmentHolder.AsField, Axolotl, BannerBlockEntity, BarrelBlockEntity, BaseContainerBlockEntity, Bat, BeaconBlockEntity, BedBlockEntity, Bee, BeehiveBlockEntity, BellBlockEntity, BlastFurnaceBlockEntity, Blaze, BlockAttachedEntity, BlockEntity, BlockPropertyTests.LightBlockEntity, Boat, Bogged, Breeze, BreezeWindCharge, BrewingStandBlockEntity, BrushableBlockEntity, CalibratedSculkSensorBlockEntity, Camel, CampfireBlockEntity, Cat, CaveSpider, ChestBlockEntity, ChestBoat, Chicken, ChiseledBookShelfBlockEntity, ChunkAccess, ClientLevel, Cod, CommandBlockEntity, ComparatorBlockEntity, ConduitBlockEntity, Cow, CrafterBlockEntity, Creeper, CustomHeadTest.CustomSkullBlockEntity, CustomItemDisplayContextTest.ItemHangerBlockEntity, CustomSignsTest.CustomHangingSignBlockEntity, CustomSignsTest.CustomSignBlockEntity, DaylightDetectorBlockEntity, DecoratedPotBlockEntity, DispenserBlockEntity, Display, Display.BlockDisplay, Display.ItemDisplay, Display.TextDisplay, Dolphin, Donkey, DragonFireball, DropperBlockEntity, Drowned, ElderGuardian, EmptyLevelChunk, EnchantingTableBlockEntity, EndCrystal, EnderChestBlockEntity, EnderDragon, EnderDragonPart, EnderMan, Endermite, Entity, EntityDataSerializerTest.TestEntity, EntityRendererEventsTest.MyEntity, EntityTests.AdaptedSpawnEntity, EntityTests.CustomComplexSpawnEntity, EntityTests.SimpleEntity, Evoker, EvokerFangs, ExperienceOrb, EyeOfEnder, FakePlayer, FallingBlockEntity, Fireball, FireworkRocketEntity, FishingHook, FlyingMob, Fox, Frog, FullPotsAccessorDemo.DioriteFlowerPotBlockEntity, FurnaceBlockEntity, GameTestPlayer, GameTestTest.EnergyBlockEntity, Ghast, Giant, GlowItemFrame, GlowSquid, Goat, Guardian, HangingEntity, HangingSignBlockEntity, Hoglin, HopperBlockEntity, Horse, Husk, Illusioner, ImposterProtoChunk, Interaction, IronGolem, ItemEntity, ItemFrame, JigsawBlockEntity, JukeboxBlockEntity, LargeFireball, LeashFenceKnotEntity, LecternBlockEntity, Level, LevelChunk, LightningBolt, LivingEntity, Llama, LlamaSpit, LocalPlayer, MagmaCube, Marker, MegaModelTest.TestBlock.Entity, Minecart, MinecartChest, MinecartCommandBlock, MinecartFurnace, MinecartHopper, MinecartSpawner, MinecartTNT, Mob, Monster, Mule, MushroomCow, Ocelot, OminousItemSpawner, Painting, Panda, Parrot, PartEntity, PartEntityTest.TestEntity, PartEntityTest.TestEntityPart, PathfinderMob, PatrollingMonster, Phantom, Pig, Piglin, PiglinBrute, Pillager, PistonMovingBlockEntity, Player, PolarBear, PrimedTnt, Projectile, ProtoChunk, Pufferfish, Rabbit, Raider, RandomizableContainerBlockEntity, Ravager, RemotePlayer, Salmon, SculkCatalystBlockEntity, SculkSensorBlockEntity, SculkShriekerBlockEntity, ServerLevel, ServerPlayer, Sheep, ShoulderRidingEntity, Shulker, ShulkerBoxBlockEntity, ShulkerBullet, SignBlockEntity, Silverfish, Skeleton, SkeletonHorse, SkullBlockEntity, Slime, SmallFireball, SmokerBlockEntity, Sniffer, Snowball, SnowGolem, SpawnerBlockEntity, SpectralArrow, SpellcasterIllager, Spider, Squid, Stray, Strider, StructureBlockEntity, Tadpole, TamableAnimal, TheEndGatewayBlockEntity, TheEndPortalBlockEntity, ThrowableItemProjectile, ThrowableProjectile, ThrownEgg, ThrownEnderpearl, ThrownExperienceBottle, ThrownPotion, ThrownTrident, TraderLlama, TrappedChestBlockEntity, TrialSpawnerBlockEntity, TropicalFish, Turtle, VaultBlockEntity, VehicleEntity, Vex, Villager, Vindicator, WanderingTrader, Warden, WaterAnimal, WindCharge, Witch, WitherBoss, WitherSkeleton, WitherSkull, Wolf, Zoglin, Zombie, ZombieHorse, ZombieVillager, ZombifiedPiglin

public interface IAttachmentHolder
An object that can hold data attachments.
  • Method Details

    • hasAttachments

      boolean hasAttachments()
      Returns true if there is any data attachments, false otherwise.
    • hasData

      boolean hasData(AttachmentType<?> type)
      Returns true if there is a data attachment of the give type, false otherwise.
    • hasData

      default <T> boolean hasData(Supplier<AttachmentType<T>> type)
      Returns true if there is a data attachment of the give type, false otherwise.
    • getData

      <T> T getData(AttachmentType<T> type)
      Returns the data attachment of the given type.

      If there is no data attachment of the given type, the default value is stored in this holder and returned.

      Returns:
      the data attachment of the given type
    • getData

      default <T> T getData(Supplier<AttachmentType<T>> type)
      Returns the data attachment of the given type.

      If there is no data attachment of the given type, the default value is stored in this holder and returned.

      Returns:
      the data attachment of the given type
    • getExistingData

      <T> Optional<T> getExistingData(AttachmentType<T> type)
      Returns an optional possibly containing a data attachment value of the given type.

      If there is no data attachment of the given type, an empty optional is returned.

      Returns:
      an optional possibly containing a data attachment value of the given type
    • getExistingData

      default <T> Optional<T> getExistingData(Supplier<AttachmentType<T>> type)
      Returns an optional possibly containing a data attachment value of the given type.

      If there is no data attachment of the given type, an empty optional is returned.

      Returns:
      an optional possibly containing a data attachment value of the given type
    • setData

      @Nullable <T> T setData(AttachmentType<T> type, T data)
      Sets the data attachment of the given type.
      Returns:
      the previous value for that attachment type, if any, or null if there was none
    • setData

      @Nullable default <T> T setData(Supplier<AttachmentType<T>> type, T data)
      Sets the data attachment of the given type.
      Returns:
      the previous value for that attachment type, if any, or null if there was none
    • removeData

      @Nullable <T> T removeData(AttachmentType<T> type)
      Removes the data attachment of the given type.
      Returns:
      the previous value for that attachment type, if any, or null if there was none
    • removeData

      @Nullable default <T> T removeData(Supplier<AttachmentType<T>> type)
      Removes the data attachment of the given type.
      Returns:
      the previous value for that attachment type, if any, or null if there was none