-
Автор темы
- #1
Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:
- бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
- маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
- приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
- обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.
Спасибо!
Код:
package im.expensive.functions.impl.movement;
import com.google.common.eventbus.Subscribe;
import im.expensive.events.EventUpdate;
import im.expensive.functions.api.Category;
import im.expensive.functions.api.Function;
import im.expensive.functions.api.FunctionRegister;
import im.expensive.functions.settings.Setting;
import im.expensive.functions.settings.impl.BooleanSetting;
import im.expensive.functions.settings.impl.SliderSetting;
import im.expensive.utils.math.StopWatch;
import im.expensive.utils.player.InventoryUtil;
import net.minecraft.block.Blocks;
import net.minecraft.client.Minecraft;
import net.minecraft.client.world.ClientWorld;
import net.minecraft.inventory.container.ClickType;
import net.minecraft.item.Items;
import net.minecraft.network.play.client.CEntityActionPacket;
import net.minecraft.util.math.BlockPos;
@FunctionRegister(name = "ElytraStrafe", type = Category.Movement)
public class ElytraStrafe extends Function {
private final StopWatch stopWatch = new StopWatch();
private final StopWatch stopWatch1 = new StopWatch();
private final SliderSetting timerStartFireWork = new SliderSetting("Таймер фейерверка", 400.0F, 50.0F, 1500.0F, 1.0F);
private final BooleanSetting onlyGrimBypass = new BooleanSetting("Обход RW", false);
public ElytraStrafe() {
this.addSettings(new Setting[]{this.timerStartFireWork, this.onlyGrimBypass});
}
@Subscribe
public void onUpdate(EventUpdate e) {
if (InventoryUtil.getItemSlot(Items.FIREWORK_ROCKET) != -1 && e instanceof EventUpdate) {
int timeSwap = 170;
if (this.onlyGrimBypass.get()) {
timeSwap = 788;
boolean startFireWork = true;
for (int i = 0; i < 9; ++i) {
if (mc.player.inventory.getStackInSlot(i).getItem() == Items.ELYTRA) {
if (mc.world.getBlockState(new BlockPos(mc.player.getPosX(), mc.player.getPosY() - 0.01, mc.player.getPosZ())).getBlock() == Blocks.AIR) {
if (!mc.player.isOnGround() && !mc.player.isInWater() && !mc.player.isInLava() && !mc.player.isElytraFlying()) {
if (this.stopWatch1.hasTimeElapsed2((long) timeSwap)) {
mc.playerController.windowClick(0, 6, i, ClickType.SWAP, mc.player);
mc.player.startFallFlying();
mc.player.connection.sendPacket(new CEntityActionPacket(mc.player, CEntityActionPacket.Action.START_FALL_FLYING));
mc.playerController.windowClick(0, 6, i, ClickType.SWAP, mc.player);
this.stopWatch1.reset();
}
if (this.stopWatch.hasTimeElapsed2((long) this.timerStartFireWork.get().intValue())) {
if (mc.player.isElytraFlying()) {
if (startFireWork) {
InventoryUtil.inventorySwapClick(Items.FIREWORK_ROCKET);
}
this.stopWatch.reset();
}
}
}
}
}
}
}
}
}
@Override
public void onDisable() {
super.onDisable();
}
}