package com.shanebeestudios.skbee.elements.other;

import com.github.shanebeee.skr.Registration;
import com.shanebeestudios.skbee.elements.other.conditions.CondBlockCanRandomTick;
import com.shanebeestudios.skbee.elements.other.conditions.CondChunkContainsBlockData;
import com.shanebeestudios.skbee.elements.other.conditions.CondCriticalHit;
import com.shanebeestudios.skbee.elements.other.conditions.CondEntityStorageBlockFull;
import com.shanebeestudios.skbee.elements.other.conditions.CondEntityTrackedByPlayer;
import com.shanebeestudios.skbee.elements.other.conditions.CondEntityWouldCollideWith;
import com.shanebeestudios.skbee.elements.other.conditions.CondIsLocked;
import com.shanebeestudios.skbee.elements.other.conditions.CondIsOwnedByRegion;
import com.shanebeestudios.skbee.elements.other.conditions.CondIsPlayerListed;
import com.shanebeestudios.skbee.elements.other.conditions.CondPlayerIsTransferred;
import com.shanebeestudios.skbee.elements.other.conditions.CondResourcePackStatusIntermediate;
import com.shanebeestudios.skbee.elements.other.conditions.CondServerIsPaused;
import com.shanebeestudios.skbee.elements.other.conditions.CondSpawnerIsActivated;
import com.shanebeestudios.skbee.elements.other.effects.EffAbortSpawn;
import com.shanebeestudios.skbee.elements.other.effects.EffAttributeModifierRemoveByKey;
import com.shanebeestudios.skbee.elements.other.effects.EffBlockLock;
import com.shanebeestudios.skbee.elements.other.effects.EffBlockRandomlyTick;
import com.shanebeestudios.skbee.elements.other.effects.EffBlockstateUpdate;
import com.shanebeestudios.skbee.elements.other.effects.EffBreakBlocksWithEffects;
import com.shanebeestudios.skbee.elements.other.effects.EffChunkLoad;
import com.shanebeestudios.skbee.elements.other.effects.EffChunkRefresh;
import com.shanebeestudios.skbee.elements.other.effects.EffChunkUnload;
import com.shanebeestudios.skbee.elements.other.effects.EffDisconnectConnection;
import com.shanebeestudios.skbee.elements.other.effects.EffDispatchCommand;
import com.shanebeestudios.skbee.elements.other.effects.EffDropItem;
import com.shanebeestudios.skbee.elements.other.effects.EffEntityBlockStorage;
import com.shanebeestudios.skbee.elements.other.effects.EffEntityDamageEntity;
import com.shanebeestudios.skbee.elements.other.effects.EffEntityUseItem;
import com.shanebeestudios.skbee.elements.other.effects.EffEquipmentChange;
import com.shanebeestudios.skbee.elements.other.effects.EffFreezePlayerConnection;
import com.shanebeestudios.skbee.elements.other.effects.EffGiveOrDrop;
import com.shanebeestudios.skbee.elements.other.effects.EffHurtAnimation;
import com.shanebeestudios.skbee.elements.other.effects.EffOpenContainerAnimation;
import com.shanebeestudios.skbee.elements.other.effects.EffOpenRealInventory;
import com.shanebeestudios.skbee.elements.other.effects.EffOpenSign;
import com.shanebeestudios.skbee.elements.other.effects.EffParseEffect;
import com.shanebeestudios.skbee.elements.other.effects.EffPlayerBreakBlock;
import com.shanebeestudios.skbee.elements.other.effects.EffPlayerListed;
import com.shanebeestudios.skbee.elements.other.effects.EffRangedAttack;
import com.shanebeestudios.skbee.elements.other.effects.EffResourcePackApply;
import com.shanebeestudios.skbee.elements.other.effects.EffResourcePackRemove;
import com.shanebeestudios.skbee.elements.other.effects.EffResourcePackSend;
import com.shanebeestudios.skbee.elements.other.effects.EffSendBlockDamage;
import com.shanebeestudios.skbee.elements.other.effects.EffShowDemo;
import com.shanebeestudios.skbee.elements.other.effects.EffShowHideEntity;
import com.shanebeestudios.skbee.elements.other.effects.EffSleepThread;
import com.shanebeestudios.skbee.elements.other.effects.EffSpawnFallingBlockData;
import com.shanebeestudios.skbee.elements.other.effects.EffSpawnerResetTimer;
import com.shanebeestudios.skbee.elements.other.effects.EffTaskStop;
import com.shanebeestudios.skbee.elements.other.effects.EffTransferCookieStore;
import com.shanebeestudios.skbee.elements.other.effects.EffUpdateRecipeResources;
import com.shanebeestudios.skbee.elements.other.effects.EffWeightedListAddEntry;
import com.shanebeestudios.skbee.elements.other.events.AsyncEvents;
import com.shanebeestudios.skbee.elements.other.events.EvtAsyncPeriodical;
import com.shanebeestudios.skbee.elements.other.events.EvtDamageByBlock;
import com.shanebeestudios.skbee.elements.other.events.EvtEntitiesLoad;
import com.shanebeestudios.skbee.elements.other.events.EvtEntityKnockback;
import com.shanebeestudios.skbee.elements.other.events.EvtEntityTrackPlayer;
import com.shanebeestudios.skbee.elements.other.events.EvtPlayerInteract;
import com.shanebeestudios.skbee.elements.other.events.EvtPlayerUseUnknown;
import com.shanebeestudios.skbee.elements.other.events.EvtPlayerValidateLogin;
import com.shanebeestudios.skbee.elements.other.events.EvtPreSpawn;
import com.shanebeestudios.skbee.elements.other.events.EvtSpawnerSpawn;
import com.shanebeestudios.skbee.elements.other.events.TabEvent;
import com.shanebeestudios.skbee.elements.other.events.other.BlockEvents;
import com.shanebeestudios.skbee.elements.other.events.other.EntityEvents;
import com.shanebeestudios.skbee.elements.other.events.other.OtherEventValues;
import com.shanebeestudios.skbee.elements.other.events.other.PacketEvents;
import com.shanebeestudios.skbee.elements.other.events.other.PlayerEvents;
import com.shanebeestudios.skbee.elements.other.events.other.ServerEvents;
import com.shanebeestudios.skbee.elements.other.events.other.WorldEvents;
import com.shanebeestudios.skbee.elements.other.expressions.ExprAbsorptionAmount;
import com.shanebeestudios.skbee.elements.other.expressions.ExprArmorTrim;
import com.shanebeestudios.skbee.elements.other.expressions.ExprArmorTrimItem;
import com.shanebeestudios.skbee.elements.other.expressions.ExprArmorTrimMatPat;
import com.shanebeestudios.skbee.elements.other.expressions.ExprAttributeModifierOfItem;
import com.shanebeestudios.skbee.elements.other.expressions.ExprAttributeModifierProperties;
import com.shanebeestudios.skbee.elements.other.expressions.ExprAvailableMaterials;
import com.shanebeestudios.skbee.elements.other.expressions.ExprAverageTickTime;
import com.shanebeestudios.skbee.elements.other.expressions.ExprBeaconEntitiesInRange;
import com.shanebeestudios.skbee.elements.other.expressions.ExprBlockDataAllStates;
import com.shanebeestudios.skbee.elements.other.expressions.ExprBlockDataItem;
import com.shanebeestudios.skbee.elements.other.expressions.ExprBlockDataItemTag;
import com.shanebeestudios.skbee.elements.other.expressions.ExprBlockDataItemTags;
import com.shanebeestudios.skbee.elements.other.expressions.ExprBlockDataTag;
import com.shanebeestudios.skbee.elements.other.expressions.ExprBlockDataTags;
import com.shanebeestudios.skbee.elements.other.expressions.ExprBlockDataUpdates;
import com.shanebeestudios.skbee.elements.other.expressions.ExprBlockDrops;
import com.shanebeestudios.skbee.elements.other.expressions.ExprBlockInChunk;
import com.shanebeestudios.skbee.elements.other.expressions.ExprBlockRelative;
import com.shanebeestudios.skbee.elements.other.expressions.ExprBlockStateBlock;
import com.shanebeestudios.skbee.elements.other.expressions.ExprBlockStateBlockData;
import com.shanebeestudios.skbee.elements.other.expressions.ExprBlockStateGet;
import com.shanebeestudios.skbee.elements.other.expressions.ExprBlockStateItemType;
import com.shanebeestudios.skbee.elements.other.expressions.ExprBlockStateOffset;
import com.shanebeestudios.skbee.elements.other.expressions.ExprBlockfaceDirection;
import com.shanebeestudios.skbee.elements.other.expressions.ExprChargingAttack;
import com.shanebeestudios.skbee.elements.other.expressions.ExprChatCompletions;
import com.shanebeestudios.skbee.elements.other.expressions.ExprChunkAt;
import com.shanebeestudios.skbee.elements.other.expressions.ExprChunkCoords;
import com.shanebeestudios.skbee.elements.other.expressions.ExprChunkInhabitedTime;
import com.shanebeestudios.skbee.elements.other.expressions.ExprChunkKey;
import com.shanebeestudios.skbee.elements.other.expressions.ExprChunkLoadLevel;
import com.shanebeestudios.skbee.elements.other.expressions.ExprChunksWithinCuboid;
import com.shanebeestudios.skbee.elements.other.expressions.ExprClassInfoOf;
import com.shanebeestudios.skbee.elements.other.expressions.ExprClientBrand;
import com.shanebeestudios.skbee.elements.other.expressions.ExprEnchantment;
import com.shanebeestudios.skbee.elements.other.expressions.ExprEnchantmentLevel;
import com.shanebeestudios.skbee.elements.other.expressions.ExprEntityBlockStorageCount;
import com.shanebeestudios.skbee.elements.other.expressions.ExprEntityBlockStorageMax;
import com.shanebeestudios.skbee.elements.other.expressions.ExprEntityCollision;
import com.shanebeestudios.skbee.elements.other.expressions.ExprEntityOrigin;
import com.shanebeestudios.skbee.elements.other.expressions.ExprEntityPose;
import com.shanebeestudios.skbee.elements.other.expressions.ExprEntityVisibility;
import com.shanebeestudios.skbee.elements.other.expressions.ExprEntityWaypointColor;
import com.shanebeestudios.skbee.elements.other.expressions.ExprEntityWaypointStyle;
import com.shanebeestudios.skbee.elements.other.expressions.ExprExactBlockLocation;
import com.shanebeestudios.skbee.elements.other.expressions.ExprGameTick;
import com.shanebeestudios.skbee.elements.other.expressions.ExprGiveOrReturn;
import com.shanebeestudios.skbee.elements.other.expressions.ExprHealthScale;
import com.shanebeestudios.skbee.elements.other.expressions.ExprItemFromNamespacedKey;
import com.shanebeestudios.skbee.elements.other.expressions.ExprKnockbackAttackerVictim;
import com.shanebeestudios.skbee.elements.other.expressions.ExprKnockbackVelocity;
import com.shanebeestudios.skbee.elements.other.expressions.ExprMapping;
import com.shanebeestudios.skbee.elements.other.expressions.ExprMemoryValue;
import com.shanebeestudios.skbee.elements.other.expressions.ExprMinecraftEntityType;
import com.shanebeestudios.skbee.elements.other.expressions.ExprMobAwareness;
import com.shanebeestudios.skbee.elements.other.expressions.ExprNamespacedKeyObject;
import com.shanebeestudios.skbee.elements.other.expressions.ExprNamespacedKeyObjectFrom;
import com.shanebeestudios.skbee.elements.other.expressions.ExprNearestEntity;
import com.shanebeestudios.skbee.elements.other.expressions.ExprNoClip;
import com.shanebeestudios.skbee.elements.other.expressions.ExprParseCondition;
import com.shanebeestudios.skbee.elements.other.expressions.ExprParseEffect;
import com.shanebeestudios.skbee.elements.other.expressions.ExprPath;
import com.shanebeestudios.skbee.elements.other.expressions.ExprPathTarget;
import com.shanebeestudios.skbee.elements.other.expressions.ExprPlayerIdleTime;
import com.shanebeestudios.skbee.elements.other.expressions.ExprPlayerListOrder;
import com.shanebeestudios.skbee.elements.other.expressions.ExprPlayerShoulderEntity;
import com.shanebeestudios.skbee.elements.other.expressions.ExprPlayerTime;
import com.shanebeestudios.skbee.elements.other.expressions.ExprPotionTypeItem;
import com.shanebeestudios.skbee.elements.other.expressions.ExprRegenRate;
import com.shanebeestudios.skbee.elements.other.expressions.ExprServerPauseTime;
import com.shanebeestudios.skbee.elements.other.expressions.ExprServerPlatform;
import com.shanebeestudios.skbee.elements.other.expressions.ExprShootBowConsumable;
import com.shanebeestudios.skbee.elements.other.expressions.ExprShootBowForce;
import com.shanebeestudios.skbee.elements.other.expressions.ExprShootBowProjectile;
import com.shanebeestudios.skbee.elements.other.expressions.ExprShootBowShotBow;
import com.shanebeestudios.skbee.elements.other.expressions.ExprShootBowShouldConsume;
import com.shanebeestudios.skbee.elements.other.expressions.ExprSortedEntities;
import com.shanebeestudios.skbee.elements.other.expressions.ExprSpawnEggFromEntity;
import com.shanebeestudios.skbee.elements.other.expressions.ExprSpawnerMaxNearbyEntities;
import com.shanebeestudios.skbee.elements.other.expressions.ExprSpawnerRequiredPlayerRange;
import com.shanebeestudios.skbee.elements.other.expressions.ExprSpawnerSpawnCount;
import com.shanebeestudios.skbee.elements.other.expressions.ExprSpawnerSpawnDelay;
import com.shanebeestudios.skbee.elements.other.expressions.ExprSpawnerSpawnRange;
import com.shanebeestudios.skbee.elements.other.expressions.ExprSpellcasterSpell;
import com.shanebeestudios.skbee.elements.other.expressions.ExprSuspiciousBlock;
import com.shanebeestudios.skbee.elements.other.expressions.ExprTabCompletion;
import com.shanebeestudios.skbee.elements.other.expressions.ExprTabCompletionArgs;
import com.shanebeestudios.skbee.elements.other.expressions.ExprTaskID;
import com.shanebeestudios.skbee.elements.other.expressions.ExprTickingState;
import com.shanebeestudios.skbee.elements.other.expressions.ExprTransferCookie;
import com.shanebeestudios.skbee.elements.other.expressions.ExprTranslationKey;
import com.shanebeestudios.skbee.elements.other.expressions.ExprWeightedListCreate;
import com.shanebeestudios.skbee.elements.other.expressions.ExprWeightedListRandomElement;
import com.shanebeestudios.skbee.elements.other.expressions.ExprWorldAutoSave;
import com.shanebeestudios.skbee.elements.other.expressions.ExprWorldHeight;
import com.shanebeestudios.skbee.elements.other.expressions.ExprWorldSpawnLimit;
import com.shanebeestudios.skbee.elements.other.expressions.ExprWorldTime;
import com.shanebeestudios.skbee.elements.other.sections.SecAttributeModifier;
import com.shanebeestudios.skbee.elements.other.sections.SecLocateBiome;
import com.shanebeestudios.skbee.elements.other.sections.SecResourcePack;
import com.shanebeestudios.skbee.elements.other.sections.SecRunTaskLater;
import com.shanebeestudios.skbee.elements.other.sections.SecSpawnMinecraftEntity;
import com.shanebeestudios.skbee.elements.other.sections.SecTransferCookieRetrieve;
import com.shanebeestudios.skbee.elements.other.sections.SecWhileRunnable;
import com.shanebeestudios.skbee.elements.other.structures.StructTagAliases;
import com.shanebeestudios.skbee.elements.other.type.BlockTypes;
import com.shanebeestudios.skbee.elements.other.type.Comps;
import com.shanebeestudios.skbee.elements.other.type.CustomTypes;
import com.shanebeestudios.skbee.elements.other.type.EntityTypes;
import com.shanebeestudios.skbee.elements.other.type.EventTypes;
import com.shanebeestudios.skbee.elements.other.type.Functions;
import com.shanebeestudios.skbee.elements.other.type.ItemTypes;
import com.shanebeestudios.skbee.elements.other.type.PlayerTypes;
import com.shanebeestudios.skbee.elements.other.type.ServerTypes;
import com.shanebeestudios.skbee.elements.other.type.WorldTypes;

public class OtherElementRegistration {

    public static void register(Registration registration) {
        // CONDITIONS
        CondBlockCanRandomTick.register(registration);
        CondChunkContainsBlockData.register(registration);
        CondCriticalHit.register(registration);
        CondEntityStorageBlockFull.register(registration);
        CondEntityTrackedByPlayer.register(registration);
        CondEntityWouldCollideWith.register(registration);
        CondIsLocked.register(registration);
        CondIsOwnedByRegion.register(registration);
        CondIsPlayerListed.register(registration);
        CondPlayerIsTransferred.register(registration);
        CondResourcePackStatusIntermediate.register(registration);
        CondServerIsPaused.register(registration);
        CondSpawnerIsActivated.register(registration);

        // EFFECTS
        EffAbortSpawn.register(registration);
        EffDropItem.register(registration);
        EffAttributeModifierRemoveByKey.register(registration);
        EffBlockLock.register(registration);
        EffBlockRandomlyTick.register(registration);
        EffBlockstateUpdate.register(registration);
        EffBreakBlocksWithEffects.register(registration);
        EffChunkLoad.register(registration);
        EffChunkRefresh.register(registration);
        EffChunkUnload.register(registration);
        EffDisconnectConnection.register(registration);
        EffDispatchCommand.register(registration);
        EffEntityBlockStorage.register(registration);
        EffEntityDamageEntity.register(registration);
        EffEntityUseItem.register(registration);
        EffEquipmentChange.register(registration);
        EffFreezePlayerConnection.register(registration);
        EffGiveOrDrop.register(registration);
        EffHurtAnimation.register(registration);
        EffOpenContainerAnimation.register(registration);
        EffOpenRealInventory.register(registration);
        EffOpenSign.register(registration);
        EffParseEffect.register(registration);
        EffPlayerBreakBlock.register(registration);
        EffPlayerListed.register(registration);
        EffRangedAttack.register(registration);
        EffResourcePackApply.register(registration);
        EffResourcePackRemove.register(registration);
        EffResourcePackSend.register(registration);
        EffSendBlockDamage.register(registration);
        EffShowDemo.register(registration);
        EffShowHideEntity.register(registration);
        EffSleepThread.register(registration);
        EffSpawnerResetTimer.register(registration);
        EffSpawnFallingBlockData.register(registration);
        EffTaskStop.register(registration);
        EffTransferCookieStore.register(registration);
        EffUpdateRecipeResources.register(registration);
        EffWeightedListAddEntry.register(registration);

        // EVENTS
        BlockEvents.register(registration);
        EntityEvents.register(registration);
        PacketEvents.register(registration);
        PlayerEvents.register(registration);
        ServerEvents.register(registration);
        WorldEvents.register(registration);
        OtherEventValues.register(registration);

        AsyncEvents.register(registration);
        EvtAsyncPeriodical.register(registration);
        EvtDamageByBlock.register(registration);
        EvtEntitiesLoad.register(registration);
        EvtEntityKnockback.register(registration);
        EvtEntityTrackPlayer.register(registration);
        EvtPlayerInteract.register(registration);
        EvtPlayerUseUnknown.register(registration);
        EvtPlayerValidateLogin.register(registration);
        EvtPreSpawn.register(registration);
        EvtSpawnerSpawn.register(registration);
        TabEvent.register(registration);

        // EXPRESSIONS
        ExprAbsorptionAmount.register(registration);
        ExprArmorTrim.register(registration);
        ExprArmorTrimItem.register(registration);
        ExprArmorTrimMatPat.register(registration);
        ExprAttributeModifierOfItem.register(registration);
        ExprAttributeModifierProperties.register(registration);
        ExprAvailableMaterials.register(registration);
        ExprAverageTickTime.register(registration);
        ExprBeaconEntitiesInRange.register(registration);
        ExprBlockDataAllStates.register(registration);
        ExprBlockDataItem.register(registration);
        ExprBlockDataItemTag.register(registration);
        ExprBlockDataItemTags.register(registration);
        ExprBlockDataTag.register(registration);
        ExprBlockDataTags.register(registration);
        ExprBlockDataUpdates.register(registration);
        ExprBlockDrops.register(registration);
        ExprBlockfaceDirection.register(registration);
        ExprBlockInChunk.register(registration);
        ExprBlockRelative.register(registration);
        ExprBlockStateBlock.register(registration);
        ExprBlockStateBlockData.register(registration);
        ExprBlockStateGet.register(registration);
        ExprBlockStateItemType.register(registration);
        ExprBlockStateOffset.register(registration);
        ExprChargingAttack.register(registration);
        ExprChatCompletions.register(registration);
        ExprChunkAt.register(registration);
        ExprChunkCoords.register(registration);
        ExprChunkInhabitedTime.register(registration);
        ExprChunkKey.register(registration);
        ExprChunkLoadLevel.register(registration);
        ExprChunksWithinCuboid.register(registration);
        ExprClassInfoOf.register(registration);
        ExprClientBrand.register(registration);
        ExprEnchantment.register(registration);
        ExprEnchantmentLevel.register(registration);
        ExprEntityBlockStorageCount.register(registration);
        ExprEntityBlockStorageMax.register(registration);
        ExprEntityCollision.register(registration);
        ExprEntityOrigin.register(registration);
        ExprEntityPose.register(registration);
        ExprEntityVisibility.register(registration);
        ExprEntityWaypointColor.register(registration);
        ExprEntityWaypointStyle.register(registration);
        ExprExactBlockLocation.register(registration);
        ExprGameTick.register(registration);
        ExprGiveOrReturn.register(registration);
        ExprHealthScale.register(registration);
        ExprItemFromNamespacedKey.register(registration);
        ExprKnockbackAttackerVictim.register(registration);
        ExprKnockbackVelocity.register(registration);
        ExprMapping.register(registration);
        ExprMemoryValue.register(registration);
        ExprMinecraftEntityType.register(registration);
        ExprMobAwareness.register(registration);
        ExprNamespacedKeyObject.register(registration);
        ExprNamespacedKeyObjectFrom.register(registration);
        ExprNearestEntity.register(registration);
        ExprNoClip.register(registration);
        ExprParseCondition.register(registration);
        ExprParseEffect.register(registration);
        ExprPath.register(registration);
        ExprPathTarget.register(registration);
        ExprPlayerIdleTime.register(registration);
        ExprPlayerListOrder.register(registration);
        ExprPlayerShoulderEntity.register(registration);
        ExprPlayerTime.register(registration);
        ExprPotionTypeItem.register(registration);
        ExprRegenRate.register(registration);
        ExprServerPauseTime.register(registration);
        ExprServerPlatform.register(registration);
        ExprShootBowConsumable.register(registration);
        ExprShootBowForce.register(registration);
        ExprShootBowProjectile.register(registration);
        ExprShootBowShotBow.register(registration);
        ExprShootBowShouldConsume.register(registration);
        ExprSortedEntities.register(registration);
        ExprSpawnEggFromEntity.register(registration);
        ExprSpawnerMaxNearbyEntities.register(registration);
        ExprSpawnerRequiredPlayerRange.register(registration);
        ExprSpawnerSpawnCount.register(registration);
        ExprSpawnerSpawnDelay.register(registration);
        ExprSpawnerSpawnRange.register(registration);
        ExprSpellcasterSpell.register(registration);
        ExprSuspiciousBlock.register(registration);
        ExprTabCompletion.register(registration);
        ExprTabCompletionArgs.register(registration);
        ExprTaskID.register(registration);
        ExprTickingState.register(registration);
        ExprTransferCookie.register(registration);
        ExprTranslationKey.register(registration);
        ExprWeightedListCreate.register(registration);
        ExprWeightedListRandomElement.register(registration);
        ExprWorldAutoSave.register(registration);
        ExprWorldHeight.register(registration);
        ExprWorldSpawnLimit.register(registration);
        ExprWorldTime.register(registration);

        // SECTIONS
        SecAttributeModifier.register(registration);
        SecLocateBiome.register(registration);
        SecResourcePack.register(registration);
        SecRunTaskLater.register(registration);
        SecSpawnMinecraftEntity.register(registration);
        SecTransferCookieRetrieve.register(registration);
        SecWhileRunnable.register(registration);

        // STRUCTURES
        StructTagAliases.register(registration);

        // COMPARATORS/FUNCTIONS/TYPES
        Comps.register(registration);
        Functions.register(registration);
        BlockTypes.register(registration);
        CustomTypes.register(registration);
        EntityTypes.register(registration);
        EventTypes.register(registration);
        ItemTypes.register(registration);
        PlayerTypes.register(registration);
        ServerTypes.register(registration);
        WorldTypes.register(registration);
    }

}
