Package net.minecraft.entity.mob
Class GhastEntity
java.lang.Object
net.minecraft.entity.Entity
net.minecraft.entity.LivingEntity
net.minecraft.entity.mob.MobEntity
net.minecraft.entity.mob.FlyingEntity
net.minecraft.entity.mob.GhastEntity
- All Implemented Interfaces:
Monster,CommandOutput,Nameable,EntityLike
public class GhastEntity extends FlyingEntity implements Monster
- Mappings:
Namespace Name official bftintermediary net/minecraft/class_1571named net/minecraft/entity/mob/GhastEntity
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static classGhastEntity.FlyRandomlyGoal(package private) static classGhastEntity.GhastMoveControl(package private) static classGhastEntity.LookAtTargetGoal(package private) static classGhastEntity.ShootFireballGoalNested classes/interfaces inherited from class net.minecraft.entity.Entity
Entity.MoveEffect, Entity.PositionUpdater, Entity.RemovalReason -
Field Summary
Fields Modifier and Type Field Description private intfireballStrengthprivate static TrackedData<Boolean>SHOOTINGFields inherited from class net.minecraft.entity.mob.MobEntity
ambientSoundChance, armorDropChances, experiencePoints, goalSelector, handDropChances, jumpControl, lookControl, moveControl, navigation, targetSelectorFields inherited from class net.minecraft.entity.LivingEntity
activeItemStack, attackingPlayer, bodyTrackingIncrements, bodyYaw, brain, dead, deathTime, defaultMaxHealth, despawnCounter, field_6215, flyingSpeed, forwardSpeed, handSwinging, handSwingProgress, handSwingTicks, headTrackingIncrements, headYaw, hurtTime, itemUseTimeLeft, jumping, knockbackVelocity, lastAttackedTicks, lastDamageTaken, lastHandSwingProgress, lastLimbDistance, limbAngle, limbDistance, LIVING_FLAGS, lookDirection, maxHurtTime, playerHitTimer, preferredHand, prevBodyYaw, prevHeadYaw, prevLookDirection, prevStepBobbingAmount, randomLargeSeed, randomSmallSeed, riptideTicks, roll, scoreAmount, serverHeadYaw, serverPitch, serverX, serverY, serverYaw, serverZ, sidewaysSpeed, SLEEPING_DIMENSIONS, stepBobbingAmount, stuckArrowTimer, stuckStingerTimer, upwardSpeedFields inherited from class net.minecraft.entity.Entity
age, dataTracker, distanceTraveled, fallDistance, field_28627, field_28629, firstUpdate, FLAGS, fluidHeight, glowing, horizontalCollision, horizontalSpeed, ignoreCameraFrustum, inanimate, inNetherPortal, inPowderSnow, lastNetherPortalPosition, lastRenderX, lastRenderY, lastRenderZ, LOGGER, movementMultiplier, netherPortalTime, noClip, onGround, pitch, POSE, prevHorizontalSpeed, prevPitch, prevX, prevY, prevYaw, prevZ, pushSpeedReduction, random, ridingCooldown, stepHeight, submergedFluidTag, submergedInWater, timeUntilRegen, touchingWater, uuid, uuidString, velocityDirty, velocityModified, verticalCollision, wasInPowderSnow, world, yawFields inherited from interface net.minecraft.server.command.CommandOutput
DUMMY -
Constructor Summary
Constructors Constructor Description GhastEntity(EntityType<? extends GhastEntity> type, World world) -
Method Summary
Modifier and Type Method Description static booleancanSpawn(EntityType<GhastEntity> type, WorldAccess world, SpawnReason spawnReason, BlockPos pos, Random random)static DefaultAttributeContainer.BuildercreateGhastAttributes()booleandamage(DamageSource source, float amount)protected floatgetActiveEyeHeight(EntityPose pose, EntityDimensions dimensions)protected SoundEventgetAmbientSound()protected SoundEventgetDeathSound()intgetFireballStrength()protected SoundEventgetHurtSound(DamageSource source)intgetLimitPerChunk()SoundCategorygetSoundCategory()protected floatgetSoundVolume()protected voidinitDataTracker()protected voidinitGoals()protected booleanisDisallowedInPeaceful()booleanisShooting()voidreadCustomDataFromNbt(CompoundTag tag)voidsetShooting(boolean shooting)voidwriteCustomDataToNbt(CompoundTag tag)Methods inherited from class net.minecraft.entity.mob.FlyingEntity
fall, handleFallDamage, isClimbing, travelMethods inherited from class net.minecraft.entity.mob.MobEntity
attachLeash, baseTick, canBeControlledByRider, canBeLeashedBy, canEquip, canGather, canImmediatelyDespawn, canMobSpawn, canMoveVoluntarily, cannotDespawn, canPickupItem, canPickUpLoot, canSpawn, canSpawn, canTarget, canTarget, canUseRangedWeapon, checkDespawn, convertTo, createBodyControl, createMobAttributes, createNavigation, detachLeash, dropEquipment, dropLoot, enchantEquipment, enchantMainHandItem, equipLootStack, equipStack, getArmorItems, getBodyYawSpeed, getCurrentExperience, getDropChance, getEquipmentForSlot, getEquippedStack, getHoldingEntity, getItemsHand, getJumpControl, getLookControl, getLookPitchSpeed, getLookYawSpeed, getLootContextBuilder, getLootTable, getLootTableId, getMainArm, getMinAmbientSoundDelay, getMoveControl, getNavigation, getPathfindingPenalty, getPickBlockStack, getPositionTarget, getPositionTargetRange, getSafeFallDistance, getTarget, getVisibilityCache, handleStatus, hasPositionTarget, initEquipment, initialize, interact, interactMob, isAffectedByDaylight, isAiDisabled, isAttacking, isInWalkTargetRange, isInWalkTargetRange, isLeashed, isLeftHanded, isLogicalSideForUpdatingMovement, isPersistent, lookAtEntity, loot, method_29244, method_33191, mobTick, movesIndependently, onEatingGrass, onPlayerSpawnedChild, playAmbientSound, playHurtSound, playSpawnEffects, prefersNewDamageableItem, prefersNewEquipment, removeFromDimension, sendAiDebugData, setAiDisabled, setAttacking, setBaby, setCanPickUpLoot, setEquipmentDropChance, setForwardSpeed, setHoldingEntityId, setLeftHanded, setMovementSpeed, setPathfindingPenalty, setPersistent, setPositionTarget, setSidewaysSpeed, setTarget, setUpwardSpeed, spawnsTooManyForEachTry, startRiding, swimUpward, tick, tickMovement, tickNewAi, tryAttack, tryEquip, turnHead, updateDropChances, updateEnchantments, updateGoalControls, updateLeashMethods inherited from class net.minecraft.entity.LivingEntity
addPowderSnowSlowIfNeeded, addSoulSpeedBoostIfNeeded, addStatusEffect, animateDamage, applyArmorToDamage, applyDamage, applyEnchantmentsToDamage, applyMovementEffects, applyStatusEffect, attackLivingEntity, canBeRiddenInWater, canBreatheInWater, canDropLootAndXp, canFreeze, canHaveStatusEffect, canSee, canTakeDamage, canWalkOnFluid, clearActiveItem, clearPotionSwirls, clearSleepingPosition, clearStatusEffects, collides, computeFallDamage, consumeItem, containsOnlyAmbientEffects, createBrainProfile, createLivingAttributes, createSpawnPacket, damageArmor, damageShield, deserializeBrain, displaySoulSpeedEffects, drop, dropInventory, dropXp, eatFood, endCombat, enterCombat, getAbsorptionAmount, getActiveHand, getActiveItem, getActiveStatusEffects, getArmor, getArmorVisibility, getArrowType, getAttackDistanceScalingFactor, getAttacker, getAttacking, getAttributeBaseValue, getAttributeInstance, getAttributes, getAttributeValue, getBaseMovementSpeedMultiplier, getBlockState, getBoundingBox, getBrain, getClimbingPos, getCommandItemSlot, getDamageTracker, getDespawnCounter, getDimensions, getDrinkSound, getEatSound, getEyeHeight, getFallSound, getGroup, getHandSwingProgress, getHeadYaw, getHealth, getItemUseTime, getItemUseTimeLeft, getJumpVelocity, getLastAttackedTime, getLastAttackTime, getLeaningPitch, getMainHandStack, getMaxHealth, getMovementSpeed, getNextAirOnLand, getNextAirUnderwater, getOffHandStack, getPoses, getPreferredEquipmentSlot, getPrimeAdversary, getRandom, getRecentDamageSource, getRoll, getScaleFactor, getSleepingDirection, getSleepingPosition, getSoundPitch, getStackInHand, getStatusEffect, getStatusEffects, getStingerCount, getStuckArrowCount, getVelocityMultiplier, getVisibilityBoundingBox, getYaw, hasStackEquipped, hasStatusEffect, heal, hurtByWater, isAffectedBySplashPotions, isAlive, isBaby, isBlocking, isDead, isFallFlying, isHolding, isHolding, isHoldingOntoLadder, isImmobile, isInsideWall, isInSwimmingPose, isMobOrPlayer, isOnSoulSpeedBlock, isPushable, isSleeping, isTarget, isUndead, isUsingItem, isUsingRiptide, jump, kill, knockback, knockDownwards, lookAt, markEffectsDirty, method_26317, method_26318, method_29500, method_31079, method_33579, onAttacking, onDeath, onEquipStack, onKilledBy, onStatusEffectApplied, onStatusEffectRemoved, onStatusEffectUpgraded, onTrackedDataSet, playBlockFallSound, positionInPortal, pushAway, pushAwayFrom, removePowderSnowSlow, removeSoulSpeedBoost, removeStatusEffect, removeStatusEffectInternal, scheduleVelocityUpdate, sendEquipmentBreakStatus, sendPickup, sendToolBreakStatus, setAbsorptionAmount, setAttacker, setAttacking, setCurrentHand, setDespawnCounter, setHeadYaw, setHealth, setJumping, setLivingFlag, setNearbySongPlaying, setOnGround, setRiptideTicks, setSleepingPosition, setSprinting, setStackInHand, setStingerCount, setStuckArrowCount, setYaw, shouldAlwaysDropXp, shouldDisplaySoulSpeedEffects, shouldDropLoot, shouldRenderName, shouldSwimInFluids, sleep, spawnConsumptionEffects, stopRiding, stopUsingItem, swingHand, swingHand, takeKnockback, takeShieldHit, teleport, tickCramming, tickHandSwing, tickInVoid, tickRiding, tickRiptide, tickStatusEffects, triggerItemPickedUpByEntityCriteria, updateLimbs, updatePostDeath, updatePotionVisibility, updateTrackedHeadRotation, updateTrackedPositionAndAngles, wakeUpMethods inherited from class net.minecraft.entity.Entity
addAirTravelEffects, addFlapEffects, addPassenger, addScoreboardTag, addVelocity, adjustMovementForCollisions, adjustMovementForCollisions, adjustMovementForPiston, adjustMovementForSneaking, adjustSingleAxisMovementForCollisions, applyMirror, applyRotation, attemptTickInVoid, bypassesLandingEffects, bypassesSteppingEffects, calculateBoundsForPose, calculateDimensions, calculateNextStepSoundDistance, canAddPassenger, canAvoidTraps, canBeSpectated, canExplosionDestroyBlock, canFly, canStartRiding, canUsePortals, changeLookDirection, checkBlockCollision, collidesWith, collidesWithStateAtPos, copyFrom, copyPositionAndRotation, dealDamage, detach, discard, dismountVehicle, distanceTo, doesNotCollide, doesRenderOnFire, dropItem, dropItem, dropStack, dropStack, emitGameEvent, emitGameEvent, emitGameEvent, emitGameEvent, entityDataRequiresOperator, equals, extinguish, getAir, getBlockPos, getBlockX, getBlockY, getBlockZ, getBodyY, getBoundingBox, getBrightnessAtEyes, getBurningDuration, getCameraBlockPos, getCameraPosVec, getChunkPos, getClientCameraPosVec, getCommandSource, getCustomName, getDataTracker, getDefaultName, getDefaultNetherPortalCooldown, getDisplayName, getEffectiveExplosionResistance, getEntityName, getEntityWorld, getEyeHeight, getEyePos, getEyeY, getFireTicks, getFirstPassenger, getFlag, getFluidHeight, getFreezingScale, getFrozenTicks, getGameEventHandler, getHeight, getHeightOffset, getHighSpeedSplashSound, getHorizontalFacing, getHoverEvent, getId, getItemsEquipped, getJumpVelocityMultiplier, getLandingBlockState, getLandingPos, getLerpedPos, getMaxAir, getMaxNetherPortalTime, getMinFreezeDamageTicks, getMountedHeightOffset, getMoveEffect, getMovementDirection, getName, getOppositeRotationVector, getOppositeRotationVector, getParticleX, getParticleZ, getPassengerDismountOffset, getPassengerList, getPassengersDeep, getPermissionLevel, getPistonBehavior, getPitch, getPortalRect, getPos, getPose, getPrimaryPassenger, getRandomBodyY, getRenderDistanceMultiplier, getRootVehicle, getRotationClient, getRotationVec, getRotationVecClient, getRotationVector, getRotationVector, getSavedEntityId, getScoreboardTags, getScoreboardTeam, getServer, getSplashSound, getStandingEyeHeight, getSwimHeight, getSwimSound, getTargetingMargin, getTeamColorValue, getTeleportTarget, getTrackedPosition, getType, getUuid, getUuidAsString, getVehicle, getVelocity, getVelocityAffectingPos, getWidth, getX, getY, getZ, handleAttack, hasCustomName, hashCode, hasNetherPortalCooldown, hasNoGravity, hasPassenger, hasPassengerDeep, hasPassengers, hasPassengerType, hasPermissionLevel, hasPlayerRider, hasVehicle, hasWings, interactAt, isAttackable, isCollidable, isConnectedThroughVehicle, isCustomNameVisible, isDescending, isFireImmune, isFreezing, isGlowing, isImmuneToExplosion, isInLava, isInRange, isInsideWaterOrBubbleColumn, isInSneakingPose, isInvisible, isInvisibleTo, isInvulnerable, isInvulnerableTo, isLiving, isOnFire, isOnGround, isPartOf, isPlayer, isRegionUnloaded, isRemoved, isSilent, isSneaking, isSneaky, isSpectator, isSprinting, isSubmergedIn, isSubmergedInWater, isSwimming, isTeammate, isTeamPlayer, isTouchingWater, isTouchingWaterOrRain, isWet, method_29919, method_30951, method_33332, method_33574, move, moveToWorld, occludeVibrationSignals, offsetX, offsetZ, onBlockCollision, onBubbleColumnCollision, onBubbleColumnSurfaceCollision, onKilledOther, onPassengerLookAround, onPlayerCollision, onSpawnPacket, onStartedTrackingBy, onStoppedTrackingBy, onStruckByLightning, onSwimmingStart, playSound, playStepSound, playSwimSound, populateCrashReport, pushOutOfBlocks, raycast, readNbt, refreshPosition, refreshPositionAfterTeleport, refreshPositionAfterTeleport, refreshPositionAndAngles, refreshPositionAndAngles, remove, removeAllPassengers, removePassenger, removeScoreboardTag, requestTeleport, requestTeleportAndDismount, resetNetherPortalCooldown, resetPosition, saveSelfToTag, saveToTag, sendSystemMessage, setAir, setBoundingBox, setCustomName, setCustomNameVisible, setEntityId, setFireTicks, setFlag, setFrozenTicks, setGlowing, setInNetherPortal, setInPowderSnow, setInvisible, setInvulnerable, setListener, setNoGravity, setOnFire, setOnFireFor, setOnFireFromLava, setPos, setPose, setPosition, setRemoved, setRenderDistanceMultiplier, setRotation, setSilent, setSneaking, setSwimming, setUuid, setVelocity, setVelocity, setVelocityClient, shouldBroadcastConsoleToOps, shouldLeaveSwimmingPose, shouldReceiveFeedback, shouldRender, shouldRender, shouldSave, shouldSetPositionOnLoad, shouldSpawnSprintingParticles, shouldTrackOutput, slowMovement, spawnSprintingParticles, squaredDistanceTo, squaredDistanceTo, squaredDistanceTo, squaredHorizontalLength, startRiding, streamPassengersAndSelf, streamSelfAndPassengers, teleport, tickNetherPortal, tickNetherPortalCooldown, toListTag, toListTag, toString, unsetRemoved, updateKilledAdvancementCriterion, updateMovementInFluid, updatePassengerForDismount, updatePassengerPosition, updatePosition, updatePositionAndAngles, updateSwimming, updateTrackedPosition, updateTrackedPosition, updateVelocity, updateWaterState, wouldPoseNotCollide, writeNbt
-
Field Details
-
SHOOTING
- Mappings:
Namespace Name Mixin selector official bLbft;b:Lvu;intermediary field_7273Lnet/minecraft/class_1571;field_7273:Lnet/minecraft/class_2940;named SHOOTINGLnet/minecraft/entity/mob/GhastEntity;SHOOTING:Lnet/minecraft/entity/data/TrackedData;
-
fireballStrength
private int fireballStrength- Mappings:
Namespace Name Mixin selector official cLbft;c:Iintermediary field_7272Lnet/minecraft/class_1571;field_7272:Inamed fireballStrengthLnet/minecraft/entity/mob/GhastEntity;fireballStrength:I
-
-
Constructor Details
-
GhastEntity
- Mappings:
Namespace Name Mixin selector official <init>Laro;<init>(Lars;Lbuq;)Vintermediary <init>Lnet/minecraft/class_1297;<init>(Lnet/minecraft/class_1299;Lnet/minecraft/class_1937;)Vnamed <init>Lnet/minecraft/entity/Entity;<init>(Lnet/minecraft/entity/EntityType;Lnet/minecraft/world/World;)V
-
-
Method Details
-
initGoals
protected void initGoals() -
isShooting
- Mappings:
Namespace Name Mixin selector official mLbft;m()Zintermediary method_7050Lnet/minecraft/class_1571;method_7050()Znamed isShootingLnet/minecraft/entity/mob/GhastEntity;isShooting()Z
-
setShooting
public void setShooting(boolean shooting)- Mappings:
Namespace Name Mixin selector official uLbft;u(Z)Vintermediary method_7048Lnet/minecraft/class_1571;method_7048(Z)Vnamed setShootingLnet/minecraft/entity/mob/GhastEntity;setShooting(Z)V
-
getFireballStrength
public int getFireballStrength()- Mappings:
Namespace Name Mixin selector official oLbft;o()Iintermediary method_7049Lnet/minecraft/class_1571;method_7049()Inamed getFireballStrengthLnet/minecraft/entity/mob/GhastEntity;getFireballStrength()I
-
isDisallowedInPeaceful
protected boolean isDisallowedInPeaceful()- Overrides:
isDisallowedInPeacefulin classMobEntity- Mappings:
Namespace Name Mixin selector official PLasc;P()Zintermediary method_23734Lnet/minecraft/class_1308;method_23734()Znamed isDisallowedInPeacefulLnet/minecraft/entity/mob/MobEntity;isDisallowedInPeaceful()Z
-
damage
- Overrides:
damagein classLivingEntity- Mappings:
Namespace Name Mixin selector official aLaro;a(Laqy;F)Zintermediary method_5643Lnet/minecraft/class_1297;method_5643(Lnet/minecraft/class_1282;F)Znamed damageLnet/minecraft/entity/Entity;damage(Lnet/minecraft/entity/damage/DamageSource;F)Z
-
initDataTracker
protected void initDataTracker()- Overrides:
initDataTrackerin classMobEntity- Mappings:
Namespace Name Mixin selector official eLaro;e()Vintermediary method_5693Lnet/minecraft/class_1297;method_5693()Vnamed initDataTrackerLnet/minecraft/entity/Entity;initDataTracker()V
-
createGhastAttributes
- Mappings:
Namespace Name Mixin selector official sLbft;s()Lata$a;intermediary method_26913Lnet/minecraft/class_1571;method_26913()Lnet/minecraft/class_5132$class_5133;named createGhastAttributesLnet/minecraft/entity/mob/GhastEntity;createGhastAttributes()Lnet/minecraft/entity/attribute/DefaultAttributeContainer$Builder;
-
getSoundCategory
- Overrides:
getSoundCategoryin classEntity- Mappings:
Namespace Name Mixin selector official cELaro;cE()Laet;intermediary method_5634Lnet/minecraft/class_1297;method_5634()Lnet/minecraft/class_3419;named getSoundCategoryLnet/minecraft/entity/Entity;getSoundCategory()Lnet/minecraft/sound/SoundCategory;
-
getAmbientSound
- Overrides:
getAmbientSoundin classMobEntity- Mappings:
Namespace Name Mixin selector official pLasc;p()Laer;intermediary method_5994Lnet/minecraft/class_1308;method_5994()Lnet/minecraft/class_3414;named getAmbientSoundLnet/minecraft/entity/mob/MobEntity;getAmbientSound()Lnet/minecraft/sound/SoundEvent;
-
getHurtSound
- Overrides:
getHurtSoundin classLivingEntity- Mappings:
Namespace Name Mixin selector official cLasb;c(Laqy;)Laer;intermediary method_6011Lnet/minecraft/class_1309;method_6011(Lnet/minecraft/class_1282;)Lnet/minecraft/class_3414;named getHurtSoundLnet/minecraft/entity/LivingEntity;getHurtSound(Lnet/minecraft/entity/damage/DamageSource;)Lnet/minecraft/sound/SoundEvent;
-
getDeathSound
- Overrides:
getDeathSoundin classLivingEntity- Mappings:
Namespace Name Mixin selector official qLasb;q()Laer;intermediary method_6002Lnet/minecraft/class_1309;method_6002()Lnet/minecraft/class_3414;named getDeathSoundLnet/minecraft/entity/LivingEntity;getDeathSound()Lnet/minecraft/sound/SoundEvent;
-
getSoundVolume
protected float getSoundVolume()- Overrides:
getSoundVolumein classLivingEntity- Mappings:
Namespace Name Mixin selector official efLasb;ef()Fintermediary method_6107Lnet/minecraft/class_1309;method_6107()Fnamed getSoundVolumeLnet/minecraft/entity/LivingEntity;getSoundVolume()F
-
canSpawn
public static boolean canSpawn(EntityType<GhastEntity> type, WorldAccess world, SpawnReason spawnReason, BlockPos pos, Random random)- Mappings:
Namespace Name Mixin selector official bLbft;b(Lars;Lbur;Lase;Lfx;Ljava/util/Random;)Zintermediary method_20675Lnet/minecraft/class_1571;method_20675(Lnet/minecraft/class_1299;Lnet/minecraft/class_1936;Lnet/minecraft/class_3730;Lnet/minecraft/class_2338;Ljava/util/Random;)Znamed canSpawnLnet/minecraft/entity/mob/GhastEntity;canSpawn(Lnet/minecraft/entity/EntityType;Lnet/minecraft/world/WorldAccess;Lnet/minecraft/entity/SpawnReason;Lnet/minecraft/util/math/BlockPos;Ljava/util/Random;)Z
-
getLimitPerChunk
public int getLimitPerChunk()- Overrides:
getLimitPerChunkin classMobEntity- Mappings:
Namespace Name Mixin selector official eSLasc;eS()Iintermediary method_5945Lnet/minecraft/class_1308;method_5945()Inamed getLimitPerChunkLnet/minecraft/entity/mob/MobEntity;getLimitPerChunk()I
-
writeCustomDataToNbt
- Overrides:
writeCustomDataToNbtin classMobEntity- Mappings:
Namespace Name Mixin selector official bLaro;b(Lmr;)Vintermediary method_5652Lnet/minecraft/class_1297;method_5652(Lnet/minecraft/class_2487;)Vnamed writeCustomDataToNbtLnet/minecraft/entity/Entity;writeCustomDataToNbt(Lnet/minecraft/nbt/CompoundTag;)V
-
readCustomDataFromNbt
- Overrides:
readCustomDataFromNbtin classMobEntity- Mappings:
Namespace Name Mixin selector official aLaro;a(Lmr;)Vintermediary method_5749Lnet/minecraft/class_1297;method_5749(Lnet/minecraft/class_2487;)Vnamed readCustomDataFromNbtLnet/minecraft/entity/Entity;readCustomDataFromNbt(Lnet/minecraft/nbt/CompoundTag;)V
-
getActiveEyeHeight
- Overrides:
getActiveEyeHeightin classLivingEntity- Mappings:
Namespace Name Mixin selector official bLasb;b(Lasm;Larp;)Fintermediary method_18394Lnet/minecraft/class_1309;method_18394(Lnet/minecraft/class_4050;Lnet/minecraft/class_4048;)Fnamed getActiveEyeHeightLnet/minecraft/entity/LivingEntity;getActiveEyeHeight(Lnet/minecraft/entity/EntityPose;Lnet/minecraft/entity/EntityDimensions;)F
-