Начинающий
- Статус
- Оффлайн
- Регистрация
- 1 Май 2024
- Сообщения
- 49
- Реакции
- 0
короче, навайбкодил клан апгейд, но он банится на фт, как можно пофиксить?
package itz.silentcore.feature.module.impl.misc;
import com.google.common.eventbus.Subscribe;
import itz.silentcore.feature.event.impl.TickEvent;
import itz.silentcore.feature.module.api.Category;
import itz.silentcore.feature.module.api.Module;
import itz.silentcore.feature.module.api.ModuleAnnotation;
import itz.silentcore.utils.inventory.InventoryResult;
import itz.silentcore.utils.inventory.InventoryToolkit;
import net.minecraft.block.BlockState;
import net.minecraft.item.Items;
import net.minecraft.network.packet.c2s.play.HandSwingC2SPacket;
import net.minecraft.network.packet.c2s.play.PlayerActionC2SPacket;
import net.minecraft.util.Hand;
import net.minecraft.util.hit.BlockHitResult;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Direction;
import net.minecraft.util.math.Vec3d;
@ModuleAnnotation(
name = "ClanUpgrade",
category = Category.MISC,
description = "Fast redstone dust spam"
)
public class ClanUpgrade extends Module {
private long lastAction;
@Subscribe
public void onTick(TickEvent event) {
if (mc.player == null || mc.world == null || mc.interactionManager == null) {
return;
}
// Блок, на котором стоит игрок (для установки редстоуна)
BlockPos standOnBlock = mc.player.getBlockPos().down();
// Блок, куда будем ставить редстоун (над блоком, на котором стоим)
BlockPos placePos = standOnBlock.up();
InventoryResult redstoneSlot = InventoryToolkit.findItemInHotBar(Items.REDSTONE);
if (!redstoneSlot.found()) {
return;
}
// задержка 30-50мс
long delay = 30L + (long) (Math.random() * 20L);
if (System.currentTimeMillis() - lastAction < delay) {
return;
}
lastAction = System.currentTimeMillis();
InventoryToolkit.switchTo(redstoneSlot.slot());
// Проверяем, что место для установки редстоуна пустое
if (mc.world.getBlockState(placePos).isAir()) {
// Ставим редстоун на блок, на котором стоим
BlockHitResult hitResult = new BlockHitResult(
Vec3d.ofCenter(standOnBlock),
Direction.UP,
standOnBlock,
false
);
mc.interactionManager.interactBlock(
mc.player,
Hand.MAIN_HAND,
hitResult
);
mc.player.networkHandler.sendPacket(
new HandSwingC2SPacket(Hand.MAIN_HAND)
);
}
// Ломаем только что поставленный редстоун
if (!mc.world.getBlockState(placePos).isAir()) {
mc.player.networkHandler.sendPacket(
new PlayerActionC2SPacket(
PlayerActionC2SPacket.Action.START_DESTROY_BLOCK,
placePos,
Direction.UP
)
);
mc.player.networkHandler.sendPacket(
new PlayerActionC2SPacket(
PlayerActionC2SPacket.Action.STOP_DESTROY_BLOCK,
placePos,
Direction.UP
)
);
}
}
}