Начинающий
- Статус
- Оффлайн
- Регистрация
- 23 Июн 2023
- Сообщения
- 140
- Реакции
- 0
Код:
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();
}
}