Проходимая листва

Версия Minecraft
1.7.10
Здравствуйте, есть хук на проходимость листвы:
Java:
@Hook(returnCondition = ReturnCondition.ALWAYS, createMethod = true)
    public static AxisAlignedBB getCollisionBoundingBoxFromPool(BlockLeaves that, World world, int x, int y, int z) {
        return null;
    }
Но проблема в том, что игрок мгновенно проваливается сквозь листву, а не потихоньку, как в паутине.
Вопрос: как исправить?

P.S. копался в исходах и не могу понять почему вылазит такая вот проблема
 
Решение
Мне кажется ты не знаешь как пользоваться хуками. Иди читай доки/тутор.

И не только хуками, но и в принципе джавой...

Фиг его почему не работает твой setInWeb. Напиши тогда вот так:
Java:
@Hook(returnCondition = ReturnCondition.ALWAYS, createMethod = true)
public static AxisAlignedBB getCollisionBoundingBoxFromPool(BlockLeaves that, World world, int x, int y, int z) {
    for (Object e : world.getEntitiesWithinAABB(Entity.class, AxisAlignedBB.getBoundingBox(x, y, z, x+1, y+1, z+1))) ((Entity)e).setInWeb();
    return null;
}
Это костыль, но зато сто проц работает.

Фиг его почему не работает твой setInWeb
Потому что там нет static'а. Лел...

Можешь брать код выше, или вот этот:
Java:
@Hook(returnCondition = ReturnCondition.ALWAYS...
Вручную замедлять игрока с помощью эффекта в том же хуке или как?
Попробовал вернуть тру, выдало ошибку, заменил на булеан и вернул тру – листва непроходимая.

Взял метод с класса паутины и попробовал его вставить в хук, но он не работает:
Java:
@Hook(returnCondition = ReturnCondition.ALWAYS, createMethod = true)
    public void onEntityCollidedWithBlock(BlockLeaves that, World world, int x, int y, int z, Entity entity, EntityPlayer player){
        entity.setInWeb();
    }
 
Последнее редактирование:
Добавил я Entity и листва вообще стала обратно непроходимой, вот собственно хук:
Java:
@Hook(returnCondition = ReturnCondition.ALWAYS, createMethod = true)
    public static AxisAlignedBB getCollisionBoundingBoxFromPool(BlockLeaves that, World world, int x, int y, int z, Entity entity) {
        entity.motionY *= 0.3;
        entity.motionZ *= 0.3;
        entity.motionX *= 0.3;
        return null;
    }

Если убираю Entity – все работает как работало.
 
1,976
68
220
Мне кажется ты не знаешь как пользоваться хуками. Иди читай доки/тутор.

И не только хуками, но и в принципе джавой...

Фиг его почему не работает твой setInWeb. Напиши тогда вот так:
Java:
@Hook(returnCondition = ReturnCondition.ALWAYS, createMethod = true)
public static AxisAlignedBB getCollisionBoundingBoxFromPool(BlockLeaves that, World world, int x, int y, int z) {
    for (Object e : world.getEntitiesWithinAABB(Entity.class, AxisAlignedBB.getBoundingBox(x, y, z, x+1, y+1, z+1))) ((Entity)e).setInWeb();
    return null;
}
Это костыль, но зато сто проц работает.

Фиг его почему не работает твой setInWeb
Потому что там нет static'а. Лел...

Можешь брать код выше, или вот этот:
Java:
@Hook(returnCondition = ReturnCondition.ALWAYS, createMethod = true)
public static void onEntityCollidedWithBlock(BlockLeaves that, World world, int x, int y, int z, Entity entity) {
    entity.setInWeb();
}

@Hook(returnCondition = ReturnCondition.ALWAYS, createMethod = true)
public static AxisAlignedBB getCollisionBoundingBoxFromPool(BlockLeaves that, World world, int x, int y, int z) {
    return null;
}
 
Фиг его почему не работает твой setInWeb.

Он работал, но работал так что кидал варны в консоль и иногда крашил майн при передвижении(но оказалось что краш был не от хука) и думал есть иной способ решить.
Но все же спасибо за ответ.
Тема закрыта.
 
Сверху