-
Автор темы
- #1
Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:
- бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
- маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
- приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
- обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.
Спасибо!
Работает на всех залупах(Такой же как и в expensive 3.1)
Код:
package Anova.modules.impl.player;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.screen.ChatScreen;
import net.minecraft.client.gui.screen.EditSignScreen;
import net.minecraft.client.gui.screen.inventory.InventoryScreen;
import net.minecraft.client.settings.KeyBinding;
import net.minecraft.client.util.InputMappings;
import net.minecraft.network.IPacket;
import net.minecraft.network.play.client.CClickWindowPacket;
import Anova.events.Event;
import Anova.events.impl.packet.EventPacket;
import Anova.events.impl.player.EventUpdate;
import Anova.modules.Function;
import Anova.modules.FunctionModule;
import Anova.modules.Type;
import Anova.modules.settings.imp.BooleanOption;
import Anova.util.ClientUtil;
import Anova.util.misc.TimerUtil;
import Anova.util.movement.MoveUtil;
import java.util.ArrayList;
import java.util.List;
@FunctionModule(name = "InventoryMove", type = Type.Player)
public class InventoryMoveFunction extends Function {
private final BooleanOption obxod = new BooleanOption("Обход фантайм", false);
public TimerUtil wait = new TimerUtil();
private final List<IPacket<?>> packet = new ArrayList<>();
public InventoryMoveFunction() {
addsetting(obxod);
}
public void onUpdate() {
if (mc.player != null) {
final KeyBinding[] pressedKeys = {mc.gameSettings.keyBindForward, mc.gameSettings.keyBindBack,
mc.gameSettings.keyBindLeft, mc.gameSettings.keyBindRight, mc.gameSettings.keyBindJump,
mc.gameSettings.keyBindSprint};
if (!wait.hasTimeElapsed(400)) {
for (KeyBinding keyBinding : pressedKeys) {
keyBinding.setPressed(false);
}
return;
}
if (mc.currentScreen instanceof ChatScreen || mc.currentScreen instanceof EditSignScreen) {
return;
}
updateKeyBindingState(pressedKeys);
if(obxod.get()) {
if (!(mc.currentScreen instanceof InventoryScreen) && !packet.isEmpty() && MoveUtil.isMoving()) {
new Thread(() -> {
wait.reset();
try {
Thread.sleep(100);
} catch (InterruptedException ex) {
throw new RuntimeException(ex);
}
for (IPacket p : packet) {
mc.player.connection.sendPacket(p);
}
packet.clear();
}).start();
}
} else {
KeyBinding[] keys = new KeyBinding[]{mc.gameSettings.keyBindForward, mc.gameSettings.keyBindBack, mc.gameSettings.keyBindLeft, mc.gameSettings.keyBindRight, mc.gameSettings.keyBindJump, mc.gameSettings.keyBindSprint};
if (!(mc.currentScreen instanceof ChatScreen) && !(mc.currentScreen instanceof EditSignScreen)) {
KeyBinding[] var2 = keys;
int var3 = keys.length;
for (int var4 = 0; var4 < var3; ++var4) {
KeyBinding keyBinding = var2[var4];
keyBinding.setPressed(InputMappings.isKeyDown(Minecraft.getInstance().getMainWindow().getHandle(), keyBinding.getDefault().getKeyCode()));
}
}
}
}
}
public void onPacket(EventPacket e) {
if (e.getPacket() instanceof CClickWindowPacket p && MoveUtil.isMoving()) {
if (mc.currentScreen instanceof InventoryScreen) {
packet.add(p);
e.setCancel(true);
}
}
}
private void updateKeyBindingState(KeyBinding[] keyBindings) {
for (KeyBinding keyBinding : keyBindings) {
boolean isKeyPressed = InputMappings.isKeyDown(mc.getMainWindow().getHandle(), keyBinding.getDefault().getKeyCode());
keyBinding.setPressed(isKeyPressed);
}
}
@Override
public void onEventModule(Event event) {
if(obxod.get()) {
if (event instanceof EventUpdate) {
onUpdate();
} else if (event instanceof EventPacket ep) {
onPacket(ep);
}
}else{
if (event instanceof EventUpdate) {
onUpdate();
}
}
}
}