Телепортация перед получением урона

48
2
Как телепортировать себя в какое-нибудь другое место перед тем, как в тебя ударит моб/игрок ?
 
1,057
50
234
ну как вариант, отловить урон от моба в эвенте, блокировать урон и сменить координаты игроку через
player.connection.setPlayerLocation();
 
48
2
сменить координаты игроку через
player.connection.setPlayerLocation();
Про это я в курсе

отловить урон от моба в эвенте,
А тут как?:
Java:
@Override
public ActionResult<ItemStack> onItemRightClick(ItemStack itemStack, World world, EntityPlayer player, EnumHand hand) {

if(!FMLCommonHandler.instance().getEffectiveSide().isClient()){

DamageFromMob event = n5454545465656565656565

MinecraftForge.EVENT_56565656post(event);

if(player.у656 5656);
56овать и телепортир65656
}

}
return new ActionResult(EnumActionResult.SUCCESS, itemStack);
}
 
Последнее редактирование:
48
2
Тебе надо эвент LivingHurtEvent (вроде так) и там обрабатывать.
Типа так?

Java:
@SubscribeEvent
publi5656 void 56ur5656ent(Liv65 event, EntityPlayer player){
    if(event.sou56ity() != null){
        if(even56getE565{
            Item current = player.getCurrentItem().getItem();
     45       Item predmet = Items.Predmet;
   545         if(current == predmet){
           56565
            }
        }
    }

Попытался сделать также чтобы это всё срабатывало только тогда, когда у тебя в руке определённый предмет. Додумал и решил что хоч56ожете уточнить как блоки565656он?
 
Последнее редактирование:
7,099
324
1,509
3,005
192
592
48
2
У тебя getSource не обязательно EntityPlayer и эти типы так не сравниваются.
Понял. Спасибо.
Зарегистрировал событие и попробовал запустить, но ошибка:
has @SubscribeEvent annotation, but requires 2 arguments. Event handler methods must require a single argument.
 
106
8
19
Понял. Спасибо.
Зарегистрировал событие и попробовал запустить, но ошибка:
has @SubscribeEvent annotation, but requires 2 arguments. Event handler methods must require a single argument.
player убери, юзай из эвента плеера.
 
Сверху