Начинающий
			
			
				
					
				
			
		- Статус
- Оффлайн
- Регистрация
- 27 Июн 2024
- Сообщения
- 68
- Реакции
- 0
- Выберите загрузчик игры
- Прочие моды
 
всем привет сливаю триггер бот - аимассист. Обходит Античит Sloth AI
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
				
			
			
				TriggerBot:
			
		
		
		import expensive.events.EventTarget;
import expensive.events.EventUpdate;
import expensive.events.EventDisplay;
import expensive.functions.api.Category;
import expensive.functions.api.Function;
import expensive.functions.api.FunctionRegister;
import expensive.functions.settings.Setting;
import expensive.functions.settings.impl.BooleanSetting;
import expensive.functions.settings.impl.ModeSetting;
import expensive.functions.settings.impl.SliderSetting;
import expensive.utils.drag.Dragging;
import expensive.Dick;
import com.mojang.blaze3d.matrix.MatrixStack;
import expensive.utils.render.DisplayUtils;
import expensive.utils.render.ColorUtils;
import expensive.utils.render.font.Fonts;
import expensive.utils.math.StopWatch;
import expensive.utils.player.AttackUtil;
import expensive.utils.player.InventoryUtil;
import java.util.Comparator;
import java.util.List;
import java.util.concurrent.ThreadLocalRandom;
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.item.Item;
import net.minecraft.item.Items;
import net.minecraft.network.play.client.CEntityActionPacket;
import net.minecraft.network.play.client.CHeldItemChangePacket;
import net.minecraft.util.Hand;
import net.minecraft.util.math.AxisAlignedBB;
import net.minecraft.util.math.EntityRayTraceResult;
import net.minecraft.util.math.RayTraceContext;
import net.minecraft.util.math.RayTraceResult;
import net.minecraft.util.math.vector.Vector3d;
@FunctionRegister(
        name = "TriggerBot",
        description = "TriggerBot",
        type = Category.Combat
)
public class TriggerBot 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 wallHit = new BooleanSetting("Удары через стены", false);
   private final BooleanSetting correciaebat = new BooleanSetting("Корректировать удары", false);
   private final BooleanSetting elytraTarget = new BooleanSetting("Элитра таргет", false);
   private final ModeSetting elytraMode = new ModeSetting("Режим элитры", "Авто", new String[]{"Авто", "Кастом"});
   private final SliderSetting elytraDistance = new SliderSetting("Доп. дистанция", 1.5F, 1.0F, 5.0F, 0.1F);
   private final ModeSetting elytraOvertake = new ModeSetting("Выбор обгона", "Новый", new String[]{"Старый", "Новый"});
   private final BooleanSetting elytraEatChorus = new BooleanSetting("Кушать хорус", true);
   private final StopWatch stopWatch = new StopWatch();
   private static LivingEntity currentTarget;
   private boolean isEatingChorus = false;
   private int lastSlot = 0;
   public TriggerBot() {
      this.addSettings(new Setting[]{this.wallHit, this.onlyCrit, this.players, this.animals, this.shieldBreak, this.correciaebat, this.elytraTarget, this.elytraMode, this.elytraDistance, this.elytraOvertake, this.elytraEatChorus});
   }
   @EventTarget
   public void onUpdate(EventUpdate e) {
      this.handleElytraChorus();
      Entity entity = this.getValidEntity();
      if (entity != null && mc.player != null) {
         currentTarget = (LivingEntity)entity;
         if (this.shouldAttack()) {
            this.stopWatch.setLastMS(450L);
            this.attackEntity(entity);
         }
      } else {
         currentTarget = null;
      }
   }
   public static LivingEntity getCurrentTarget() {
      return currentTarget;
   }
   private boolean shouldAttack() {
      return AttackUtil.isPlayerFalling((Boolean)this.onlyCrit.get(), true, false) && this.stopWatch.hasTimeElapsed();
   }
   private void attackEntity(Entity entity) {
      boolean shouldStopSprinting = false;
      if ((Boolean)this.onlyCrit.get() && CEntityActionPacket.lastUpdatedSprint) {
         mc.player.connection.sendPacket(new CEntityActionPacket(mc.player, CEntityActionPacket.Action.STOP_SPRINTING));
         shouldStopSprinting = true;
      }
      if ((Boolean)this.wallHit.get() || this.canSeeEntity(entity)) {
         mc.playerController.attackEntity(mc.player, entity);
         mc.player.swingArm(Hand.MAIN_HAND);
         if ((Boolean)this.shieldBreak.get() && entity instanceof PlayerEntity) {
            breakShieldPlayer(entity);
         }
      }
      if (shouldStopSprinting) {
         mc.player.connection.sendPacket(new CEntityActionPacket(mc.player, CEntityActionPacket.Action.START_SPRINTING));
      }
   }
   private boolean canSeeEntity(Entity entity) {
      if (entity == null) {
         return false;
      } else {
         Vector3d eyesPos = mc.player.getEyePosition(1.0F);
         Vector3d targetPos = entity.getBoundingBox().getCenter();
         RayTraceResult result = mc.world.rayTraceBlocks(new RayTraceContext(eyesPos, targetPos, RayTraceContext.BlockMode.COLLIDER, RayTraceContext.FluidMode.NONE, mc.player));
         return result.getType() == RayTraceResult.Type.MISS;
      }
   }
   private Entity getValidEntity() {
      if ((Boolean)this.elytraTarget.get() && mc.player.isElytraFlying()) {
         return this.findElytraTarget();
      } else if ((Boolean)this.wallHit.get()) {
         return this.findTargetThroughWalls();
      } else {
         if (mc.objectMouseOver.getType() == RayTraceResult.Type.ENTITY) {
            Entity entity = ((EntityRayTraceResult)mc.objectMouseOver).getEntity();
            if (this.checkEntity((LivingEntity)entity)) {
               return entity;
            }
         }
         return null;
      }
   }
   private Entity findElytraTarget() {
      if (mc.player != null && mc.world != null) {
         double range = (double)12.0F;
         AxisAlignedBB searchBox = mc.player.getBoundingBox().grow(range);
         List<Entity> entities = mc.world.getEntitiesWithinAABBExcludingEntity(mc.player, searchBox);
         return (Entity)entities.stream().filter((entity) -> entity instanceof LivingEntity).map((entity) -> (LivingEntity)entity).filter(this::checkEntity).filter((entity) -> entity.isAlive()).filter((entity) -> entity.isElytraFlying()).min(Comparator.comparingDouble((entity) -> {
            double baseDistance = mc.player.getDistanceSq(entity);
            return this.elytraMode.is("Кастом") ? baseDistance + (double)(Float)this.elytraDistance.get() : baseDistance;
         })).orElse(null);
      } else {
         return null;
      }
   }
   private Entity findTargetThroughWalls() {
      if (mc.player != null && mc.world != null) {
         double range = (double)6.0F;
         AxisAlignedBB searchBox = mc.player.getBoundingBox().grow(range);
         List<Entity> entities = mc.world.getEntitiesWithinAABBExcludingEntity(mc.player, searchBox);
         return (Entity)entities.stream().filter((entity) -> entity instanceof LivingEntity).map((entity) -> (LivingEntity)entity).filter(this::checkEntity).filter((entity) -> entity.isAlive()).min(Comparator.comparingDouble((entity) -> mc.player.getDistanceSq(entity))).orElse(null);
      } else {
         return null;
      }
   }
   private void handleElytraChorus() {
      if ((Boolean)this.elytraTarget.get() && (Boolean)this.elytraEatChorus.get() && mc.player.isElytraFlying()) {
         if (currentTarget != null && currentTarget.getHeldItemMainhand().getItem() == Items.CHORUS_FRUIT && currentTarget.isHandActive() && this.doesHotbarHaveItem(Items.CHORUS_FRUIT)) {
            if (!this.isEatingChorus) {
               this.lastSlot = mc.player.inventory.currentItem;
               this.useChorusFruit();
               this.isEatingChorus = true;
            }
         } else if (this.isEatingChorus) {
            this.stopEatingChorus();
            this.isEatingChorus = false;
         }
      }
   }
   private boolean doesHotbarHaveItem(Item item) {
      for(int i = 0; i < 9; ++i) {
         if (mc.player.inventory.getStackInSlot(i).getItem() == item) {
            return true;
         }
      }
      return false;
   }
   private void useChorusFruit() {
      int chorusSlot = -1;
      for(int i = 0; i < 9; ++i) {
         if (mc.player.inventory.getStackInSlot(i).getItem() == Items.CHORUS_FRUIT) {
            chorusSlot = i;
            break;
         }
      }
      if (chorusSlot != -1) {
         mc.player.inventory.currentItem = chorusSlot;
         mc.gameSettings.keyBindUseItem.setPressed(true);
      }
   }
   private void stopEatingChorus() {
      mc.gameSettings.keyBindUseItem.setPressed(false);
      mc.player.inventory.currentItem = this.lastSlot;
   }
   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) {
      AttackUtil entitySelector = new AttackUtil();
      if ((Boolean)this.players.get()) {
         entitySelector.apply(AttackUtil.EntityType.PLAYERS);
      }
      if ((Boolean)this.mobs.get()) {
         entitySelector.apply(AttackUtil.EntityType.MOBS);
      }
      if ((Boolean)this.animals.get()) {
         entitySelector.apply(AttackUtil.EntityType.ANIMALS);
      }
      return entitySelector.ofType(entity, entitySelector.build()) != null && entity.isAlive();
   }
   public void onDisable() {
      currentTarget = null;
      this.stopWatch.reset();
      if (this.isEatingChorus) {
         this.stopEatingChorus();
         this.isEatingChorus = false;
      }
      super.onDisable();
   }
} 
				 
	 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		