Часть функционала CreeperFarm | Expensive | 3.1 Base

Норм хотя бы чут чут?

  • плохо

    Голосов: 2 28.6%
  • Норм делай еще

    Голосов: 5 71.4%

  • Всего проголосовало
    7
Начинающий
Статус
Оффлайн
Регистрация
10 Дек 2024
Сообщения
11
Реакции[?]
0
Поинты[?]
0
Выберите загрузчик игры
Vanilla, Forge

Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:

  • бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
  • маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
  • приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
  • обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.

Спасибо!

Мой второй пост!
Я бы не назвал это прям крипер фармом, но думаюдля пастерков пойдет.
я тупо изменил тригербот и добавил автонаводку и автобег к мобам

СС нет чекайте сами

котакбас:
package im.Nexgen.functions.impl.combat;


import com.google.common.eventbus.Subscribe;
import im.Nexgen.cmd.friends.FriendStorage;
import im.Nexgen.functions.api.Category;
import im.Nexgen.functions.api.Function;
import im.Nexgen.utils.math.StopWatch;
import im.Nexgen.utils.player.AttackUtil;
import im.Nexgen.utils.player.InventoryUtil;
import net.minecraft.entity.Entity;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.inventory.container.ClickType;
import net.minecraft.network.play.client.CEntityActionPacket;
import net.minecraft.network.play.client.CHeldItemChangePacket;
import net.minecraft.util.Hand;
import net.minecraft.util.math.EntityRayTraceResult;
import net.minecraft.util.math.RayTraceResult;
import im.Nexgen.events.EventUpdate;
import im.Nexgen.functions.api.FunctionRegister;
import im.Nexgen.functions.settings.impl.BooleanSetting;

import java.util.List;
import java.util.stream.Collectors;

@FunctionRegister(name = "CreeperFarm", type = Category.Combat)
public class MobFarm extends Function {

    private final BooleanSetting players = new BooleanSetting("Игроки", true);
    private final BooleanSetting mobs = new BooleanSetting("Мобы", true);
    private final BooleanSetting animals = new BooleanSetting("Животные", true);
    private final BooleanSetting onlyCrit = new BooleanSetting("Только криты", true);
    private final BooleanSetting shieldBreak = new BooleanSetting("Ломать щит", false);
    private final BooleanSetting friend = new BooleanSetting("Не бить друзей", true);

    public MobFarm() {
        addSettings(players, mobs, animals, onlyCrit, shieldBreak, friend);
    }

    private final StopWatch stopWatch = new StopWatch();

    [USER=1474073]@Subscribe[/USER]
    public void onUpdate(EventUpdate e) {
        Entity entity = getClosestValidEntity();

        if (entity == null || mc.player == null) {
            return;
        }

        moveToEntity(entity); // А это автобег к цели
        lookAtEntity(entity); // крч это автонаводка

        if (shouldAttack()) {
            stopWatch.setLastMS(500);
            attackEntity(entity);
        }
    }

    private boolean shouldAttack() {
        return AttackUtil.isPlayerFalling(onlyCrit.get(), true, false) && stopWatch.hasTimeElapsed();
    }

    private void attackEntity(Entity entity) {
        boolean shouldStopSprinting = false;
        if (onlyCrit.get() && CEntityActionPacket.lastUpdatedSprint) {
            mc.player.connection.sendPacket(new CEntityActionPacket(mc.player, CEntityActionPacket.Action.STOP_SPRINTING));
            shouldStopSprinting = true;
        }

        mc.playerController.attackEntity(mc.player, entity);
        mc.player.swingArm(Hand.MAIN_HAND);

        if (shieldBreak.get() && entity instanceof PlayerEntity) {
            breakShieldPlayer(entity);
        }

        if (shouldStopSprinting) {
            mc.player.connection.sendPacket(new CEntityActionPacket(mc.player, CEntityActionPacket.Action.START_SPRINTING));
        }
    }

    private Entity getClosestValidEntity() {
        List<Entity> entities = mc.world.getEntitiesWithinAABB(LivingEntity.class, mc.player.getBoundingBox().grow(15));
        return entities.stream()
                .filter(entity -> checkEntity((LivingEntity) entity))
                .findFirst()
                .orElse(null);
    }

    public static void breakShieldPlayer(Entity entity) {
        if (((LivingEntity) entity).isBlocking()) {
            int invSlot = InventoryUtil.getInstance().getAxeInInventory(false);
            int hotBarSlot = InventoryUtil.getInstance().getAxeInInventory(true);

            if (hotBarSlot == -1 && invSlot != -1) {
                int bestSlot = InventoryUtil.getInstance().findBestSlotInHotBar();
                mc.playerController.windowClick(0, invSlot, 0, ClickType.PICKUP, mc.player);
                mc.playerController.windowClick(0, bestSlot + 36, 0, ClickType.PICKUP, mc.player);

                mc.player.connection.sendPacket(new CHeldItemChangePacket(bestSlot));
                mc.playerController.attackEntity(mc.player, entity);
                mc.player.swingArm(Hand.MAIN_HAND);
                mc.player.connection.sendPacket(new CHeldItemChangePacket(mc.player.inventory.currentItem));

                mc.playerController.windowClick(0, bestSlot + 36, 0, ClickType.PICKUP, mc.player);
                mc.playerController.windowClick(0, invSlot, 0, ClickType.PICKUP, mc.player);
            }

            if (hotBarSlot != -1) {
                mc.player.connection.sendPacket(new CHeldItemChangePacket(hotBarSlot));
                mc.playerController.attackEntity(mc.player, entity);
                mc.player.swingArm(Hand.MAIN_HAND);
                mc.player.connection.sendPacket(new CHeldItemChangePacket(mc.player.inventory.currentItem));
            }
        }
    }

    private boolean checkEntity(LivingEntity entity) {
        if (friend.get() && entity instanceof PlayerEntity) {
            String playerName = ((PlayerEntity) entity).getName().getString();
            if (FriendStorage.isFriend(playerName)) {
                return false;
            }
        }

        AttackUtil entitySelector = new AttackUtil();

        if (players.get()) {
            entitySelector.apply(AttackUtil.EntityType.PLAYERS);
        }
        if (mobs.get()) {
            entitySelector.apply(AttackUtil.EntityType.MOBS);
        }
        if (animals.get()) {
            entitySelector.apply(AttackUtil.EntityType.ANIMALS);
        }
        return entitySelector.ofType(entity, entitySelector.build()) != null && entity.isAlive();
    }

    private void lookAtEntity(Entity entity) {
        double dx = entity.getPosX() - mc.player.getPosX();
        double dy = entity.getPosY() + entity.getEyeHeight() - (mc.player.getPosY() + mc.player.getEyeHeight());
        double dz = entity.getPosZ() - mc.player.getPosZ();

        double distance = Math.sqrt(dx * dx + dz * dz);
        float yaw = (float) Math.toDegrees(Math.atan2(dz, dx)) - 90;
        float pitch = (float) -Math.toDegrees(Math.atan2(dy, distance));

        mc.player.rotationYaw = yaw;
        mc.player.rotationPitch = pitch;
    }

    private void moveToEntity(Entity entity) {
        double distance = mc.player.getDistance(entity);
        if (distance > 3) { 
            mc.player.moveForward = 1.0F;
            mc.player.setSprinting(true);
        } else {
            mc.player.moveForward = 0.0F;
            mc.player.setSprinting(false);
        }
    }

    [USER=1367676]@override[/USER]
    public void onDisable() {
        stopWatch.reset();
        super.onDisable();
    }
}
 
Начинающий
Статус
Оффлайн
Регистрация
15 Мар 2025
Сообщения
26
Реакции[?]
0
Поинты[?]
0
Мой второй пост!
Я бы не назвал это прям крипер фармом, но думаюдля пастерков пойдет.
я тупо изменил тригербот и добавил автонаводку и автобег к мобам

СС нет чекайте сами

котакбас:
package im.Nexgen.functions.impl.combat;


import com.google.common.eventbus.Subscribe;
import im.Nexgen.cmd.friends.FriendStorage;
import im.Nexgen.functions.api.Category;
import im.Nexgen.functions.api.Function;
import im.Nexgen.utils.math.StopWatch;
import im.Nexgen.utils.player.AttackUtil;
import im.Nexgen.utils.player.InventoryUtil;
import net.minecraft.entity.Entity;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.inventory.container.ClickType;
import net.minecraft.network.play.client.CEntityActionPacket;
import net.minecraft.network.play.client.CHeldItemChangePacket;
import net.minecraft.util.Hand;
import net.minecraft.util.math.EntityRayTraceResult;
import net.minecraft.util.math.RayTraceResult;
import im.Nexgen.events.EventUpdate;
import im.Nexgen.functions.api.FunctionRegister;
import im.Nexgen.functions.settings.impl.BooleanSetting;

import java.util.List;
import java.util.stream.Collectors;

@FunctionRegister(name = "CreeperFarm", type = Category.Combat)
public class MobFarm extends Function {

    private final BooleanSetting players = new BooleanSetting("Игроки", true);
    private final BooleanSetting mobs = new BooleanSetting("Мобы", true);
    private final BooleanSetting animals = new BooleanSetting("Животные", true);
    private final BooleanSetting onlyCrit = new BooleanSetting("Только криты", true);
    private final BooleanSetting shieldBreak = new BooleanSetting("Ломать щит", false);
    private final BooleanSetting friend = new BooleanSetting("Не бить друзей", true);

    public MobFarm() {
        addSettings(players, mobs, animals, onlyCrit, shieldBreak, friend);
    }

    private final StopWatch stopWatch = new StopWatch();

    [USER=1474073]@Subscribe[/USER]
    public void onUpdate(EventUpdate e) {
        Entity entity = getClosestValidEntity();

        if (entity == null || mc.player == null) {
            return;
        }

        moveToEntity(entity); // А это автобег к цели
        lookAtEntity(entity); // крч это автонаводка

        if (shouldAttack()) {
            stopWatch.setLastMS(500);
            attackEntity(entity);
        }
    }

    private boolean shouldAttack() {
        return AttackUtil.isPlayerFalling(onlyCrit.get(), true, false) && stopWatch.hasTimeElapsed();
    }

    private void attackEntity(Entity entity) {
        boolean shouldStopSprinting = false;
        if (onlyCrit.get() && CEntityActionPacket.lastUpdatedSprint) {
            mc.player.connection.sendPacket(new CEntityActionPacket(mc.player, CEntityActionPacket.Action.STOP_SPRINTING));
            shouldStopSprinting = true;
        }

        mc.playerController.attackEntity(mc.player, entity);
        mc.player.swingArm(Hand.MAIN_HAND);

        if (shieldBreak.get() && entity instanceof PlayerEntity) {
            breakShieldPlayer(entity);
        }

        if (shouldStopSprinting) {
            mc.player.connection.sendPacket(new CEntityActionPacket(mc.player, CEntityActionPacket.Action.START_SPRINTING));
        }
    }

    private Entity getClosestValidEntity() {
        List<Entity> entities = mc.world.getEntitiesWithinAABB(LivingEntity.class, mc.player.getBoundingBox().grow(15));
        return entities.stream()
                .filter(entity -> checkEntity((LivingEntity) entity))
                .findFirst()
                .orElse(null);
    }

    public static void breakShieldPlayer(Entity entity) {
        if (((LivingEntity) entity).isBlocking()) {
            int invSlot = InventoryUtil.getInstance().getAxeInInventory(false);
            int hotBarSlot = InventoryUtil.getInstance().getAxeInInventory(true);

            if (hotBarSlot == -1 && invSlot != -1) {
                int bestSlot = InventoryUtil.getInstance().findBestSlotInHotBar();
                mc.playerController.windowClick(0, invSlot, 0, ClickType.PICKUP, mc.player);
                mc.playerController.windowClick(0, bestSlot + 36, 0, ClickType.PICKUP, mc.player);

                mc.player.connection.sendPacket(new CHeldItemChangePacket(bestSlot));
                mc.playerController.attackEntity(mc.player, entity);
                mc.player.swingArm(Hand.MAIN_HAND);
                mc.player.connection.sendPacket(new CHeldItemChangePacket(mc.player.inventory.currentItem));

                mc.playerController.windowClick(0, bestSlot + 36, 0, ClickType.PICKUP, mc.player);
                mc.playerController.windowClick(0, invSlot, 0, ClickType.PICKUP, mc.player);
            }

            if (hotBarSlot != -1) {
                mc.player.connection.sendPacket(new CHeldItemChangePacket(hotBarSlot));
                mc.playerController.attackEntity(mc.player, entity);
                mc.player.swingArm(Hand.MAIN_HAND);
                mc.player.connection.sendPacket(new CHeldItemChangePacket(mc.player.inventory.currentItem));
            }
        }
    }

    private boolean checkEntity(LivingEntity entity) {
        if (friend.get() && entity instanceof PlayerEntity) {
            String playerName = ((PlayerEntity) entity).getName().getString();
            if (FriendStorage.isFriend(playerName)) {
                return false;
            }
        }

        AttackUtil entitySelector = new AttackUtil();

        if (players.get()) {
            entitySelector.apply(AttackUtil.EntityType.PLAYERS);
        }
        if (mobs.get()) {
            entitySelector.apply(AttackUtil.EntityType.MOBS);
        }
        if (animals.get()) {
            entitySelector.apply(AttackUtil.EntityType.ANIMALS);
        }
        return entitySelector.ofType(entity, entitySelector.build()) != null && entity.isAlive();
    }

    private void lookAtEntity(Entity entity) {
        double dx = entity.getPosX() - mc.player.getPosX();
        double dy = entity.getPosY() + entity.getEyeHeight() - (mc.player.getPosY() + mc.player.getEyeHeight());
        double dz = entity.getPosZ() - mc.player.getPosZ();

        double distance = Math.sqrt(dx * dx + dz * dz);
        float yaw = (float) Math.toDegrees(Math.atan2(dz, dx)) - 90;
        float pitch = (float) -Math.toDegrees(Math.atan2(dy, distance));

        mc.player.rotationYaw = yaw;
        mc.player.rotationPitch = pitch;
    }

    private void moveToEntity(Entity entity) {
        double distance = mc.player.getDistance(entity);
        if (distance > 3) {
            mc.player.moveForward = 1.0F;
            mc.player.setSprinting(true);
        } else {
            mc.player.moveForward = 0.0F;
            mc.player.setSprinting(false);
        }
    }

    [USER=1367676]@override[/USER]
    public void onDisable() {
        stopWatch.reset();
        super.onDisable();
    }
}
private final BooleanSetting animals = new BooleanSetting("Животные", true);

СreeperFarm
 
Сверху Снизу