Interface IAttachmentHolder

All Known Implementing Classes:
AbstractArrow, AbstractBoat, AbstractChestBoat, AbstractChestedHorse, AbstractClientPlayer, AbstractCow, AbstractFish, AbstractFurnaceBlockEntity, AbstractGolem, AbstractHorse, AbstractHurtingProjectile, AbstractIllager, AbstractMinecart, AbstractMinecartContainer, AbstractPiglin, AbstractSchoolingFish, AbstractSkeleton, AbstractThrownPotion, AbstractVillager, AbstractWindCharge, AgeableMob, AgeableWaterCreature, Allay, AmbientCreature, Animal, AreaEffectCloud, Armadillo, ArmorStand, Arrow, AttachmentHolder, AttachmentHolder.AsField, Axolotl, BannerBlockEntity, BarrelBlockEntity, BaseContainerBlockEntity, Bat, BeaconBlockEntity, BedBlockEntity, Bee, BeehiveBlockEntity, BellBlockEntity, BlastFurnaceBlockEntity, Blaze, BlockAttachedEntity, BlockEntity, Boat, Bogged, Breeze, BreezeWindCharge, BrewingStandBlockEntity, BrushableBlockEntity, CalibratedSculkSensorBlockEntity, Camel, CampfireBlockEntity, Cat, CaveSpider, ChestBlockEntity, ChestBoat, ChestRaft, Chicken, ChiseledBookShelfBlockEntity, ChunkAccess, ClientLevel, Cod, CommandBlockEntity, ComparatorBlockEntity, ConduitBlockEntity, Cow, CrafterBlockEntity, Creaking, CreakingHeartBlockEntity, Creeper, 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, Evoker, EvokerFangs, ExperienceOrb, EyeOfEnder, FakePlayer, FallingBlockEntity, Fireball, FireworkRocketEntity, FishingHook, Fox, Frog, FurnaceBlockEntity, Ghast, Giant, GlowItemFrame, GlowSquid, Goat, Guardian, HangingEntity, HangingSignBlockEntity, HappyGhast, Hoglin, HopperBlockEntity, Horse, Husk, Illusioner, ImposterProtoChunk, Interaction, IronGolem, ItemEntity, ItemFrame, JigsawBlockEntity, JukeboxBlockEntity, LargeFireball, LeashFenceKnotEntity, LecternBlockEntity, Level, LevelChunk, LightningBolt, LivingEntity, Llama, LlamaSpit, LocalPlayer, MagmaCube, Marker, Minecart, MinecartChest, MinecartCommandBlock, MinecartFurnace, MinecartHopper, MinecartSpawner, MinecartTNT, Mob, Monster, Mule, MushroomCow, Ocelot, OminousItemSpawner, Painting, Panda, Parrot, PartEntity, PathfinderMob, PatrollingMonster, Phantom, Pig, Piglin, PiglinBrute, Pillager, PistonMovingBlockEntity, Player, PolarBear, PrimedTnt, Projectile, ProtoChunk, Pufferfish, Rabbit, Raft, 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, TestBlockEntity, TestInstanceBlockEntity, TheEndGatewayBlockEntity, TheEndPortalBlockEntity, ThrowableItemProjectile, ThrowableProjectile, ThrownEgg, ThrownEnderpearl, ThrownExperienceBottle, ThrownLingeringPotion, ThrownSplashPotion, 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

      default <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
    • getExistingDataOrNull

      @Nullable <T> T getExistingDataOrNull(AttachmentType<T> type)
      Returns:
      an existing data attachment value of the given type, or null if there is no data attachment of the given type
    • getExistingDataOrNull

      @Nullable default <T> T getExistingDataOrNull(Supplier<AttachmentType<T>> type)
      Returns:
      an existing data attachment value of the given type, or null if there is no data attachment 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
    • syncData

      default void syncData(AttachmentType<?> type)
      Syncs a data attachment of the given type with all relevant clients.

      If there is currently no attachment of the given type, the removal of the attachment is synced to the client.

      See Also:
    • syncData

      default void syncData(Supplier<? extends AttachmentType<?>> type)
      Syncs a data attachment of the given type with all relevant clients.

      If there is currently no attachment of the given type, the removal of the attachment is synced to the client.

      See Also: