Начинающий
Начинающий
- Статус
- Оффлайн
- Регистрация
- 18 Май 2025
- Сообщения
- 55
- Реакции
- 1
- Выберите загрузчик игры
- Vanilla
- Fabric
Код:
package zenith.pl.client.modules.impl.combat;
import com.darkmagician6.eventapi.EventTarget;
import net.minecraft.block.Blocks;
import net.minecraft.entity.Entity;
import net.minecraft.entity.decoration.EndCrystalEntity;
import net.minecraft.item.Items;
import net.minecraft.util.Hand;
import net.minecraft.util.hit.BlockHitResult;
import net.minecraft.util.hit.EntityHitResult;
import net.minecraft.util.math.Direction;
import net.minecraft.util.math.Vec3d;
import zenith.pl.base.events.impl.player.EventUpdate;
import zenith.pl.client.modules.api.Category;
import zenith.pl.client.modules.api.Module;
import zenith.pl.client.modules.api.ModuleAnnotation;
import zenith.pl.client.modules.api.setting.impl.BooleanSetting;
import zenith.pl.client.modules.api.setting.impl.NumberSetting;
@ModuleAnnotation(name = "CrystalTap", category = Category.COMBAT, description = "Мигом взывает кристал")
public class CrystalTap extends Module {
public static final CrystalTap INSTANCE = new CrystalTap();
public static final BooleanSetting autoAddCrystal = new BooleanSetting("Автоматически ставить крисстал", true);
public static final NumberSetting addCooldown = new NumberSetting("Задержка на ставку крисстала", 0,0,5,1);
public static final NumberSetting attackCooldown = new NumberSetting("Задержка на атаку крисстала", 0,0,5,1);
int attackCrystalCooldown;
int addCrystalCooldown;
private void addCrystal() {
if (mc.crosshairTarget instanceof BlockHitResult obsidianTarget) {
if (mc.world.getBlockState(obsidianTarget.getBlockPos()).getBlock() == Blocks.OBSIDIAN) {
for (Entity entity : mc.world.getEntities()) {
if (entity instanceof EndCrystalEntity crystal) {
if (crystal.getBlockPos().down().equals(obsidianTarget.getBlockPos())) return;
}
}
Direction side = obsidianTarget.getSide();
BlockHitResult crystalHit = new BlockHitResult(obsidianTarget.getPos(), side, obsidianTarget.getBlockPos(), true);
if (mc.player.getMainHandStack().getItem() != Items.END_CRYSTAL) return;
if (addCrystalCooldown <= addCooldown.getCurrent()) {
mc.interactionManager.interactBlock(mc.player, Hand.MAIN_HAND, crystalHit);
addCrystalCooldown = 0;
} else addCrystalCooldown++;
}
}
}
@EventTarget
public void onUpdate(EventUpdate event) {
if (autoAddCrystal.isEnabled()) addCrystal();
for (Entity entity : mc.world.getEntities()) {
if (entity instanceof EndCrystalEntity crystal) {
if (mc.crosshairTarget instanceof EntityHitResult hitResult) {
if (hitResult.getEntity() instanceof EndCrystalEntity) {
if (attackCrystalCooldown >= attackCooldown.getCurrent()) {
mc.interactionManager.attackEntity(mc.player, hitResult.getEntity());
mc.player.swingHand(Hand.MAIN_HAND);
attackCrystalCooldown = 0;
} else attackCrystalCooldown++;
}
}
}
}
}
}
upd:
+ настройка "авто ставить крисстал"
+ сделал чтоб не было жалоб от ач "dublication place"
+ минимальная задержка
очень мощная функция
Пожалуйста, авторизуйтесь для просмотра ссылки.
Последнее редактирование:
