package net.minecraft.world.entity.boss.enderdragon;

import net.minecraft.core.BlockPosition;
import net.minecraft.network.syncher.DataWatcherObject;
import net.minecraft.world.entity.Entity;

import com.bergerkiller.bukkit.common.bases.IntVector3;
import com.bergerkiller.bukkit.common.wrappers.DataWatcher;
import com.bergerkiller.bukkit.common.wrappers.DataWatcher.Key;

class EntityEnderCrystal extends Entity {
    #if version >= 1.17
      private static optional final (DataWatcher.Key<IntVector3>) DataWatcherObject<java.util.Optional<BlockPosition>> DATA_BEAM_TARGET;
    #elseif version >= 1.14
      private static optional final (DataWatcher.Key<IntVector3>) DataWatcherObject<java.util.Optional<BlockPosition>> DATA_BEAM_TARGET:c;
    #elseif version >= 1.13
      private static optional final (DataWatcher.Key<IntVector3>) DataWatcherObject<java.util.Optional<BlockPosition>> DATA_BEAM_TARGET:b;
    #elseif version >= 1.9
      private static optional final (DataWatcher.Key<IntVector3>) DataWatcherObject<com.google.common.base.Optional<BlockPosition>> DATA_BEAM_TARGET:b;
    #else
      private static optional final (DataWatcher.Key<IntVector3>) DataWatcherObject<java.util.Optional<BlockPosition>> DATA_BEAM_TARGET:###;
    #endif

    <code>
    public static final Key<IntVector3> DATA_BEAM_TARGET = Key.Type.BLOCK_POSITION.createKey(T.DATA_BEAM_TARGET, -1);
    </code>
}