1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Помогите Установка блоков в мире

Тема в разделе "Разработка плагинов для новичков", создана пользователем DestKoder, 9 дек 2022.

Статус темы:
Закрыта.
  1. Автор темы
    DestKoder

    DestKoder Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    DestKoder
    Здравствуйте форумчане. Столкнулся с не большой проблемкой. Есть метод:


    Код:
    public static void spawn(int x, int z, World world, Main plugin) {
            Location loc;
            Block b = world.getHighestBlockAt(x, z);
    
            if(b.getType().isTransparent()) {
                loc = b.getLocation();
            }else loc = b.getLocation().clone().add(0,1,0);
    
            loc.getBlock().setType(Material.ENDER_CHEST);
        }
    Вопрос следующий: Почему блок спавнится не на координатах X, Z? Он спавнится левее по X (x-1) и я не совсем понимаю, почему так?

    Координаты я передаю в метод через команду.

    Код:
    
    @Override
    public void execute(CommandData data, String[] args) {
        if(!CheckUtils.isInteger(args[1])) {
            plugin.getLang().getMessage("error.argMustBeInt").format(Collections.singletonList(new Pair<>("number", 2 + "")));
            return;
        }
    
        if(!CheckUtils.isInteger(args[0])) {
            plugin.getLang().getMessage("error.argMustBeInt").format(Collections.singletonList(new Pair<>("number", 1 + "")));
            return;
        }
    
        int x = Integer.parseInt(args[0]), z = Integer.parseInt(args[1]);
        MyEnderChest.spawn(x, z, Bukkit.getWorld("world"), plugin)
    }
    
     
  2. Dymeth

    Dymeth Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    С чего ты взял, что он спавнится левее? Наведись на блок и в F3 проверь координаты блока, на который направлен взгляд.

    Скорее всего, всё нормально, просто ставишь на отрицательной координате. Для наглядного понимания можешь телепортироваться в точку 0 0 и начать возле неё ставить блоки, чтобы затронуть все 4 секции координат. Увидишь, что есть по две нулевые координаты на каждую ось (с центрами в -0.5, 0.5)
     
  3. Автор темы
    DestKoder

    DestKoder Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    DestKoder
    Он спавниться либо правее, но не на том x и z который я передал. С чего взял? Со скрина после выполнения команды:
    upload_2022-12-10_10-10-52.png

    Это можно как-то исправить? Почему он не спавниться ровно x -81 z 180 я же четко передал и получил локацию, разве нет?
     
  4. Dymeth

    Dymeth Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Ты стоишь ровно над блоком -81, 180. Всё работает нормально. Я выше объяснил, почему так происходит
     
Статус темы:
Закрыта.

Поделиться этой страницей