Source StrayInfo - Spiderman31807/Mob_Selector_Mod GitHub Wiki

package playasmob;

import net.minecraft.world.level.biome.Biomes;
import net.minecraft.world.level.biome.Biome;
import net.minecraft.world.level.Level;
import net.minecraft.world.item.Items;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.entity.projectile.Arrow;
import net.minecraft.world.entity.projectile.AbstractArrow;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.entity.monster.Stray;
import net.minecraft.world.entity.EntityType;
import net.minecraft.world.effect.MobEffects;
import net.minecraft.world.effect.MobEffectInstance;
import net.minecraft.world.damagesource.DamageSource;
import net.minecraft.sounds.SoundEvents;
import net.minecraft.sounds.SoundEvent;
import net.minecraft.resources.ResourceKey;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.client.renderer.entity.StrayRenderer;
import net.minecraft.client.renderer.entity.EntityRenderer;

import java.util.List;

public class StrayInfo extends AbstractSkeletonInfo {
	public StrayInfo(Player player, CompoundTag compound) {
		super(EntityType.STRAY, Stray.class, player, compound);
	}

	public StrayInfo(Player player) {
		this(player, null);
	}

	public StrayInfo() {
		this(null);
	}

	// Custom Code
	@Override
	public EntityRenderer getRenderer() {
		return new StrayRenderer(Utils.getContext());
	}

	@Override
	public List<ResourceKey<Biome>> getRespawnBiomes(ResourceKey<Level> dimension) {
		return dimension.equals(Level.OVERWORLD) ? List.of(Biomes.SNOWY_BEACH, Biomes.SNOWY_PLAINS, Biomes.SNOWY_SLOPES, Biomes.SNOWY_TAIGA) : super.getRespawnBiomes(dimension);
	}

	// Skeleton.class Code
	@Override
	public SoundEvent getAmbientSound() {
		return SoundEvents.STRAY_AMBIENT;
	}

	@Override
	public SoundEvent getHurtSound(SoundEvent original, DamageSource source) {
		return SoundEvents.STRAY_HURT;
	}

	@Override
	public SoundEvent getDeathSound(SoundEvent original) {
		return SoundEvents.STRAY_DEATH;
	}

	@Override
	public SoundEvent getStepSound() {
		return SoundEvents.STRAY_STEP;
	}

	@Override
	public void modifyArrow(AbstractArrow arrow, ItemStack projectileStack, ItemStack weaponStack) {
		super.modifyArrow(arrow, projectileStack, weaponStack);
		if (weaponStack.is(Items.BOW) && arrow instanceof Arrow arrowPro)
			arrowPro.addEffect(new MobEffectInstance(MobEffects.MOVEMENT_SLOWDOWN, 600));
	}
}
⚠️ **GitHub.com Fallback** ⚠️