package net.minecraft.world.entity;

import com.bergerkiller.generated.net.minecraft.world.entity.EquipmentSlotHandle;
import com.bergerkiller.generated.net.minecraft.world.entity.HumanoidArmHandle;
import com.bergerkiller.generated.net.minecraft.world.entity.MoverTypeHandle;

class EquipmentSlot {
#if version >= 1.21.2
    public int getFilterFlag:getId();
#elseif version >= 1.18
    public int getFilterFlag();
#elseif version >= 1.16.3
    public int getFilterFlag:getSlotFlag();
#else
    public int getFilterFlag:c();
#endif

#if version >= 1.18
    public String getName();
#elseif version >= 1.13.2
    public String getName:getSlotName();
#else
    public String getName:d();
#endif

    <code>
    public static Object fromFilterFlagRaw(int index) {
        for (Object value : T.getType().getEnumConstants()) {
            if (T.getFilterFlag.invoke(value).intValue() == index) {
                return value;
            }
        }
        return null;
    }
    </code>
}

optional class MoverType {
    enum (MoverTypeHandle) MoverType SELF;
    enum (MoverTypeHandle) MoverType PLAYER;
    enum (MoverTypeHandle) MoverType PISTON;
    enum (MoverTypeHandle) MoverType SHULKER_BOX;
    enum (MoverTypeHandle) MoverType SHULKER;
}