-
Автор темы
- #1
Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:
- бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
- маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
- приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
- обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.
Спасибо!
привет, вообщем вот код
подскажите как сделать что бы игрок под собой устанавливал ведро воды я пробывал через mc.playerController.processRightClick(mc.player, mc.world, Hand.MAIN_HAND); оно типо слишком быстро воду ставит из за этого флагает вообщ
Spider:
package im.expensive.functions.impl.movement;
import com.google.common.eventbus.Subscribe;
import im.expensive.events.EventMotion;
import im.expensive.functions.api.Category;
import im.expensive.functions.api.Function;
import im.expensive.functions.api.FunctionRegister;
import im.expensive.functions.settings.impl.ModeSetting;
import im.expensive.functions.settings.impl.SliderSetting;
import im.expensive.utils.math.StopWatch;
import im.expensive.utils.player.MouseUtil;
import net.minecraft.item.BlockItem;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.util.Hand;
import net.minecraft.util.math.BlockRayTraceResult;
import net.minecraft.util.math.MathHelper;
@FunctionRegister(name = "Spider", type = Category.Movement)
public class Spider extends Function {
public ModeSetting mode = new ModeSetting("Mode", "Grim", "Grim", "Matrix","WaterSpider");
private final SliderSetting spiderSpeed = new SliderSetting(
"Speed",
2.0f,
1.0f,
10.0f,
0.05f
).setVisible(() -> !mode.is("Grim"));
StopWatch stopWatch = new StopWatch();
public Spider() {
addSettings(spiderSpeed, mode);
}
private void placeWater(EventMotion motion, int waterBucketSlot) {
int lastSlot = mc.player.inventory.currentItem;
mc.player.inventory.currentItem = waterBucketSlot;
motion.setPitch(80);
motion.setYaw(mc.player.getHorizontalFacing().getHorizontalAngle());
BlockRayTraceResult result = (BlockRayTraceResult) MouseUtil.rayTrace(4, motion.getYaw(), motion.getPitch(), mc.player);
mc.player.swingArm(Hand.MAIN_HAND);
mc.playerController.processRightClick(mc.player, mc.world, Hand.MAIN_HAND);
mc.player.inventory.currentItem = lastSlot;
mc.player.fallDistance = 0;
}
@Subscribe
private void onMotion(EventMotion motion) {
switch (mode.get()) {
case "Matrix" -> {
if (!mc.player.collidedHorizontally) {
return;
}
long speed = MathHelper.clamp(500 - (spiderSpeed.get().longValue() / 2 * 100), 0, 500);
if (stopWatch.isReached(speed)) {
motion.setOnGround(true);
mc.player.setOnGround(true);
mc.player.collidedVertically = true;
mc.player.collidedHorizontally = true;
mc.player.isAirBorne = true;
mc.player.jump();
stopWatch.reset();
}
}
case "Grim" -> {
int slotInHotBar = getSlotInInventoryOrHotbar(true);
if (slotInHotBar == -1) {
print("Блоки не найдены!");
toggle();
return;
}
if (!mc.player.collidedHorizontally) {
return;
}
if (mc.player.isOnGround()) {
motion.setOnGround(true);
mc.player.setOnGround(true);
mc.player.jump();
}
if (mc.player.fallDistance > 0 && mc.player.fallDistance < 2) {
placeBlocks(motion, slotInHotBar);
}
}
case "WaterSpider" -> {
if (mc.player.isOnGround()) {
motion.setOnGround(true);
mc.player.setOnGround(true);
mc.player.jump();
}
}
}
}
public int getWaterBucketSlot() {
for (int i = 0; i < 36; i++) {
ItemStack stack = mc.player.inventory.getStackInSlot(i);
if (stack.getItem() == Items.WATER_BUCKET) {
return i;
}
}
return -1;
}
private void placeBlocks(EventMotion motion, int block) {
int last = mc.player.inventory.currentItem;
mc.player.inventory.currentItem = block;
motion.setPitch(80);
motion.setYaw(mc.player.getHorizontalFacing().getHorizontalAngle());
BlockRayTraceResult r = (BlockRayTraceResult) MouseUtil.rayTrace(4, motion.getYaw(), motion.getPitch(), mc.player);
mc.player.swingArm(Hand.MAIN_HAND);
mc.playerController.processRightClickBlock(mc.player, mc.world, Hand.MAIN_HAND, r);
mc.player.inventory.currentItem = last;
mc.player.fallDistance = 0;
}
public int getSlotInInventoryOrHotbar(boolean inHotBar) {
int firstSlot = inHotBar ? 0 : 9;
int lastSlot = inHotBar ? 9 : 36;
int finalSlot = -1;
for (int i = firstSlot; i < lastSlot; i++) {
if (mc.player.inventory.getStackInSlot(i).getItem() == Items.TORCH) {
continue;
}
if (mc.player.inventory.getStackInSlot(i).getItem() instanceof BlockItem
|| mc.player.inventory.getStackInSlot(i).getItem() == Items.WATER_BUCKET) {
finalSlot = i;
}
}
return finalSlot;
}
}