Зацикливание

Версия Minecraft
1.7.10
29
1
Ребят,есть код на рандомное получение зелья отравления.
Но происходит зацикливание.
Как подправить код?
 
Краш-лог
@SubscribeEvent
public void damege(LivingHurtEvent event) {
if(event.entity instanceof EntityPlayer) {
EntityPlayer player = (EntityPlayer)event.entity;
if(!player.capabilities.isCreativeMode) {
if(event.entity.worldObj.rand.nextFloat() <= 0.3F) {
player.addPotionEffect(new PotionEffect(Potion.poison.id, 600, 1, true));
}
}
}
}
Краш-лог:
@SubscribeEvent
   public void damege(LivingHurtEvent event) {
       if(event.entity instanceof EntityPlayer) {
           EntityPlayer player = (EntityPlayer)event.entity;
           if(!player.capabilities.isCreativeMode) {
               if(event.entity.worldObj.rand.nextFloat() <= 0.3F) {
                   player.addPotionEffect(new PotionEffect(Potion.poison.id, 600, 1, true));
               }
           }
       }
   }
Решение
Ну типа это нормально. Ты-же для этого не сделал условия. Просто проверяй, что от кого ты получил урон является игроком типа.
Java:
Entity from = event.source.getSourceOfDamage();//Кто ударил.

if (from instanceof EntityPlayer) {

}

timaxa007

Модератор
5,831
409
672

timaxa007

Модератор
5,831
409
672
Ну типа это нормально. Ты-же для этого не сделал условия. Просто проверяй, что от кого ты получил урон является игроком типа.
Java:
Entity from = event.source.getSourceOfDamage();//Кто ударил.

if (from instanceof EntityPlayer) {

}
 
3,005
192
592
так я ещё сделал проверку на зомби
Эта проверка в эвенте?
Ты можешь оптимизировать код, если ты запихнешь код с эвента в дамаг, который юзается твоим мобом.
Эвентом ты ловишь весь дамаг, что идет на сервере, а если это будет с большим онлайном и кучей мобов - оптимизации мало.
 
Сверху