-
Автор темы
- #1
Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:
- бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
- маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
- приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
- обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.
Спасибо!
Нужны элики и феерверки
Function
InventoryUtil
Пожалуйста, авторизуйтесь для просмотра ссылки.
Function
Java:
package wtf.expensive.modules.impl.movement;
import net.minecraft.inventory.container.ClickType;
import net.minecraft.item.Items;
import net.minecraft.network.play.client.CEntityActionPacket;
import net.minecraft.util.math.vector.Vector3d;
import wtf.expensive.events.Event;
import wtf.expensive.events.impl.player.EventUpdate;
import wtf.expensive.modules.Function;
import wtf.expensive.modules.FunctionAnnotation;
import wtf.expensive.modules.Type;
import wtf.expensive.modules.settings.imp.SliderSetting;
import wtf.expensive.util.misc.TimerUtil;
import wtf.expensive.util.world.InventoryUtil;
@FunctionAnnotation(name="ElytraStrafe", type=Type.Movement)
public class ElytraStrafe extends Function {
private final TimerUtil timerUtil = new TimerUtil();
private final SliderSetting speedBoost = new SliderSetting("Буст", 2.95f, 1.0f, 2.0f, 0.05f);
boolean groundStart = false;
public ElytraStrafe() {
this.addSettings(this.speedBoost);
}
@Override
public void onEvent(Event event) {
if (event instanceof EventUpdate) {
if (InventoryUtil.getItemSlot(Items.FIREWORK_ROCKET) == -1) {
return;
}
if (!InventoryUtil.doesHotbarHaveItem(Items.ELYTRA)) {
return;
}
if (mc.player.isOnGround()) {
this.groundStart = true;
}
if (mc.player.isElytraFlying()) {
float speed2 = this.speedBoost.getValue().floatValue();
Vector3d var10000 = mc.player.getMotion();
var10000.x *= (double)speed2;
var10000 = mc.player.getMotion();
var10000.z *= (double)speed2;
}
if (mc.player.fallDistance != 0.0f && !mc.player.isElytraFlying() && this.groundStart && this.timerUtil.hasTimeElapsed(100L)) {
this.groundStart = false;
for (int i = 0; i < 36; ++i) {
if (mc.player.inventory.getStackInSlot(i).getItem() != Items.ELYTRA) continue;
mc.playerController.windowClick(0, 6, i, ClickType.SWAP, mc.player);
mc.player.connection.sendPacket(new CEntityActionPacket(mc.player, CEntityActionPacket.Action.START_FALL_FLYING));
mc.playerController.windowClick(0, 6, i, ClickType.SWAP, mc.player);
InventoryUtil.inventorySwapClick(Items.FIREWORK_ROCKET);
}
this.timerUtil.reset();
}
}
}
@Override
public void onDisable() {
super.onDisable();
}
}
InventoryUtil
Java:
package wtf.expensive.util.world;
import net.minecraft.inventory.container.ClickType;
import net.minecraft.item.*;
import net.minecraft.network.play.client.CEntityActionPacket;
import net.minecraft.network.play.client.CHeldItemChangePacket;
import net.minecraft.network.play.client.CPlayerTryUseItemPacket;
import net.minecraft.util.Hand;
import wtf.expensive.events.impl.player.EventWindowClick;
import wtf.expensive.util.IMinecraft;
public class InventoryUtil implements IMinecraft {
public static int getHotBarSlot(Item input) {
for (int i = 0; i < 9; i++) {
if (mc.player.inventory.getStackInSlot(i).getItem() == input) {
return i;
}
}
return -1;
}
public static int getFireWorks() {
for (int i = 0; i < 9; i++) {
if (mc.player.inventory.getStackInSlot(i).getItem() instanceof FireworkRocketItem) {
return i;
}
}
return -1;
}
public static int getTrident() {
for (int i = 0; i < 9; i++) {
if (mc.player.inventory.getStackInSlot(i).getItem() instanceof TridentItem) {
return i;
}
}
return -1;
}
public static int getItem(Item item, boolean hotbar) {
for (int i = 0; i < (hotbar ? 9 : 45); ++i) {
if (mc.player.inventory.getStackInSlot(i).getItem() == item) {
return i;
}
}
return -1;
}
public static int getSlotInHotBar(Item item) {
for (int i = 0; i < 9; i++) {
if (mc.player.inventory.getStackInSlot(i).getItem() == item) {
return i;
}
}
return -1;
}
public static int getItemSlot(Item input) {
for (ItemStack stack : mc.player.getArmorInventoryList()) {
if (stack.getItem() == input) {
return -2;
}
}
int slot = -1;
for (int i = 0; i < 36; i++) {
ItemStack s = mc.player.inventory.getStackInSlot(i);
if (s.getItem() == input) {
slot = i;
break;
}
}
if (slot < 9 && slot != -1) {
slot = slot + 36;
}
return slot;
}
public static int getItemSlot(ItemStack input) {
for (ItemStack stack : mc.player.getArmorInventoryList()) {
if (stack == input) {
return -2;
}
}
int slot = -1;
for (int i = 0; i < 36; i++) {
ItemStack s = mc.player.inventory.getStackInSlot(i);
if (s == input) {
slot = i;
break;
}
}
if (slot < 9 && slot != -1) {
slot = slot + 36;
}
return slot;
}
public static void handleItemTransfer() {
int emptySlot;
if (mc.player.inventory.getItemStack().getItem() != Items.AIR && (emptySlot = findEmptySlot(false)) != -1) {
mc.playerController.windowClick(0, emptySlot, 0, ClickType.PICKUP, mc.player);
}
mc.player.closeScreen();
}
public static void inventorySwapClick(Item item) {
int i;
if (InventoryUtil.doesHotbarHaveItem(item)) {
for (i = 0; i < 9; ++i) {
if (InventoryUtil.mc.player.inventory.getStackInSlot(i).getItem() != item) continue;
boolean levin1337 = false;
if (i != InventoryUtil.mc.player.inventory.currentItem) {
InventoryUtil.mc.player.connection.sendPacket(new CHeldItemChangePacket(i));
levin1337 = true;
}
InventoryUtil.mc.player.connection.sendPacket(new CPlayerTryUseItemPacket(Hand.MAIN_HAND));
if (!levin1337) break;
InventoryUtil.mc.player.connection.sendPacket(new CHeldItemChangePacket(InventoryUtil.mc.player.inventory.currentItem));
break;
}
}
}
public static boolean doesHotbarHaveItem(Item item) {
for (int i = 0; i < 9; ++i) {
InventoryUtil.mc.player.inventory.getStackInSlot(i);
if (InventoryUtil.mc.player.inventory.getStackInSlot(i).getItem() != item) continue;
return true;
}
return false;
}
public static void handleClick(EventWindowClick windowClick) {
boolean isSneaking = mc.player.isSneaking();
if (windowClick.getClickStage() == EventWindowClick.ClickStage.PRE) {
mc.player.setSprinting(false);
if (!isSneaking) return;
mc.player.connection.sendPacket(new CEntityActionPacket(mc.player, CEntityActionPacket.Action.RELEASE_SHIFT_KEY));
}
if (windowClick.getClickStage() == EventWindowClick.ClickStage.POST) {
if (!isSneaking) return;
mc.player.connection.sendPacket(new CEntityActionPacket(mc.player, CEntityActionPacket.Action.PRESS_SHIFT_KEY));
}
}
public static int findEmptySlot(boolean isStartingFromZero) {
int start = isStartingFromZero ? 0 : 9;
int end = isStartingFromZero ? 9 : 45;
for (int i = start; i < end; ++i) {
if (!mc.player.inventory.getStackInSlot(i).isEmpty()) {
continue;
}
return i;
}
return -1;
}
public static void moveItem(int from, int to, boolean air) {
if (from == to) return;
pickupItem(from, 0);
pickupItem(to, 0);
if (air)
pickupItem(from, 0);
}
public static void pickupItem(int slot, int button) {
mc.playerController.windowClick(0, slot, button, ClickType.PICKUP, mc.player);
}
public static void dropItem(int slot) {
mc.playerController.windowClick(0, slot, 0, ClickType.THROW, mc.player);
}
public static int getAxe(boolean hotBar) {
int startSlot = hotBar ? 0 : 9;
int endSlot = hotBar ? 9 : 36;
for (int i = startSlot; i < endSlot; i++) {
ItemStack itemStack = mc.player.inventory.getStackInSlot(i);
if (itemStack.getItem() instanceof AxeItem) {
return i;
}
}
return -1;
}
public static int getPearls() {
for (int i = 0; i < 9; i++) {
if (mc.player.inventory.getStackInSlot(i).getItem() instanceof EnderPearlItem) {
return i;
}
}
return -1;
}
}