Про это я в курсесменить координаты игроку через
player.connection.setPlayerLocation();
А тут как?:отловить урон от моба в эвенте,
@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);
}
Типа так?Тебе надо эвент LivingHurtEvent (вроде так) и там обрабатывать.
@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
}
}
}
И правда логично. Как тпхнуть игрока на 2 блока в рандомную сторону (и в ту, где нет блоков чтобы не задохнуться) ?Чтобы блокировать урон нужно отменить событие урона
Как решить?
Понял. Спасибо.У тебя getSource не обязательно EntityPlayer и эти типы так не сравниваются.
player убери, юзай из эвента плеера.Понял. Спасибо.
Зарегистрировал событие и попробовал запустить, но ошибка:
has @SubscribeEvent annotation, but requires 2 arguments. Event handler methods must require a single argument.
А если нельзя выполнить статичный метод в нестатичном? Ведь я это всё делаю в самом событии.юзать Random,чекать world.getBlock(x,y,z)