Вопрос ProcessRightClick по ротации

Начинающий
Статус
Оффлайн
Регистрация
14 Июн 2023
Сообщения
80
Реакции[?]
0
Поинты[?]
0

Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:

  • бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
  • маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
  • приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
  • обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.

Спасибо!

мне нужно что бы вода юзалась по ротации event.getPitch() и event.getYaw() для спайдера,
но RightClickBlock() не может поставить воду корректно так как это не совсем блок
а при попытке установить воду пакетом она пытается поставится как я понимаю внутрь блока, и поэтому работает только не в рг а в рг вода не ставится а пытается как раз поставится внутрь блока,
пробовал создавать метод для этого но он тоже юзает воду внутри блока
если кто сможет сделать что бы оно юзало райт клик в позиции питча и ява и устанавливало воду НА блок то будет вообще охуенно
может можно как то передавать этому методу фейковую позицию прицела или что-то типо того


Java:
    public ActionResultType processRightClick(ClientPlayerEntity player, ClientWorld worldIn, Hand hand, BlockRayTraceResult blockRayTraceResult) {
        NoInteractFunction interactFunction = Managment.FUNCTION_MANAGER.noInteractFunction;

        this.syncCurrentPlayItem();
        BlockPos blockpos = blockRayTraceResult.getPos();

        if (!this.mc.world.getWorldBorder().contains(blockpos)) {
            return ActionResultType.FAIL;
        } else {
            ItemStack itemstack = player.getHeldItem(hand);

            if (this.currentGameType == GameType.SPECTATOR) {
                this.connection.sendPacket(new CPlayerTryUseItemOnBlockPacket(hand, blockRayTraceResult));
                return ActionResultType.SUCCESS;
            } else {
                boolean flag = !player.getHeldItemMainhand().isEmpty() || !player.getHeldItemOffhand().isEmpty();
                boolean flag1 = player.isSecondaryUseActive() && flag;
                boolean flag2 = interactFunction.state && interactFunction.allBlocks.get() || interactFunction.state &&
                        interactFunction.getBlocks().contains(worldIn.getBlockState(blockRayTraceResult.getPos()).getBlockId())
                        ||  Managment.FUNCTION_MANAGER.auraFunction.getTarget() != null;
                if (!flag2) {
                    if (!flag1) {
                        ActionResultType actionresulttype = worldIn.getBlockState(blockpos).onBlockActivated(worldIn, player, hand, blockRayTraceResult);

                        if (actionresulttype.isSuccessOrConsume()) {
                            this.connection.sendPacket(new CPlayerTryUseItemOnBlockPacket(hand, blockRayTraceResult));
                            return actionresulttype;
                        }
                    }

                    this.connection.sendPacket(new CPlayerTryUseItemOnBlockPacket(hand, blockRayTraceResult));
                }
                if (!itemstack.isEmpty() && !player.getCooldownTracker().hasCooldown(itemstack.getItem())) {
                    ItemUseContext itemusecontext = new ItemUseContext(player, hand, blockRayTraceResult);
                    ActionResultType actionresulttype1;

                    if (this.currentGameType.isCreative()) {
                        int i = itemstack.getCount();
                        actionresulttype1 = itemstack.onItemUse(itemusecontext);
                        itemstack.setCount(i);
                    } else {
                        actionresulttype1 = itemstack.onItemUse(itemusecontext);
                    }

                    return actionresulttype1;
                } else {
                    return ActionResultType.PASS;
                }
            }
        }
    }


    public ActionResultType processRightClick(PlayerEntity player, World worldIn, Hand hand) {
        if (player instanceof ClientPlayerEntity) {
            Managment.FUNCTION_MANAGER.flightFunction.lastUseTridantTime = System.currentTimeMillis();
        }

        if (this.currentGameType == GameType.SPECTATOR) {
            return ActionResultType.PASS;
        } else {
            this.syncCurrentPlayItem();
            this.connection.sendPacket(new CPlayerTryUseItemPacket(hand));
            ItemStack itemstack = player.getHeldItem(hand);

            if (player.getCooldownTracker().hasCooldown(itemstack.getItem())) {
                return ActionResultType.PASS;
            } else {
                int i = itemstack.getCount();
                ActionResult<ItemStack> actionresult = itemstack.useItemRightClick(worldIn, player, hand);
                ItemStack itemstack1 = actionresult.getResult();

                if (itemstack1 != itemstack) {
                    player.setHeldItem(hand, itemstack1);
                }

                return actionresult.getType();
            }
        }
    }
 
Начинающий
Статус
Оффлайн
Регистрация
14 Июн 2023
Сообщения
80
Реакции[?]
0
Поинты[?]
0
Сверху Снизу