35 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Java
		
	
	
	
	
	
| package net.minecraft.world.effect;
 | |
| 
 | |
| import net.minecraft.server.level.ServerLevel;
 | |
| import net.minecraft.server.level.ServerPlayer;
 | |
| import net.minecraft.world.Difficulty;
 | |
| import net.minecraft.world.entity.LivingEntity;
 | |
| import net.minecraft.world.entity.raid.Raid;
 | |
| 
 | |
| class BadOmenMobEffect extends MobEffect {
 | |
| 	protected BadOmenMobEffect(MobEffectCategory mobEffectCategory, int i) {
 | |
| 		super(mobEffectCategory, i);
 | |
| 	}
 | |
| 
 | |
| 	@Override
 | |
| 	public boolean shouldApplyEffectTickThisTick(int duration, int amplifier) {
 | |
| 		return true;
 | |
| 	}
 | |
| 
 | |
| 	@Override
 | |
| 	public boolean applyEffectTick(ServerLevel level, LivingEntity entity, int amplifier) {
 | |
| 		if (entity instanceof ServerPlayer serverPlayer
 | |
| 			&& !serverPlayer.isSpectator()
 | |
| 			&& level.getDifficulty() != Difficulty.PEACEFUL
 | |
| 			&& level.isVillage(serverPlayer.blockPosition())) {
 | |
| 			Raid raid = level.getRaidAt(serverPlayer.blockPosition());
 | |
| 			if (raid == null || raid.getRaidOmenLevel() < raid.getMaxRaidOmenLevel()) {
 | |
| 				serverPlayer.addEffect(new MobEffectInstance(MobEffects.RAID_OMEN, 600, amplifier));
 | |
| 				serverPlayer.setRaidOmenPosition(serverPlayer.blockPosition());
 | |
| 				return false;
 | |
| 			}
 | |
| 		}
 | |
| 
 | |
| 		return true;
 | |
| 	}
 | |
| }
 |