-
Автор темы
- #1
Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:
- бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
- маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
- приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
- обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.
Спасибо!
Java:
package im.furious.functions.impl.combat;
import com.google.common.collect.Lists;
import java.util.Iterator;
import java.util.List;
import com.google.common.eventbus.Subscribe;
import im.furious.events.EventUpdate;
import im.furious.functions.api.Category;
import im.furious.functions.api.Function;
import im.furious.functions.api.FunctionRegister;
import im.furious.functions.settings.impl.BooleanSetting;
import im.furious.functions.settings.impl.ModeListSetting;
import net.minecraft.block.RespawnAnchorBlock;
import net.minecraft.entity.Entity;
import net.minecraft.entity.item.EnderCrystalEntity;
import net.minecraft.item.Items;
import net.minecraft.network.play.client.CHeldItemChangePacket;
import net.minecraft.network.play.client.CUseEntityPacket;
import net.minecraft.util.Direction;
import net.minecraft.util.Hand;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.BlockRayTraceResult;
import net.minecraft.util.math.vector.Vector3d;
@FunctionRegister(name = "AutoExplosion", type = Category.Combat)
public class AutoExplosion extends Function {
private int lastSlot = -1;
private final List<BlockPos> anchors = Lists.newArrayList();
private final List<EnderCrystalEntity> crystals = Lists.newArrayList();
private final ModeListSetting elements = new ModeListSetting("Элементы",
new BooleanSetting("Якорь возрождения", true),
new BooleanSetting("Crystal", true));
private final BooleanSetting silent = new BooleanSetting("Silent", true);
private final BooleanSetting secure = new BooleanSetting("Secure", true);
@Subscribe
private void onEventUpdate(EventUpdate event) {
Iterator var2;
if ((this.elements.getValueByName("Якорь возрождения").get())) {
this.anchors.clear();
this.find(6);
var2 = this.anchors.iterator();
while(var2.hasNext()) {
BlockPos p = (BlockPos)var2.next();
if (mc.player.inventory.getStackInSlot(mc.player.inventory.currentItem).getItem() != Items.GLOWSTONE) {
this.lastSlot = mc.player.inventory.currentItem;
}
int i;
for(i = 0; i < 9; ++i) {
if (mc.player.inventory.getStackInSlot(i).getItem() == Items.GLOWSTONE) {
if ((Boolean)this.silent.getValue()) {
mc.getConnection().sendPacket(new CHeldItemChangePacket(i));
} else {
mc.player.inventory.currentItem = i;
}
}
}
i = (Integer)mc.world.getBlockState(p).get(RespawnAnchorBlock.CHARGES);
if (i <= 3) {
if ((Boolean)this.secure.getValue()) {
if ((double)p.getY() >= mc.player.getPosY() + 1.0) {
mc.playerController.rightClickBlock(mc.player, mc.world, Hand.MAIN_HAND, new BlockRayTraceResult(new Vector3d((double)p.getX(), (double)p.getY(), (double)p.getZ()), Direction.DOWN, p, false));
}
} else {
mc.playerController.rightClickBlock(mc.player, mc.world, Hand.MAIN_HAND, new BlockRayTraceResult(new Vector3d((double)p.getX(), (double)p.getY(), (double)p.getZ()), Direction.DOWN, p, false));
}
}
if (i >= 3) {
if ((Boolean)this.silent.getValue()) {
mc.getConnection().sendPacket(new CHeldItemChangePacket(this.lastSlot));
} else {
mc.player.inventory.currentItem = this.lastSlot;
}
}
}
}
if (this.elements.getValueByName("Crystal").get()) {
this.crystals.clear();
var2 = mc.world.getAllEntities().iterator();
while(var2.hasNext()) {
Entity entity = (Entity)var2.next();
if (entity instanceof EnderCrystalEntity) {
EnderCrystalEntity crystalx = (EnderCrystalEntity)entity;
if (mc.player.getDistance(crystalx) <= 6.0F && crystalx.isAlive()) {
this.crystals.add(crystalx);
}
}
}
var2 = this.crystals.iterator();
while(var2.hasNext()) {
EnderCrystalEntity crystal = (EnderCrystalEntity)var2.next();
if ((Boolean)this.secure.getValue()) {
if (crystal.getPosY() >= mc.player.getPosY() + 1.0) {
mc.getConnection().sendPacket(new CUseEntityPacket(crystal, true));
}
} else {
mc.getConnection().sendPacket(new CUseEntityPacket(crystal, true));
}
}
}
}
public AutoExplosion() {
addSettings(elements, silent, secure);
}
private void find(int range) {
BlockPos player = mc.player.getPosition();
for(int y = (int)(-Math.min((double)range, mc.player.getPosY())); (double)y < Math.min((double)range, 255.0 - mc.player.getPosY()); ++y) {
for(int x = -range; x < range; ++x) {
for(int z = -range; z < range; ++z) {
BlockPos pos = player.add(x, y, z);
if (mc.world.getBlockState(pos).getBlock().getDefaultState().toString().equals("Block{minecraft:respawn_anchor}[charges=0]")) {
this.anchors.add(pos);
}
}
}
}
}
}